当前位置:文档之家› java课程设计atm柜员机模拟程序大学论文

java课程设计atm柜员机模拟程序大学论文

课程设计(大作业)报告课程名称:面向对象程序设计课程设计设计题目:ATM柜员机模拟程序院系:信息技术学院班级:设计者:学号:指导教师:设计时间:2016-1-4-2016-1-8信息技术学院昆明学院课程设计(大作业)任务书课程设计(大作业)报告一、题目分析1.系统需求分析(1)设计目标:随着市场经济的繁荣发展,人们的物质生活得到极大的提高,手中的剩余资金也日益增多。

受传统观念影响,绝大多数人喜欢把资金投进银行,而在需要使用现金的时候再到银行提取现金。

这就导致银行业务的急剧增加。

虽然银行网点越来越多,银行的工作效率也随着信息化有较明显的增长,但是依旧不能满足广大用户的需要。

而一味的增加营业网点,从理论上虽然能稍微的缓解银行的压力,但是治标不治本,而且每增加一个网点,不仅要付出昂贵的资金成本,还需要长期投入人力资本,成本非常之昂贵。

这时候就迫切的需要一种自动的,易于普及的,低成本的设备来解决这一问题。

于是ATM机系统应运而生了。

自动柜员机,即ATM,是指银行在不同地点设置一种小型机器,利用一张信用卡大小的胶卡上的磁带记录客户的基本户口资料(通常就是银行卡),让客户可以透过机器进行提款、存款、转账等银行柜台服务,大多数客户都把这种自助机器称为自动提款机。

本文正是通过设计一个ATM模拟模拟程序来实现ATM机系统的基本功能,充分运用自己所学的Java知识进行设计编程。

(2)题目设计要求:本ATM柜员机的主要功能如下所述:要求使用图形用户界面。

当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:●查询余额:初始余额为10000元。

●ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

●ATM存款:不能出现负存款。

●修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

2.ATM模拟系统总体设计结构(1)设计思想:通过程序要求,我们可以清楚的知道本次设计的ATM柜员模拟程序需要实现四大功能,即查询余额、取款、存款、修改密码。

初次之外,作为ATM系统,还需要最基本的两大功能,即登陆和退出。

根据上述的功能分析,我们可以把整个ATM系统分为登陆模块、查询模块、取款模块、存款模块、修改密码模块。

除此之外,还有在登陆系统后的功能选择模块,退出功能则镶嵌在各个需要的模块中。

由于各个模块的功能实现是通过界面显示出来的,则程序设计又可以理解为几大界面的设计:登陆界面、主界面、查询余额界面、取款界面、存款界面、修改密码界面。

除了几大界面之外,还有系统的初始化,主要是初始卡号、密码的设定等。

在程序的大体框架确定之后,我们需要了解各个模块所要实现和需要具有的功能。

根据现有的银行ATM系统,我们可以很快就可以了解本次设计的ATM系统应该具有的操作。

a.登陆界面用户输入正确的账号和密码就可以登录到该系统的主界面中去,进行相应的操作:取款、存款、查询、修改密码。

b.主界面主界面包括查询、存款、取款、修改密码、退出的功能按钮,按下相应的按钮,可以进行相应的操作。

c.查询界面在主界面中按下查询按钮可以进行查询操作。

通过查询功能我们可以查询账户的余额,在查询过程中我们可以选择取款的业务,除此之外,查询界面之中还有返回和退出的操作。

返回的操作会使用户回到主界面,退出的操作会使用户直接回到登陆界面。

d.取款界面取款界面既可以通过主界面进入,也可以通过查询、存款等操作过程中的界面进入。

取款功能在对话框中输入你想要取出的金额,但是次金额不可以比账户的余额大,且必须是100的整数倍,取款完毕,会弹出是否显示余额的提示,选“是”的话就会进入查询界面,选“否”的话,则回到主界面。

e.存款界面在主界面按下存款按钮可以进行存款操作,在对话中输入你需要存入的金额,所输入的数字也要是100的整数倍,而且不可以是负数。

存款完毕,会弹出是否显示余额的提示,选“是”的话就会进入查询界面,选“否”的话,则回到主界面。

f.修改密码选择修改密码按钮可以进行修改密码房,但是要先输入就密码正确并且两次输入新密码一致才可以修改密码。

