logo资料库

ATM柜员机模拟程序 Java程序 论文附有完整代码.doc

第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
资料共33页,剩余部分请下载后查看
摘 要
目 录
1 前言
1.1 设计任务
1.1.1 需求说明
1.2 设计内容
2 程序要求
3 算法分析
4 流程图
5 程序源代码及说明
5.1 程序源代码
5.2 源代码说明
5.2.1 源代码中自定义类的说明:
5.2.2源代码中的事件监听器
6 调试及运行结果
7 体会
8 参考文献
课程论文 现代软件工程与实践 题 目: ATM 柜员机模拟程序 学院(系): 信息工程学院 专业班级: 学生姓名: 指导教师: 2011 年 12 月 4 日
武汉理工大学工程硕士课程论文─《现代软件工程与实践》 摘 要 通过设计 ATM 柜员模拟程序,加深自己对 Java 编程尤其是对 Java 图形用户界面编 程的了解,将自己的学到的编程知识融会贯通,同时培养自身面向对象软件开发的思维, 初步了解软件开发的一般流程,提高用 Java 实际动手能力并增强自己对面向对象的了 解。通过这次编程设计,加深了对 Java 图形界面编程中各个模块和组件的应用了解,以 及类和类之间的关系,界面排版的处理等。 设计要求是,当输入给定的卡号和密码(初始卡号和密码为 123456)时,系统能登 录 ATM 柜员机系统,用户可以按照以下规则进行(规则可以按照实际系统做需求):(1) 查询余额:初始余额为 10000 元。(2)ATM 取款:每次取款金额为 100 的倍数,总额 不超过 5000 元,支取金额不允许透支。(3)ATM 存款:不能出现负存款。(4)修改密 码:新密码长度不小于 6 位,不允许出现 6 位完全相同的情况,只有旧密码正确,新密 码符合要求,且两次输入相同的情况下才可以成功修改密码。 该程序设置了 7 个类,1 个主类 6 个辅助类,6 个辅助类都是内部类的形式,辅助 类包括五个实现 ATM 的功能,一个存放客户资料,之所以用内部类来实现是为了在各 个界面转换时不至于要创建多个对象,每一个辅助类的对象只要在主类中创建一次就可 以在各个内部类中引用。该程序利用的功能是利用 Java 事件监听技术来实现的,各种功 能单独的创建一个类来实现,不会互相混淆,更加容易理清楚思路。设计的程序完美的 实现了设计要求,具有查询、取款、存款、修改密码等功能。 I
目 录 摘 要.........................................................................................................................................I 目 录....................................................................................................................................... II 1 前言........................................................................................................................................1 1.1 设计任务..........................................................................................................................1 1.1.1 需求说明...................................................................................................................1 1.2 设计内容..........................................................................................................................1 2 程序要求................................................................................................................................1 3 算法分析................................................................................................................................2 4 流程图....................................................................................................................................3 5 程序源代码及说明................................................................................................................4 5.1 程序源代码......................................................................................................................4 5.2 源代码说明....................................................................................................................21 5.2.1 源代码中自定义类的说明:.................................................................................21 5.2.2 源代码中的事件监听器..........................................................................................22 6 调试及运行结果..................................................................................................................23 7 体会......................................................................................................................................29 8 参考文献..............................................................................................................................30 II
武汉理工大学工程硕士课程论文─《现代软件工程与实践》 1 前言 1.1 设计任务 1.1.1 需求说明 随着市场经济的繁荣发展,人们的物质生活得到极大的提高,手中的剩余资金也日 益增多。受传统观念影响,绝大多数人喜欢把资金投进银行,而在需要使用现金的时候 再到银行提取现金。这就导致银行业务的急剧增加。虽然银行网点越来越多,银行的工 作效率也随着信息化有较明显的增长,但是依旧不能满足广大用户的需要。而一味的增 加营业网点,从理论上虽然能稍微的缓解银行的压力,但是治标不治本,而且每增加一 个网点,不仅要付出昂贵的资金成本,还需要长期投入人力资本,成本非常之昂贵。这 时候就迫切的需要一种自动的,易于普及的,低成本的设备来解决这一问题。于是 ATM 机系统应运而生了。 本文正是通过设计一个 ATM 模拟模拟程序来实现 ATM 机系统的基本功能,充分运 用自己所学的 Java 知识进行设计编程。 1.2 设计内容 (1)程序要求 (2)算法分析 (3)流程图 (4)源程序 (5)调试及运行结果 (6)体会 2 程序要求 本 ATM 柜员机的主要功能如下所述: 要求使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为 123456)时, 系统能登录 ATM 柜员机系统,用户可以按照以下规则进行:  查询余额:初始余额为 10000 元。  ATM 取款:每次取款金额为 100 的倍数,总额不超过 5000 元,支取金额不允 许透支。  ATM 存款:不能出现负存款。 1
武汉理工大学工程硕士课程论文─《现代软件工程与实践》  修改密码:新密码长度不小于 6 位,不允许出现 6 位完全相同的情况,只有旧 密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 3 算法分析 通过程序要求,我们可以清楚的知道本次设计的 ATM 柜员模拟程序需要实现四大 功能,即查询余额、取款、存款、修改密码。初次之外,作为 ATM 系统,还需要最基 本的两大功能,即登陆和退出。 根据上述的功能分析,我们可以吧整个 ATM 系统分为登陆模块、查询模块、取款 模块、存款模块、修改密码模块。除此之外,还有在登陆系统后的功能选择模块,退出 功能则镶嵌在各个需要的模块中。由于各个模块的功能实现是通过界面显示出来的,则 程序设计又可以理解为几大界面的设计:登陆界面、主界面、查询余额界面、取款界面、 存款界面、修改密码界面。除了几大界面之外,还有系统的初始化,主要是初始卡号、 密码的设定等。 在程序的大体框架确定之后,我们需要了解各个模块所要实现和需要具有的功能。 根据现有的银行 ATM 系统,我们可以很快就可以了解本次设计的 ATM 系统应该具有的 操作。 (1)登陆界面 用户输入正确的账号和密码就可以登录到该系统的主界面中去,进行相应的操作: 取款、存款、查询、修改密码。 (2)主界面 主界面包括查询、存款、取款、修改密码、退出的功能按钮,按下相应的按钮,可 以进行相应的操作。 (3)查询界面 在主界面中按下查询按钮可以进行查询操作。通过查询功能我们可以查询账户的余 额,在查询过程中我们可以选择取款的业务,除此之外,查询界面之中还有返回和退出 的操作。返回的操作会使用户回到主界面,退出的操作会使用户直接回到登陆界面。 (4)取款界面 取款界面既可以通过主界面进入,也可以通过查询、存款等操作过程中的界面进入。 取款功能在对话框中输入你想要取出的金额,但是次金额不可以比账户的余额大,且必 须是 100 的整数倍,取款完毕,会弹出是否显示余额的提示,选“是”的话就会进入查 询界面,选“否”的话,则回到主界面。 (5)存款界面 在主界面按下存款按钮可以进行存款操作,在对话中输入你需要存入的金额,所输 2
武汉理工大学工程硕士课程论文─《现代软件工程与实践》 入的数字也要是 100 的整数倍,而且不可以是负数。存款完毕,会弹出是否显示余额的 提示,选“是”的话就会进入查询界面,选“否”的话,则回到主界面。 (6)修改密码 选择修改密码按钮可以进行修改密码房,但是要先输入就密码正确并且两次输入新 密码一致才可以修改密码。修改完成后,会返回主界面。 4 流程图 登 录 输 入 账 号 和 密 码 N 账 号 和 密 码 是 否 正 确 Y 主 界 面 选 择 业 务 存 款 取 款 修 改 密 码 退 出 存 入 取 款 输 入 密 码 Y N 是 否 符 合 Y 显 示 余 额 N Y 取 款 显 示 余 额 N 3 查 询 显 示 余 额 退 出 返 回
武汉理工大学工程硕士课程论文─《现代软件工程与实践》 图 1 程序流程图 5 程序源代码及说明 5.1 程序源代码 import javax.swing.*; import javax.swing.JOptionPane; import java.awt.event.*; public class ATMmodel { Account myaccount=new Account(); Load load=new Load(); MainFrame Jmain=new MainFrame(); Take take=new Take(); Input input=new Input(); Display dis=new Display(); Setpw setpw=new Setpw(); public ATMmodel() { JOptionPane.showMessageDialog(null,"欢迎使用 ATM 柜员模拟系统"); } public static void main(String[] args) { ATMmodel atm=new ATMmodel(); } /*创建账户*/ class Account { private int count=10000; private String account="123456"; private String password="123456"; //初始账户余额 10000 //初始账号 //初始密码 public Account() { } public void setpw(String password){ this.password=password; } public void deccount(int money){ count-=money; } 4
武汉理工大学工程硕士课程论文─《现代软件工程与实践》 public void reccount(int money){ count+=money; } public int get(){ return count; } public String getaccount(){ return account; } public String getpw(){ return password; } //账号 } /* 主界面*/ class MainFrame extends 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); // } /* 控件初始化*/ private void initComponents() { cunkuan = new JButton(); qukuan = new JButton(); checked = new JButton(); reset = new JButton(); quit = new JButton(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setTitle("ATM 柜员模拟程序"); setName("mianframe"); setResizable(false); cunkuan.setText("存款"); cunkuan.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { cunkuanActionPerformed(evt); 5
分享到:
收藏