logo资料库

JAVA 课程设计 ——ATM课程设计.doc

第1页 / 共54页
第2页 / 共54页
第3页 / 共54页
第4页 / 共54页
第5页 / 共54页
第6页 / 共54页
第7页 / 共54页
第8页 / 共54页
资料共54页,剩余部分请下载后查看
目 录 前言 ............................................. 错误!未定义书签。 1、程序设思路 .................................... 错误!未定义书签。 2、程序的整体描述 ...............................................1 2.1 使用说明 .................................................1 2.2 程序流程图 ...............................................2 2.3 JAVA 类与自定义类的 ......................................3 2.4 自定义类的说明 .......................................... 3 2.5 事件监听器 ............................... 错误!未定义书签。 2.6 运行效果 ................................................ 5 2.7 存在的问题 .............................................. 5 3、源程序清单 ..................................................... 8 4、参考文献.............................................................................. 错误!未定义书签。
ATM 柜员机模拟程序 摘要:运用了事件监听技术来实现 ATM 的各种功能例如:存款、取款、修改密码、查询。 利用 NetBeans 进行用户图形的界面排版,符合日常软件使用规范来设计菜单和界面,方便 用户操作,同时也使的程序更加简单。 关键字: JAVA、ATM 前言 :ATM 柜员机模拟实现了 ATM 柜员机的基本功能,本文主要介绍了编写 ATM 柜员机的 一些过程和方法。系统需要账户要有密码保护功能,只有输入相应的密码才可以进入该账户, 登陆界面中密码框须使用‘*’保护。用户登录后,进入服务选择界面,浏览各种服务,选 择所需要的服务。服务包括(取款,存款,查询余额,修改密码)。 文中列出了所有的自定 义的类和类中所包含的成员。以及 Java 类与自定义类相互之间继承的层次关系及。同时也 画出了程序运行的流程图。 1.程序设计思路阐述 该程序设置了 8 个类,1 个主类 7 个辅助类,7 个辅助类都是内部类的形式,辅助类包 括五个实现 ATM 的功能,一个用来显示 ATM 主界面,一个存放账户资料,之所以用内部 类来实现是为了在各个界面转换时不至于要创建多个对象,每一个辅助类的对象只要在主类 中创建一次就可以在各个内部类中引用。至于界面的实现则利用 NetBeans 对图形用户界面 进行排版,这样比起用 JCreator 来写更容易,布局不需要自己用语言写出来,只要按着程序 的需要在 NetBeans 中设置控件属性就可以了。该程序利用的功能是利用 Java 事件监听技术 来实现的,各种功能单独的创建一个类来实现,不会互相混淆,更加容易理清楚思路。 2.程序整体描述 2.1 使用说明 用户可以根据流程图很快就可以了解该模拟柜员机的使用:用户输入正确的 账号和密码就可以登录到该系统中去,进行相应的操作:取款、存款、查询、修 改密码。通过查询功能 我们可以查询账户的余额,在查询过程中我们可以选择取款的业务。取款功能在 对话框中输入你想要取出的金额,但是次金额不可以比账户的余额大,且必须是 100 的整数倍,取款完毕,可以选择显示余额的操作。返回后可以进行存款操作, 在对话中输入你需要存入的金额,所输入的数字也要是 100 的整数倍,而且不可 1
以是负数,支取金额也不允许透支。选择修改密码按钮可以进行密码修改,但是 要先输入就正确密码并且两次输入一致的新密码才可以修改密码。 2.2 程序流程图 如下图: 图 1 2
2.3 Java 类与自定义类的层次关系 如下图: JFrame MainFrame Load Take Input Setpew Display 图 2 MyAccount 类、MainFrame 类、Load 类、Take 类、Input 类、Display 类、Setpew 类和 Doing 类都继承了 Java 类 JFrame 类。 2.4 自定义类的说明: (1)Class MyAccount 创建客户,初始化客户信息功能以及保存客户信息,例 如:卡号、密码、原有余额、取款后卡里的余额以及存款后卡里的余额。此类包 含的成员有:修改密码方法 setpw(),设置取款后的账户余额方法 deccount(),设 置存款后的账户余额方法 reccount(),获得账户金额方法 get(),取得账号方法 getaccount()和获得密码方法 getpw(),成员变量 count、account、password 和方法 构造方法 MyAccount()。 (2)Class MainFrame 构造主界面,提供业务选择,让用户可以在这个界面选择 存款、取款、查询余额、修改密码。它包含的成员有:构造方法 MainFrame()和 初始化主界面的方法 initComponents()以及成员变量 checked、cunkuan、quite、 qukuan、reset。 (3)Class Load 实现登录功能和登录界面,如果用户名和密码匹配就可以登录 到主界面否则报错。它的成员有:Jpassword、accountnum、committ、JL1、JL2 和构造方法 Load()和初始化方法 initComponents()。 (4)Class Take 实现取款功能,按返回键返回主界面,按清除键可以删除输入数 字,并且取出的金额必须是 100 的整数倍,一次取出的金额不能超过 5000,而 且不可以是负数,支取金额也不允许透支,取完款后可以显示余额。该类的成员 有 :back 、clear 、commit 、quite 、JL1 、JT1 和 构 造 方 法 Take() 和 初 始 化 的 initComponents()。 (5)Class input 实现存款功能,存款的金额必须是 100 的整数倍,否则报错提 3
示重新输入。成员有:成员变量:str、back、clear、commit、doing、jB0、jB00、 jB1、jB2、jB3、jB4、jB5、jB6、jB7、jB8、jB9、jL1、jPanel1、jT1、quite 以及 构造函数 Inputhe()和初始化方法 initComponents() (6)Class Display 功能为显示当前余额,在显示余额时 JTextField 的内容不可以 编辑,成员有:成员变量 back、jL1、jT1、quit、qukuan 和构造方法 Display()和 方法数 set(String str)和初始化的方法 initComponents()。 (7)class Setpw 创建此类是为了实现修改密码的功能,设置的密码必须是六位 以上的字符,并且所设置的密码不能是同一个字符组成,否则报错。成员有:成 员变量 commit、commitpw、jPwcommit、jPwnew、jPwold、newpw、oldpw、quit 和构造方法 Setpw()和初始化方法 initComponents()。 (8)Class Doing 功能是为显示取款时的状态类,当用户进行取款操作时显示“处 理中…”,成员有:成员变量 JL 和 font 以及构造方法 Doing()。 2.5 事件监听器 (1)MainFrame 类的监听器 在该类中设置了五个监听器,监听鼠标单击按钮,分别监听存款、取款、 查询、修改密码、退出等按钮的事件。 (2) Load 类的监听器 在该类中只有一个监听器,监听鼠标单击“确定”按钮时的事件。 (3) Take 类的监听器 在该类中设置了四个监听器,同样是监听鼠标单击按钮事件,分别监听“清 除”、“退出”、“返回”、“确定”按钮的事件。 (4 )input 类的监听器 在这个类中共设置了两个监听器,它们也是监听鼠标单击按钮事件。它们 监听“清除”、“确定”按钮事件。 (5 )display 类的监听器 在 display 中设置了三个监听器,都属于监听鼠标单击按钮事件,分别监听 “退出”、“返回”、“取款”按钮事件。 (6 )Setpw 类的监听器 在这个类中设置了两个监听器,它们是监听鼠标单击按钮事件,分别监听 “确定”、“退出”按钮事件 4
2.6 运行效果 程序运行能够实现图形用户界面。当输入给定的卡号和密码(初始卡号和 密码为 123456)时,系统能登录 ATM 柜员机系统,登录界面如下: 登录后界面如下: 图 3 图 4 用户可以按照以下规则进行: (1) 查询余额:初始余额为 10000 元 (2) ATM 取款:每次取款金额为 100 的倍数,总额不超过 5000 元,支取金额 不允许透支。 (3)ATM 存款:不能出现负存款。 (4) 修改密码:新密码长度不小于 6 位,不允许出现 6 位完全相同的情况,只 有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 2.7 存在的问题: 5
通过了这些天的课程设计,对于我这个编程新手来说,还的确有些困难。 首先,我需要了解一些基本的术语。程序是计算机执行的一系列的指令。这些指 令说明了计算机要做什么,究竟是用文字处理、电子表格、玩游戏还是其他用途。 然后,我还要去图书馆查阅资料,找一些与这次课设有关的内容作参考,以便能 更方便的完成课设的内容。另外,我还去网上查阅了一些资料,充实一下自己, 一切都准备好了,我就可以完成我的 ATM 柜员机设计报告了。 由于对 neatbeans 运用的不够熟练,界面不美观,功能与真实的有一定的差 距。多个账户的实现需要创建数据库,而因为对此还不是很熟练,故没能实现多 个账户。 通过此次课程设计,将我本学期所学的 JAVA 知识得到巩固和应用,在设计 的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很 好的完成了。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识 面,开阔视野,拓展思维。感谢傅老师,他循循善诱的教导和不拘一格的思路给 予我的启迪。同时也感谢同学对我的帮助和指点。 3.源程序清单 import javax.swing.JOptionPane; import javax.swing.JDialog; import javax.swing.JLabel; import java.awt.Font; import java.awt.Color; import javax.swing.SwingConstants; import java.awt.event.*; /** * 该类是主类,在该类中定义了其他各个类的全局对象 * 登录界面的类 Load、主界面的类 MainFrame、取款的界面类 Take * 存款界面的类 Input、显示余额的界面类 Display * 修改密码的类 Setpw、账户类 MyAccount * 状态显示类 Doing */ 6
public class ATMModel { MyAccount myaccount=new MyAccount();//账户类 MyAccount Load load=new Load();//登录界面的类 Load MainFrame Jmain=new MainFrame();//主界面的类 MainFrame Take take=new Take();//取款的界面类 Take Input input=new Input();//存款界面的类 Input Display dis=new Display();//显示余额的界面类 Display Setpw setpw=new Setpw();//修改密码的类 Setpw Doing doing=new Doing();// 状态显示类 Doing public ATMModel() { } public static void main(String[] args) { ATMModel atm=new ATMModel(); } /** *我的账户,在该类中定义了初始账户余额 count *初始账号 account *初始密码 password */ class MyAccount { private int count=10000;//初始账户余额 10000 private String account="123456";//初始账号 private String password="123456";//初始密码 7
分享到:
收藏