Java银行ATM模拟系统报告.doc
Java核心技术上结课报告班级: 学号: 姓名: 银行ATM机模拟系统 1. 设计内容本系统采用JAVA语言并在eclipse环境下编写测试完成,涉及类的概念,异常处理机制,基本上模拟了ATM系统的相关实现,且代码内标注大量注释,读者可以很轻松的看清楚。2. 技术说明当输入用户的卡号和密码时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:(1)查询余额:初始余额为10000元(2)ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。(3)ATM存款:不能出现负存款。(4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。3. 系统设计3.1功能说明 启动系统 本系统主要模拟银行ATM机系统功能,主要有查阅、取款、存款、账户修改密码等功能。 账户登录 查询 退出 修改密码 取款款 存款3.2类的设计DepositWithdrawinquireCahngepas存款取款查询改密4. 测试*验证登陆无法成功执行解决方法:查资料,上网查询*修改密码某些要求无法实现解决方法:查资料,上网查询5. 总结总的来说,本次设计当中存有许多的不足之处,基本上设计出了和自己预想中的效果,但同时在设计上也还存在着很多的,很多事没有什么用的代码,我想是因为时间和经验的问题,以后多练习就肯定能提高。仔细地看,还是有一些小问题。通过java编写简单的ATM登录系统的设计,我不仅复习了上学期的java编程设计基 础知识,并且增强了我对java语言的领悟和应用,同时也更深刻的懂得了学好学会了并不是代表能够真正的在实践中运用得流畅,这次实践给了我们一个既动手又动脑独立实践的机会,但其中也包含了自我寻找资料的能力和同学间的合作能力。这个系统将理论和实践相结合,提高自己的分析、解决问题的能力,并且让我明白了计算机的技术一定要从实际出发才能真正的提高自己的能力;6. 参考文献安博教育java核心技术电子工业出版社8. 源代码package other;/-ATM模拟系统-import java.util.Scanner;public class ATM private String AccountNum="1367111222"/账号 private String password="123456"/密码 private long balance=10000;/初始余额Scanner sc=new Scanner(System.in);/构造函数public ATM()public ATM(String temp,String temp2)this.AccountNum=temp;this.password=temp2;/-修改密码模块-public void changePassword(String oldPass,String password)if(!oldPass.equals(this.password)/判断初始密码System.err.println("Wrong initial password.");return;if(password.length()<6)/判断新密码长度System.err.println("Password too short.");return;if(this.password.equals(password) /不能与原密码相同System.err.println("Password cannot be the same.");return;this.password=password;System.out.println("newpassword:"+this.password);/-查询余额模块- public long balanceInquery()return this.balance; /-存款模块- public void deposit() int amount; System.out.println("请输入存款金额:"); amount=sc.nextInt();if(amount<0) /避免出现负存款System.err.println("Cannot deposit negative amount");return;this.balance+=amount;System.out.println("balance="+this.balance); /-取款模块- public void withdraw() int amount; System.out.println("请输入取款金额:"); amount=sc.nextInt();if(amount>5000|amount<0) /每次取款不能超过5000System.err.println("Withdraw limit:¥0-¥5000");System.exit(0);if(amount%100)!=0) /取款为100倍数System.err.println("The amount has to be a product of100");System.exit(0);long newBalance=this.balance-amount;if(newBalance<0) /取款后余额不能为负System.err.println("Not enough money in the account"); this.balance=newBalance; System.out.println("balance="+this.balance); /-主界面显示模块- public void menu() int select; ATM a=new ATM(); tryString AccountNum="1367111222"String password="123456"Scanner sc=new Scanner(System.in);System.out.println("-欢迎使用ATM模拟系统-");System.out.print("t请输入账号:");AccountNum=sc.next();System.out.print("t请输入密码:");password=sc.next();if (!AccountNum.equals(this.AccountNum) System.err.println("账号错误"); /验证登陆账号System.exit(0); else if (!password.equals(this.password) System.err.println("密码错误"); /验证登陆密码System.exit(0); else System.out.println("登陆成功,进入主菜单!");doSystem.out.println("n *1查询*");System.out.println("n *2取款*");System.out.println("n *3存款*");System.out.println("n *4修改密码*");System.out.println("n *0退出*");System.out.println("n请输入选择:");System.out.println("-");select=sc.nextInt();switch(select)case 1:System.out.println("Balance="+a.balanceInquery();/余额查询break;case 2: a.withdraw(); /取款break;case 3:a.deposit();/存款break;case 4:System.out.println("Oldpassword:");String temp=sc.next();System.out.println("Newpassword:");String temp2=sc.next();a.changePassword(temp,temp2);/改密break;case 0:System.exit(0);/退出break;default:System.out.println("请输入数字1-5");/end switchwhile(true);/实现循环 catch(Exception e) e.printStackTrace(); public static void main(String args) / TODO Auto-generated method stubATM a=new ATM();a.menu();