版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PQTKUNMINGUNrVEASITY课程设计(大作业)报告课程名称:面向对象程序设计课程设计设计题目:ATM巨员机模拟程序院系:信息技术学院班级:设计者:学号:指导教师:设计时间:2016-1-42016-1-8信息技术学院昆明学院课程设计(大作业)任务书B院(系):信息技术学院专业:计算机科学与技术学号:任务起止日期:2016-1-4-2016-1-8课程设计题目:设计一个ATM巨员机模拟程序,实现系统登录、余额查询、ATMX款、AT四款、修改密码等一些ATM巨员机的基本功能,模拟ATM勺工作原理和人机交互。课程设计要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为1234
2、56)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:1、查询余额:初始余额为10000元2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。3、ATM存款:不能出现负存款。4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。工作计划及安排:1月4号,老师布置任务、讲授设计内容。1月5号,查阅资料,进行初步设想并画出流程图。1月6号,详细设计,创建各个类、编写程序代码。1月7号,测试,对程序进行调试、运行并进行相应的分析。1月8号,书写课程设计报告,验收、考核及答
3、辩。指导教师签字年月日课程设计(大作业)成绩学号:姓名:指导教师:课程设计题目:设计一个ATM柜员机模拟程序,实现系统登录、余额查询、ATMW款、AT四款、修改密码等一些ATM柜员机的基本功能,模拟ATM的工作原理和人机交互。总结:通过为时一周的课程设计,我受益匪浅,把平时所学的知识通通运用了进来,虽然平时积淀的知识点比较少、比较单一,但是在这次实验中把零零碎碎的知识都连贯起来了,也达到了课程设计的目的,最主要的是通过一周的努力我终于用面向对象程序设计的知识做出了这个“ATM柜员机模拟系统”。由于知识的积淀比较少,且有些知识掌握不太牢靠,记忆模模糊糊的,最后决定恶补一下落下的知识点再进行程序的
4、设计。第一天,去图书馆借了相关图书,把知识点打牢,然后参考了相似的的几个实例,并进行了一些分析和总结。基础功课做好以后第二天正式开工,选定好了题目,进行方法选择、框架设计、画出流程图、UM阂,进行了初步的程序设计构想。第三天,编写程序代码,这个过程我觉得是最艰难的,因为代码太多,还有API接口不是很熟悉,所以要经常翻阅手册,花费了很多时间。程序一不小心就会出错不能运行,还需要认真检查,细心细心加细心才能做好。反复的进行分析调试,最后一天把程序调试通过后,进行课程设计报告的撰写。虽然很幸苦但是,最终的成果还是令人满意的,最后感谢指导老师对我们帮助和支持。指导教师评语:成绩:填表时间:指导教师签名
5、:课程设计(大作业)报告一、题目分析1 .系统需求分析(1)设计目标:随着市场经济的繁荣发展,人们的物质生活得到极大的提高,手中的剩余资金也日益增多。受传统观念影响,绝大多数人喜欢把资金投进银行,而在需要使用现金的时候再到银行提取现金。这就导致银行业务的急剧增加。虽然银行网点越来越多,银行的工作效率也随着信息化有较明显的增长,但是依旧不能满足广大用户的需要。而一味的增加营业网点,从理论上虽然能稍微的缓解银行的压力,但是治标不治本,而且每增加一个网点,不仅要付出昂贵的资金成本,还需要长期投入人力资本,成本非常之昂贵。这时候就迫切的需要一种自动的,易于普及的,低成本的设备来解决这一问题。于是ATM
6、机系统应运而生了。自动柜员机,即ATM是指银行在不同地点设置一种小型机器,利用一张信用卡大小的胶卡上的磁带记录客户的基本户口资料(通常就是银行卡),让客户可以透过机器进行提款、存款、转账等银行柜台服务,大多数客户都把这种自助机器称为自动提款机。本文正是通过设计一个ATM模拟模拟程序来实现ATM机系统的基本功能,充分运用自己所学的Java知识进行设计编程。(2)题目设计要求:本ATM柜员机的主要功能如下所述:要求使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:查询余额:初始余额为10000元。ATM取款:每次取款金
7、额为100的倍数,总额不超过5000元,支取金额不允许透支。AT*款:不能出现负存款。修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。模拟系统总体设计结构(1)设计思想:通过程序要求,我们可以清楚的知道本次设计的ATM柜员模拟程序需要实现四大功能,即查询余额、取款、存款、修改密码。初次之外,作为ATM系统,还需要最基本的两大功能,即登陆和退出。根据上述的功能分析,我们可以把整个ATM系统分为登陆模块、查询模块、取款模块、存款模块、修改密码模块。除此之外,还有在登陆系统后的功能选择模块,退出功能则镶嵌在各个需
8、要的模块中。由于各个模块的功能实现是通过界面显示出来的,则程序设计又可以理解为几大界面的设计:登陆界面、主界面、查询余额界面、取款界面、存款界面、修改密码界面。除了几大界面之外,还有系统的初始化,主要是初始卡号、密码的设定等。在程序的大体框架确定之后,我们需要了解各个模块所要实现和需要具有的功能。根据现有的银行ATM系统,我们可以很快就可以了解本次设计的ATM系统应该具有的操作。a.登陆界面用户输入正确的账号和密码就可以登录到该系统的主界面中去,进行相应的操作:取款、存款、查询、修改密码。b.主界面主界面包括查询、存款、取款、修改密码、退出的功能按钮,按下相应的按钮,可以进行相应的操作。c.查
9、询界面在主界面中按下查询按钮可以进行查询操作。通过查询功能我们可以查询账户的余额,在查询过程中我们可以选择取款的业务,除此之外,查询界面之中还有返回和退出的操作。返回的操作会使用户回到主界面,退出的操作会使用户直接回到登陆界面。d.取款界面取款界面既可以通过主界面进入,也可以通过查询、存款等操作过程中的界面进入。取款功能在对话框中输入你想要取出的金额,但是次金额不可以比账户的余额大,且必须是100的整数倍,取款完毕,会弹出是否显示余额的提示,选“是”的话就会进入查询界面,选“否”的话,则回到主界面。e.存款界面在主界面按下存款按钮可以进行存款操作,在对话中输入你需要存入的金额,所输入的数字也要
10、是100的整数倍,而且不可以是负数。存款完毕,会弹出是否显示余额的提示,选“是”的话就会进入查询界面,选“否”的话,则回到主界面。f.修改密码选择修改密码按钮可以进行修改密码房,但是要先输入就密码正确并且两次输入新密码致才可以修改密码。修改完成后,会返回主界面。返回退出退出查询主界面选择业务显示余额(3)ATM柜员机模拟模拟系统UML图,如图图23.系统开发及运行环境软件平台:Eclipse,jdk全套软件,editpuls编辑器Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一
11、个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C+而Python等开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。=eclipseLUNA图3二、各模块分析与实现1 .系统各模块介绍代码中出现的Account类、MainFrame类、Load类、Take类、Input类
12、、Setpew类和Display类都继承了Java类JFrame。(1)账户创建模块ClassAccout创建客户,初始化客户信息功能以及保存客户信息,例如:卡号、密码、原有余额、取款后卡里的余额以及存款后卡里的余额。此类包含的成员有:成员变量account、count、password和方法构造方法Account()。实现了账户信息的初始化工作,设置默认账户信息,账号:123456,密码:123456。以便后续测试登陆时作为进入ATM模拟系统的信息凭证。创建账户关键代码:classAccountprivateintcount=10000;件监听组件介绍(1) MainFrame类的监听模块在
13、该类中设置了五个监听器,监听鼠标单击按钮,分别监听退出(newActionListener()、修改密码(newActionListener()、查询(newActionListener()、取款(newActionListener()、存款(newActionListener()等按钮的事件。(2) Load类的监模块(new在该类中只有一个监听器,监听鼠标单击“确定”按钮时的事件。(3) Take类的监听模块在该类中设置了四个监听器,同样是监听鼠标单击按钮事件,分别监听“清除”(newActionListener()、"退出"(newActionListener()、&
14、quot;返回"(newActionListener()、"确定"(newActionListener()按钮的事件。(4)input类的监模块在这个类中共设置了两个监听器,它们也是监听鼠标单击按钮事件。它们监听“清除”(newActionListener()、“确定"(newActionListener()按钮事件。(5)display类的监听模块在display中设置了三个监听器,都属于监听鼠标单击按钮事件,分别监听“退出”(newActionListener()、"返回"(newActionListener()、“取款"
15、;(new按钮事件。(6)Setpw类的监听模块在这个类中设置了两个监听器,它们是监听鼠标单击按钮事件,分别监听“确定”(newActionListener()、"退出"(newActionListener()按钮事件。三、系统调试分析3所示的欢迎界面。点击确定之后,1.登陆界面打开MyEcplise,编译运行程序后,将会看到如图会进入如图4所示的登陆界面。图3欢迎登陆页面图4登陆界面进入到登陆界面后,需要输入账号和密码,当账号和密码正确时,才会进入到主界面。账号和密码不符合时,会进入如图4所示的错误提示界面。初始账号和密码为“123456”。图5登陆出错提示界面2.账号密
16、码登陆当输入的密码和卡号正确,单击确定后就会进入到主界面,选择服务,如图点击相应的按钮就可以选择所需要的服务了,点击“退出”会回到登陆界面。6所示,图6主界面3.存款点击存款,进入存款界面,如图7所示。图7存款界面当输入的钱数不是100的倍数时,就会弹出如图7所示的错误提示界面。输入正确时,进入如图9所示的界面。选“是”的话,会进入查询余额界面,查看存款操作是否成功;选“否”的话,会回到主界面。4.取款图8存款出错提示界面图9操作完成后的选择界面点击取款按钮,进入取款界面,如图10所示。当输入的钱数是负数,或者是0,或者不是100的倍数,又或者大于5000时,会弹出如图11所示的出错提示界面。
17、当输入的钱数符合要求时,会弹出如同存款操作一样的选择界面,如图9所示。图10取款界面图11取款错误提示界面5.查询“是”的话,点击主界面中的查询按钮,或者是在存款和取款操作完成后的选择界面中选就会进入到如图12所示的查询界面。点击取款按钮,会进入到取款界面。初始金额为50000,图12中的余额是经过存款、取款操作以后的金额。图12查询界面6.修改密码点击主界面中的修改密码按钮,进入到如图13所示的修改密码界面。新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码,弹出如图14所示的提示界面,点击确定后会回到主界面。否则,密
18、码修改不成功,点击确定按钮,界面没有反应。图13修改密码界面图14修改密码成功提示界面经过上面的操作,既测试了程序的实现效果,又对系统的使用进行了详细的说明面的运行结果可以看出,程序基本上实现了所有的设计要求,而且运行正常。四、总结从上虽然平时通过为时一周的课程设计,我受益匪浅,把平时所学的知识通通运用了进来,积淀的知识点比较少、比较单一,但是在这次实验中把零零碎碎的知识都连贯起来了,也达到了课程设计的目的,最主要的是通过一周的努力我终于用面向对象程序设计的知识做出了这个“ATM柜员机模拟系统”。由于知识的积淀比较少,且有些知识掌握不太牢靠,记忆模模糊糊的,最后决定恶补一下落下的知识点再进行程
19、序的设计。第一天,去图书馆借了相关图书,把知识点打牢,然后参考了相似的的几个实例,并进行了一些分析和总结。基础功课做好以后第二天正式开工,选定好了题目,进行方法选择、框架设计、画出流程图、UM阂,进行了初步的程序设计构想。第三天,编写程序代码,这个过程我觉得是最艰难的,因为代码太多,还有API接口不是很熟悉,所以要经常翻阅手册,花费了很多时间。程序一不小心就会出错不能运行,还需要认真检查,细心细心加细心才能做好。反复的进行分析调试,最后一天把程序调试通过后,进行课程设计报告的撰写。虽然很幸苦但是,最终的成果还是令人满意的,最后感谢指导老师对我们帮助和支持。在这次的课程设计中,我主要运用了Jav
20、a图形界面编程方面的知识,加深了对Java语言中各个基础知识点的了解和应用,将自己所学的知识运用到实际操作当中,而不再是纸上谈兵。通过这次设计,我深刻感受到了面向对象语言中类库的强大功能,掌握了运用Java中的类实现某些基本功能,并学会了自己查询使用类的方法,为以后的面向对象语言的自学奠定了基础。在这次课程设计中,我查了很多资料,很好的锻炼了自己的查阅资料的能力和快速吸收新知识的能力。同时,也加深了与同学的交流,在设计过程中,我们互相帮助,共度难关,培养了很好的默契。总之,在这次课程设计中,我学到了很多的知识,同时也感谢我的同学的帮助和指导。在以后的学习当中,我会更加努力的学习好专业知识,并将
21、所学的知识用于实践当中去,以便牢固掌握知识。五、参考文献1叶核亚.Java程序设计实用教程(第3版.电子工业出版社,20102耿祥义.JAVA课程设计.清华大学出版,20093王文涛,袁海燕JAVA实用程序设计100例M北京:人民邮电出版社,4雍俊海JAVA程序设计M北京:清华大学出版社,5刘宝林JAVA程序设计与案例M北京:高等教育出版社,6史斌星,史佳.Java基础及应用教程M.北京.清华大学出版社.语言程序设计M.北京.机械工业出版社.2008.六、附录源代码程序源代码:/*API接口*/import.*;import.*/*主类*/publicclassATMmodelAccountm
22、yaccount=newAccount();etLayout(layout);ddGroup().addContainerGap().addGroup.addGroup().addComponent(cunkuan).addPreferredGap105,.addComponent(reset).addGroup().addComponent(qukuan).addPreferredGap143,.addComponent(quit).addComponent(checked).addContainerGap();(ddGroup().addGap(46,46,46).addGroup.add
23、Component(cunkuan).addComponent(reset).addGap(51,51,51).addGroup.addComponent(quit).addComponent(qukuan).addGap(57,57,57).addComponent(checked).addGap(39,39,39);pack();etLayout(layout);ddGroup().addGroup.addGroup().addContainerGap(50.addGroup.addComponent(jL2)147,.addComponent(jL1)ddComponent(jL2).a
24、ddGap(31,31,31).addGroupfalse).addComponent(Jpassword).addComponent(accountnum,143,).addGroup().addGap(122,122,122).addComponent(commit).addContainerGap(72,);(.addGroup().addGap(85,85,85).addGroup.addComponent(accountnum,.addComponent(jL1).addGap(41,41,41).addGroup.addComponent(Jpassword,.addPreferr
25、edGap72,.addComponent(commit).addGap(64,64,64);pack();)privatevoidcommitActionPerformed(ActionEventevt)if().equals()&&().equals()etLayout(layout);(.addGroup().addGap(41,41,41).addGroup.addGroup().addComponent(jL1).addGap(33,33,33).addComponent(jT1,174,.addGroup().addComponent(clear).addPrefe
26、rredGap.addComponent(quit).addGroup().addComponent(commit).addPreferredGap147,.addComponent(back).addContainerGap(69,);(.addGroup().addGap(103,103,103).addGroup.addComponent(jL1).addComponent(jT1,.addGap(61,61,61).addGroup.addComponent(commit).addComponent(back).addGap(29,29,29).addGroup.addComponen
27、t(clear).addComponent(quit).addContainerGap(65,);pack();privatevoidclearActionPerformed(ActionEventevt)str=""(str);privatevoidquitActionPerformed(ActionEventevt)(true);(false);privatevoidbackActionPerformed(ActionEventevt)(true);(false);privatevoidcommitActionPerformed(ActionEventevt).addG
28、roupif()>0&&()%100=0&&()<=5000)etLayout(layout);(.addGroup().addGap(47,47,47).addGroup.addGroup().addGap(12,12,12).addComponent(commit).addGap(111,111,111).addComponent(clear).addGroup().addComponent(jL1).addGap(27,27,27).addComponent(jT1,151,.addContainerGap(50,);(.addGroup().
29、addGap(88,88,88).addComponent(jL1).addComponent(jT1,.addGap(87,87,87).addGroup.addComponent(clear).addComponent(commit).addContainerGap(88,);pack();etLayout(layout);(.addGroup().addGap(27,27,27).addComponent(jL1).addPreferredGap.addComponent(jT1,143,.addContainerGap(36,).addGroup().addContainerGap(2
30、15,.addGroup.addComponent(back).addComponent(qukuan)privatevoid.addComponent(quit).addContainerGap();(.addGroup().addGap(93,93,93).addGroup.addComponent(jL1).addComponent(jT1,.addGap(54,54,54).addComponent(qukuan).addPreferredGap.addComponent(back).addPreferredGap.addComponent(quit).addContainerGap(
31、);pack();privatevoidqukuanActionPerformed(ActionEventevt)(true);(false);quitActionPerformed(ActionEventevt)(true);(false);privatevoidbackActionPerformed(ActionEventevt)(true);(false);/*修改密码*/classSetpwextendsJFramepublicJButtoncommit;publicJLabelcommitpw;publicJPasswordFieldjPwcommit;publicJPasswordFieldjPwnew;publicJPasswordFieldjPwold;publicJLabelnewpw;publicJLabeloldpw;publicJButtonquit;publicSetpw()initComponents()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版钢筋行业供应链管理合作协议3篇
- 智研咨询发布:中国光缆填充膏行业竞争格局及发展前景研究报告
- 繁荣文化消费的实施策略
- 繁荣文化消费的策略及实施路径
- 智能温室大棚高效种植生产项目可行性研究报告申请备案
- 2025年兄弟房产分割协议书范本:房产分割协议起草与修订3篇
- 二零二五年度共享用工在金融服务领域的合作框架协议3篇
- 2025年度淡水鱼养殖场与批发商水产品购销合同书3篇
- 2025年度版权买卖合同标的及交易条件解读3篇
- 二零二五年婚宴场地租赁及婚庆策划服务协议6篇
- 03SG715-1蒸压轻质加气混凝土板(NACL)构造详图
- 粉体工程第六章粉碎过程及设备
- 尽职调查工作底稿1_公司业务调查
- 洪水计算(推理公式法)
- GMW系列往复式给料机说明书
- 集装箱码头堆场项目可行性研究报告写作范文
- 医保药店一体化信息管理系统操作手册
- 2016年河南省对口升学文秘类基础课试题卷
- 小学六年级数学上期家长会精品课件
- 汽车常用英文术语
- (完整版)从句的引导词总表
评论
0/150
提交评论