修改完成后,会返回主界面。

(2)ATM柜员机总体流程图,如图图1图1(3)ATM柜员机模拟模拟系统UML图,如图图2图23.系统开发及运行环境软件平台:Eclipse,jdk全套软件,editpuls编辑器Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。

就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Eclipse是著名的跨平台的自由集成开发环境(IDE)。

最初主要用来Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具。

Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。

许多软件开发商以Eclipse为框架开发自己的IDE。

图3二、各模块分析与实现1.系统各模块介绍代码中出现的Account类、MainFrame类、Load类、Take类、Input类、Setpew类和Display类都继承了Java类JFrame。

(1)账户创建模块Class Accout创建客户,初始化客户信息功能以及保存客户信息,例如:卡号、密码、原有余额、取款后卡里的余额以及存款后卡里的余额。

此类包含的成员有:成员变量account、count、password和方法构造方法Account()。

实现了账户信息的初始化工作,设置默认账户信息,账号:123456,密码:123456。

以便后续测试登陆时作为进入ATM模拟系统的信息凭证。

创建账户关键代码:class Account {private int count=10000; //初始账户余额10000private String account="123456"; //初始账号private String password="123456"; //初始密码public Account() { //账户函数}public void setpw(String password){ //设置密码this.password=password;}public void deccount(int money){ //deccount 取款count-=money;//取款后再原来基础上减所取部分}public void reccount(int money){ //reccount 存款count+=money;//存款后在原来基础上加所存部分}(2)主界面构造模块Class MainFrame构造主界面,提供业务选择,让用户可以在这个界面选择存款、取款、查询余额、修改密码。

它包含的成员有:构造方法MainFrame()和初始化主界面的方法initComponents()以及成员变量checked、cunkuan、quite、qukuan、reset。

实现的功能主要为主界面的初始化,主界面的布局管理,设置好查询、存款、取款、退出、返回的操作按钮。

关键代码:class MainFrame extends JFrame { //主框架方法由JFrame继承而来public JButton checked; //检测public JButton cunkuan; //存款public JButton quit; //退出public JButton qukuan; //取款public JButton reset; //重设//框架按钮参数public MainFrame() { //主框架函数initComponents(); //添加组件this.setLocationRelativeTo(null); //设置窗口相对于指定组件的位置this.setVisible(false); //隐藏其他窗口}(3)登陆模块Class Load 实现登录功能和登录界面,如果用户名和密码匹配就可以登录到主界面否则报错。

它的成员有:Jpassword、accountnum、committ、JL1、JL2和构造方法Load()和初始化方法initComponents()。

关键代码:class Load extends JFrame{public JPasswordField Jpassword;public JTextField accountnum;//public JButton commit;//增删private JLabel jL1;//设置对齐private JLabel jL2;public Load() {initComponents(); //初始化添加组件的和添加监听器this.setLocationRelativeTo(null);//使窗口至于屏幕中央this.setVisible(true);}(4)取款模块Class Take实现取款功能,按返回键返回主界面,按清除键可以删除输入数字,并且取出的金额必须是100的整数倍,一次取出的金额不能超过5000,取完款后可以显示余额。

该类的成员有:back、clear、commit、quite、JL1、JT1和构造方法Take()和初始化的initComponents()。

关键代码:class Take extends JFrame {p ublic JButton back;public JButton clear;public JButton commit;private JLabel jL1;public JTextField jT1;public JButton quit;String str="";public Take() {initComponents();this.setLocationRelativeTo(null);this.setVisible(false);}(5)存款模块Class input实现存款功能,存款的金额必须是100的整数倍,否则报错提示重新输入。

成员有:clear、commit、jL1、jT1、str以及构造函数Inputhe()和初始化方法initComponents()。

关键代码:class Input extends JFrame {private JButton clear;private JButton commit;private JLabel jL1;private JTextField jT1;String str="";public Input() {initComponents();this.setLocationRelativeTo(null);this.setResizable(false);this.setVisible(false);}(6)显示余额模块Class Display功能为显示当前余额,在显示余额时JTextField的内容不可以编辑,成员有:成员变量back、jL1、quit、qukuan和构造方法Display()和方法数set(String str)和初始化的方法initComponents()。

相关主题