课程设计课程设计名称:java课程设计专业班级:计科13级03班学生姓名:余金梁学号:201316010319指导教师:王社伟课程设计时间:2015.6.22-2015.7.3计算机科学技术专业课程设计任务书学生姓名余金梁专业班级计科F1303学号201316010319题目银行帐户管理系统课题性质工程设计课题来源自拟课题指导教师王社伟同组姓名无主要内容设计一个银行账户管理的模拟系统。用户开户后,拥有一定的信用额度,除了传统的存款,取款,转账等业务外,在信用额度内用户还可以进行透支操作。功能要求:银行帐户的增加、删除、修改、查询、浏览;存款、取款、转账、透支等各种操作;任务要求1.综合运用所学的JAVA程序设计基本知识,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。2.要求根据本课题设计合理的数据结构,并实现①添加帐户信息②删除帐户信息③修改帐户信息④浏览帐户信息⑤存款⑥取款⑦转账等功能模块。3.按照课程设计上机安排,在规定时间上机,上机考勤情况计入总成绩。4.结合设计和开发内容,完成课程设计报告。要求语言表达逻辑合理,图表清晰,准确表达课程设计内容和结果。参考文献[1]耿祥义、张跃平.JAVA2实用教程(修定),清华大学出版社,2001.10[2]袁然、郑自国等著.java案例开发集锦,电子工业出版社,2005.9[3]刘继承,王社伟等.Java程序设计及实验,清华大学出版社,2012.9.[4]赵付青等.Java面向对象程序设计,国防工业出版社,2010.2审查意见指导教师签字:王社伟教研室主任签字:史卫亚2015年6月15日银行帐户管理系统一、需求分析银行账户管理系统中,主要有以下功能:1.添加账户:主要增加账户的账号,姓名,类型以及所存的金额。2.登陆账户:根据输入的账号以及密码,验证判断其账户的类型以进行操作。3.存款:输入账号,并向该账号存钱。4.取款:输入账号和密码,根据不同类型的账户进行取款或者透支取款。5.转账:输入账号和密码,并向另外一个存在的账号转账。6.查询账户余额:根据输入的账号和密码,查询并显示出该账户的剩余金额。二、概要设计图1系统模块流程图三、运行环境、开发语言运行环境:Windows8.1,DOS,Eclipse开发语言:Java四、详细设计1程序清单表1ATM类方法功能voidmain()系统主函数ATM()用户界面操作表2Bank类方法功能openAccount()添加新账户saveAccountDate()保存数据verifyAccount()验证账户transferAccount()转账表3SavingAccount类方法功能SavingAccount()设置储蓄卡账户voidwithdraw()储蓄卡账户取钱表4CresitAccount类方法功能CreditAccount()设置信用卡账户Ceiling()信用额度voidwithdraw()信用卡账户取钱表5Account类方法功能voiddeposit()存款getxx()setxx()获取及操作2主要代码2.1ATM类进入银行账户管理系统,进行操作。图2:银行账户管理系统主界面importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.util.Properties;importjava.util.Scanner;publicclassATM{//属性privateBankbank;//构造函数publicATM(){bank=newBank();}//main方法publicstaticvoidmain(String[]args){ATMatm=newATM();//实例化ATMBankbank=atm.bank;//标号,判断是否退出一级菜单booleanfirstFlag=true;while(firstFlag){//一级菜单System.out.println(******欢迎使用XXX银行模拟ATM系统,请按如下步骤操作******);System.out.println(*1.用已有账户登录);System.out.println(*2.没有账户,开户);System.out.println(*3.退出);Scannerscanner=newScanner(System.in);System.out.print(请选择:);try{intchoice1=scanner.nextInt();switch(choice1){case1:scanner=newScanner(System.in);System.out.print(请输入银行卡号:);longid=scanner.nextInt();scanner=newScanner(System.in);System.out.print(请输入银行密码:);Stringpassword=scanner.next();Accountaccount=bank.verifyAccount(id,password);if(account!=null){//标号,判断是否退出二级菜单booleansecondFlag=true;while(secondFlag){//二级菜单System.out.println(******欢迎使用XXX银行模拟ATM系统,请按如下步骤操作******);System.out.println(*1.查询账户余额);System.out.println(*2.存款);System.out.println(*3.取款);System.out.println(*4.转账);System.out.println(*5.退卡);scanner=newScanner(System.in);System.out.print(请选择:);try{intchoice2=scanner.nextInt();switch(choice2){case1:System.out.println(您账户的当前余额为:+account.getBalance());break;case2:scanner=newScanner(System.in);System.out.print(请输入您的存款金额:);doublemoney1=scanner.nextDouble();bank.deposit(account,money1);break;case3:scanner=newScanner(System.in);System.out.print(请输入您的取款金额:);doublemoney2=scanner.nextDouble();bank.withdraw(account,money2);break;case4:scanner=newScanner(System.in);System.out.print(请输入您要转入账户的卡号:);longid2=scanner.nextLong();Accountaccount2=bank.verifyAccount(id2);if(account2!=null){scanner=newScanner(System.in);System.out.print(请输入您要转入账户的金额:);doublemoney=scanner.nextLong();if(money=account.balance){bank.transferAccount(account,account2,money);System.out.println(转账成功!!!);}else{System.out.println(抱歉,您账户没有足够的金额!请查看后重新选择输入!);}}else{System.out.println(抱歉,没有找到您要转入的账户信息!请核对后重新选择输入!);}break;case5:secondFlag=false;break;default:System.out.println(没有该选项,请重新选择!);break;}}catch(Exceptione){System.out.println(选择输入不合法,请重新选择!);}}}else{System.out.println(没有此账户,请先开户!);}break;case2://账号id由银行自动提供(从1001递增)scanner=newScanner(System.in);System.out.print(请输入账户密码:);Stringpasswd1=scanner.next();scanner=newScanner(System.in);System.out.print(请再输入账户密码:);Stringpasswd2=scanner.next();scanner=newScanner(System.in);System.out.print(请输入户主姓名:);Stringname=scanner.next();scanner=newScanner(System.in);System.out.print(请输入户主身份证号码:);StringpersonId=scanner.next();scanner=newScanner(System.in);System.out.print(请输入账户类型(0储蓄,1信用):);inttype=scanner.nextInt();bank.openAccount(passwd1,passwd2,name,personId,type);break;case3:bank.saveAccountDate();firstFlag=false;break;default:System.out.println(没有该选项,请重新选择!);break;}}catch(Exceptione){System.out.println(选择输入不合法,请重新选择!);}}System.out.println(谢谢使用!);}}2.2Bank类对系统添加新账户,登陆已有账户,进行操作。图3添加或登陆账户页面importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.Properties;publicclassBank{privateAccount[]accounts=newAccount[20];privateintnumber;//账户数目privateintid=1001;//确定银行账号从1001开始生成,即第一个账户的账号是1001//构造函数publicBank(){accounts=newAccount[20];//以后不足时扩容。number=0;BufferedReaderbufReader=null;Propertiesprops=System.getProperties();Stringpath=props.getProperty(user.dir);try{bufReader=newBufferedReader(newFileReader(newFile(path,account.txt)));Strings=bufReader.readLine();while(s!=null){String[]str=s.split(,);if(str[4].equals(0)){AccountsavingAcc=newSavingAccount(Long.pars