湖北大学本科课程设计题目 ATM 自助机模拟程序姓名学号专业年级指导教师职称目录第一章系统描述 (2)1 前言 (2)2 系统功能需求 (2)第二章系统分析与设计 (3)1 功能模块划分 (3)2 功能模块的描述 (3)3 系统设计流程图 (4)4 测试数据及期望结果 (6)第三章系统详细设计 (7)1 主界面开发设计 (7)2 功能选择界面开发设计 (7)3 取款界面开发设计 (7)4 存款界面开发设计 (8)5 转账界面开发设计 (8)6 查询界面开发设计 (9)7 修改密码界面开发设计 (9)8 界面开发设计使用函数 (9)第四章系统测试 (11)第五章源程序部分清单 (21)第六章实验心得 (30)参考文献 (31)第一章系统描述1 前言Java技术是一门简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言,它也是一个平台,它基于Java虚拟机技术,借助这个东西建立了跨平台的优势。
Java编程语言与众不同之处在于:Java程序既是编译型的,又是解释型的。
Java平台是一种纯软件平台,它有三个版本Java SE、Java EE、Java ME。
Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
本课程设计采用Eclipse作为开发工具,并采用Window Builder下的SWT Designer来实现相应的功能。
着重通过模拟实现当前非常快捷又使用的ATM机来加深对java开发设计的了解,从而进一步提高自己对java图像界面的设计及相关知识的认识。
2 系统功能需求当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM 柜员机系统,用户可以按照以下规则进行:(1)查询余额:初始余额为10000元。
(2)ATM取款:每次取款金额为100的倍数,一次取款不能超过1000,总额不超过5000元,支取金额不允许透支,有快捷取款和用户自定义取款。
(3)ATM存款:每次存款金额为100的倍数,一次存款不能超过1000,不能出现负存款。
(4)ATM转账:只有在两次输入账号相同且输入转账金额正确的情况下才允许转账,不允许透支。
(5)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
第二章系统分析与设计1 功能模块划分本系统可分为如下几大模块:ATM自助存取款机功能选择界面查询取款存款转账修改密码图1.1 ATM自助存取款机系统功能模块划分图2 功能模块的描述(1)本系统大致可分为登陆界面、功能选择界面、查询余额界面、取款界面、存款界面、转账界面、修改密码界面等七个部分。
其中取款界面内又包含有一个用户自己输入取款金额的界面。
(2)当用户登录成功后,从登陆界面跳转到功能选择界面,在功能选择界面内有查询余额、取款、存款、转账、修改密码等不同功能,选择不同的功能可跳转到相应的操作界面。
(3)取款界面内含有100、300、500、800、1000这几种金额的快捷取款方式,还有用户可以自己定义取款金额的方式,选择自定义取款功能后,调转到用户自己输入取款金额界面。
(4)在存款界面内用户只有输入正确的存款金额后才能存款成功。
(5)在转账界面要求用户输入转账账号和转账金额,只有都输入正确才能显示成功。
(6)在修改密码界面用户输入旧密码和新密码,输入符合要求时方可修改成功。
3 系统设计流程图3.1 系统总体功能流程图此ATM 机的总体工作流程图如下:图3.1 ATM 机总体工作流程图3.2 取款功能流程图用户取款时要判断余额是否不足,是否总的取款金额超过5000,在输入金额时判断输入是否正确。
取款流程图为:图3.2 ATM 机取款工作流程图N查 询登录系统登录 YN退 出取 款存 款转 账返 回改密码选 择取 款1000100输 入返 回判断Y总额超过5000输入金额错误余额不足取款成功3.3 存款功能流程图用户存款时要判断输入的存款金额是否正确,只有符合输入要求才可显示成功。
存款流程图为:图3.3 ATM 机存款工作流程图3.4 转账功能流程图用户转账时要两次输入转账账号并判断两次输入的账号是否一致以及输入的转账金额是否超支,是否符合要求,只有符合输入要求才可显示成功。
转账流程图为:图3.4 ATM 机转账工作流程图NN输入存款金额存 款判 断 转 账输入错误存款成功Y 用户输入判断 转账成功余额不足两次输入账号不一致输入转账金额错误输入错误Y3.5 修改密码功能流程图用户在修改密码是要首先输入旧密码,然后两次输入新密码,判断在输入新密码时两次输入是否一致,是否密码长度小于6位,是否每位全部相同,只有符合输入要求才可显示成功。
修改密码流程图为:图3.5 ATM 机修改密码工作流程图4 测试数据及期望结果在基本上对应用程序的每个部分都进行了分析设计后,接下来的工作主要是实际运行ATM 自助存取款机应用程序,进入ATM 机登录界面,在前一阶段,虽然也作了性能预测,但是仅仅做了性能估计,且在估计过程中,做了许多简化和假设,忽略了许多次要因素,因而估计是粗糙的,并可能失真。
在试运行阶段,必须进行实际测量和评价,测试数据尽可能覆盖现实世界的各种情况。
如果实际测试结果不符合设计目标,则需返回物理设计阶段,修改参数。
有时也许还需要返回初始阶段。
期望结果:在取款和存款及转账时要对操作的金额进行判断和处理,对其他的一些操作,比如说修改密码,转账等错误操作应包含各种可能出现的情况并给出相应的提示,界面简洁明了。
N修改密码用户输入判断 修改密码成功密码长度为6位输入错误密码位数不能相同两次输入密码不一致Y第三章系统详细设计在设计过程中,主要进行了主页面的开发设计、功能选择界面开发设计、取款界面开发设计、存款界面开发设计、转账界面开发设计、查询界面开发设计以及修改密码界面的开发设计。
1 主界面开发设计主界面即刚开始用户输入帐号和密码的登陆界面,在此界面中,有两个文本框,分别用来输入卡号和密码,两个按钮,一个“确定”按钮,用来响应用户的输入操作,另一个是“取消”按钮,用来退出应用程序,在此界面中主要是对文本框和按钮事件进行处理。
其中,文本框事件可以用getText()来获取用户输入的内容,“确定”按钮事件可以通过添加addSelectionListener()消息响应事件来对用户输入的内容进行判断,如果正确则跳转到功能选择界面,否则弹出“输入错误,请重新输入!”对话框。
为了用户方便,同时为文本框添加了addKeyListener()键盘消息响应事件,用户可通过按下“回车”键进行操作。
“取消”按钮事件可通过System.exit(0)来退出应用程序。
2 功能选择界面开发设计在功能选择界面中,有“查询”,“取款”,“存款”,“转账”,“修改密码”及“退出”六个按钮,所以此界面中主要是对按钮事件的处理,分别对这六个按钮添加addSelectionListener()消息响应事件,通过选择不通的按钮事件可以跳转到相应的操作界面。
3 取款界面开发设计当跳转到取款界面时,要在取款界面内对用户的取款操作进行响应,取款界面共有“1000”,“800”,“500”,“300”,“100”,“输入”和“返回”这七个按钮。
其中对于“1000”,“800”,“500”,“300”,“100”五个按钮,当用户点击后,如果符合余额尚足,取款总额不超过5000等要求就可以取出相应数目的金额,并跳转到“取款成功!是否显示余额?”界面,在这个界面中,点击按钮“是”则跳转到显示余额界面,点击按钮“否”则返回功能选择界面;当不符合要求时则弹出“余额不足”或“本次取款总额超过5000”等消息提示对话框。
在此界面中还有一个“输入”按钮,由于要用户自己输入取款金额并要对此进行判断,所以为此按钮单独设计一个输入取款金额的界面,在此界面中,包含一个用来输入取款金额的文本框,一个用来对输入金额进行响应的“确定”按钮,一个用来返回取款界面的“取消”按钮,同样为了操作方便对输入金额文本框添加addKeyListener()键盘消息响应事件,执行操作与“确定”按钮一样。
在功能选择界面中主要是对按钮事件进行操作,通过对按钮添加addSelectionListener()消息响应事件来实现界面跳转的功能及对用户的操作进行判断并提示的功能。
4 存款界面开发设计在用户选择了存款功能后,就进入了存款界面,存款界面同取款功能中的用户自己输入取款金额的界面类似,也是一个输入存款金额文本框,一个“确定”按钮,一个“取消”,添加的响应事件与取款金额界面一样,只是处理内容发生了一些改变,在用户没按要求输入存款金额时,比如说出现负数和不是整数等情况,就会弹出“请输入正确的存款金额!”消息提示框。
当符合要求时跳转到“存款成功!是否显示余额?”界面,功能与“取款成功!是否显示余额?”界面一样,只是显示内容发生了些微改变。
5 转账界面开发设计转账界面有三个输入文本框,两个用来两次输入转账账号,第三个用来输入转账金额,还有一个“确认”按钮,一个“返回”按钮,同样为文本框添加addKeyListener()键盘消息响应事件,为按钮添加addSelectionListener()消息响应事件,事件处理内容为:当没输入时提示“输入错误!”对话框,当两次输入账号不一致时弹出“两次输入账号不一致!请重新输入!”消息提示对话框,当输入金额不满足要求时弹出“请输入正确的转账金额!”对话框,当转账金额大于余额时弹出“余额不足!”对话框。
当转账成功时进入“转账成功!是否显示余额?”界面,这与前面的取款和存款成功时显示的界面一样,就不再赘述了。
6 查询界面开发设计查询界面很简单,用来显示账户余额还剩多少,使用一个lable标签来显示余额,具体实现方法是使用lable.setText(),还有一个“返回”按钮,用来返回功能选择界面。
7 修改密码界面开发设计修改密码界面包含三个输入文本框和两个处理按钮,用户首先输入原始密码,然后输入新密码,再次输入新密码,“确定”按钮用来对三个文本框的输入进行处理响应,“返回”按钮用来返回功能选择界面。
同样为三个文本框添加addKeyListener()键盘消息响应事件来方便用户操作,为两个按钮添加addSelectionListener()消息响应事件,用来处理响应的事件。
对于三个文本框的输入情况,有这几种情况:当文本框输入为空或原密码输入错误或两次输入新密码不一致时,弹出“输入错误,请重新输入!”消息提示对话框;当输入新密码长度小于6位时弹出“密码长度为6位!”消息提示对话框;当输入新密码每位都相同时弹出“密码不能每位全相同!”消息提示对话框。