1、辽工大ava6程序设计项目文档1记事本ATM提款机软 件 学 院课程设计报告书 课程名称 面向对象课程设计 设计题目 ATM取款模拟机 专业班级 软件(13)7班 组 员 王欣鸿、徐越、杨钰吉 、苟永浩 指导教师 史庆伟 2015 年 6 月目录1设计时间 12设计目的 13设计题目 14设计任务 15设计内容 15.1 需求分析 15.2总体设计 25.2.1类之间的关系 25.3 程序代码 36 运行与测试 97总结与展望 13参考文献 14成绩评定 141设计时间2015年6月14日-2015年6月16日2设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课
2、程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。3 设计题目模拟ATM取款机4设计任务设计ATM取款机实现JAVA程序的新建账户、存款、取款、转账、查询余额、修改密码等操作。5 设计内容 5.1需求分析ATM取款机可以新建一个账户,并且实现转账操作,但账户主人是同一个人,可以对各个账户进行查询余额、存款、取款、修改密码等基本操作。并且退出后需要重新校验密码,重新登陆。5.2总体设计5.2.1类之间的关系 图5-2-1
3、5.3程序代码import java.util.*;public class ATM public static void main(String args) ATMC b=new ATMC(); Scanner input=new Scanner(System.in); int choise=0; boolean bb=true; while(bb) b.LogOn() ; menu: while(true) System.out.print(ATM取款机模拟系统n); System.out.print(1 为此用户创建新卡n); System.out.print(2 修改密码n); Sys
4、tem.out.print(3 存钱n); System.out.print(4 取钱n); System.out.print(5 转账n); System.out.print(6 查询余额n); System.out.print(7 返回菜单n); System.out.print(8 退出n); System.out.print(请选择相关序号完成操作:n); choise=input.nextInt(); switch(choise) case 1: b.BuildNewCard(); break; case 2: b.ChangePassword(); break; case 3: b
5、.SaveMoney(); break; case 4: b.GetMoney(); break; case 5: b.TransMoney(); break; case 6: b.CheckCount(); break; case 7: break menu; case 8: System.out.println(已经退出系统); System.exit(0); break; class ATMC int count; private card UsingCard; card head; card last; card temp; Scanner input; ATMC() head=new
6、 card(); head.CardId=123456; head.Money=10000; / 给出第一张卡密码等信息 head.Password=123456; head.next=null; last=head; this.count+; input=new Scanner(System.in); boolean LogOn() /登陆 int time=0; /计算错误次数 card id; System.out.println(请输入卡号:n); int CardId=input.nextInt(); /输入卡ID if(temp=SearchCard(CardId)=null) /
7、检查卡ID return false; /ID卡不存在 time=0; System.out.println(请输入密码:n); if(!CheckPassword(temp,input.nextInt() /匹配密码 return false; /密码正确 UsingCard=temp; return true; /密码不正确 void BuildNewCard() /建立新卡 int Password=0; while(true) System.out.println(申请新卡请创建密码:n); while(Password=input.nextInt()%111111=0) /检查新密码
8、 System.out.println(创建密码无效!请重新输入:n); /password=input.nextInt(); System.out.println(请再次输入密码:n); if(Password=input.nextInt() break; System.out.println(两次输入的密码不一致,请重新输入!n); temp=new card(); temp.CardId=123456+count; temp.Money=0; temp.Password=Password; temp.next=null; last.next=temp; last=last.next; S
9、ystem.out.println(创建成功!n); System.out.println(新卡ID:n+temp.CardId+ nnn); this.count+; void SaveMoney() /存钱 int Money=0; System.out.println(存入钱数:n); while(Money=input.nextInt()%100!=0|Money0) /检查钱数 System.out.println(输入有误,请重新输入!n); UsingCard.Money+=Money; /检测通过后存钱 System.out.println(成功存款 + Money +元nnn
10、); void GetMoney() /取钱 int Money=0; System.out.println(取出钱数:n); while(Money=input.nextInt()%100!=0|Money5000|MoneyUsingCard.Money) /检查钱数 System.out.println(输入有误,请重新输入!n); UsingCard.Money-=Money; /取钱数 System.out.println(成功取款 + Money +元nnn); boolean ChangePassword() /改密码 int Password; System.out.print
11、ln(输入原密码:n); if(!CheckPassword(UsingCard,input.nextInt() /检查登陆密码 return false; System.out.println(输入新密码:n); while(Password=input.nextInt()%111111=0|Password999999) System.out.println(创建密码无效!请重新输入:n); System.out.println(再次输入:n); if(Password!=input.nextInt() System.out.println(两次输入密码不一致,修改失败n); return
12、 false; UsingCard.Password=Password; System.out.println(密码修改成功nnn); return true; card SearchCard(int Card) /寻找卡的ID int time=0; while(time=3) /3次输入机会 temp=head; while(temp!=null) if(temp.CardId=Card) return temp; temp=temp.next; System.out.println(卡ID不存在!n请输入正确的ID:); Card=input.nextInt(); time+; retu
13、rn null; boolean CheckPassword(card card,int Password) /检查密码是否正确 int time=0; while(timeUsingCard.Money|Money0) /检查钱数 System.out.println(输入有误!); System.out.println(输入收款人ID:n); if(temp=SearchCard(input.nextInt()=null) /检索将要改变数据的卡 System.out.println(输入错误,系统没有找到卡!); return false; temp.Money+=Money; Usin
14、gCard.Money-=Money; System.out.println(成功转账 +Money + 元); System.out.println(当前用户余额为: + UsingCard.Money + nnn); return true; /改变钱数 void CheckCount() /显示卡的基本信息 System.out.println(ID:n + UsingCard.CardId+余额:n +UsingCard.Money + nnn); class card int Money; int CardId; int Password; card next;6 运行与测试 创建新
15、卡修改密码查询余额存款取款转账返回菜单 退出 7总结与展望 通过本次课程设计我学会了JAVA 语言中的类的编写,初次根据书上的代码实现某些具体的功能,通过编写这个模拟取款机程序,我学会了选择分支结构的方法的编写,通过ATM类的拓展来调用其他类的拓展,如ATMC类,这次编写程序时并不是很顺利,我查阅了很多资料,根据不同的程序总结出了这个程序的思路,可以说是用其他程序拼接出来的,不过最终经过与同组同学的讨论得出了这的程序代码。 今后我们会加倍努力的学习JAVA语言争取能过有独立的编写思路,形成一套属于自己的风格和方式,要加强对某些类的熟悉程度,因为这次我们大多数是按照书边理解边写出来的,所以这在一定程度上也影响了此次课程设计的总体效率。参考文献1 屈辉立,陈可明,石武信.JSP网站编程教程M.第1版, 北京:北京希望电子出版社,2005 2 刘万军等人, Java6程序设计实践教程M,北京:清华大学出版社,2006 成绩评定成绩 教师签字
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1