JAVA实训 ATM取款机

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/*判断旧密码是是否正确*/ if(pwd2.equals(act.get_Password())){ /*判断两次输入的密码是否匹配*/
if(pwd3.equals(pwd4)){ /*如果都正确的话就设置新密码*/
act.setPassword(pwd3); dispose(); Selection s = new Βιβλιοθήκη Baiduelection("选择",act); }else{
4 系统设计
4.1 总体设计
我所设计的 ATM 柜员机主要是由登录页面模块还由选择服务模块组成,其中选择 服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。其功能结构图 如下所示:
图 1 ATM 功能结构示意图
4.2 ATM 柜员机界面设计
我觉得一个系统的界面应该要简单明了,当然样式美观就更好了。我设计的界面主 要是由窗体组成,操作简单。而每一个窗口则执行相应的功能。
public void actionPerformed(ActionEvent e){ Account act; String card; String pwd; act=new Account("000000","Devil","123456",50000);//初始化 /*选择各种服务*/ if(e.getSource() == button1){ String number1,number2; number1=tf1.getText(); number2=tf2.getText(); /*判断密码和卡号是否正确*/
一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、 方便易操作。我设计的界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执 行相应的操作。
(1)窗体的设计 窗体整个框架使用 Frame 类构造,Frame 有自己的外边框和自己的标题,创建 Frame 时可以指定其窗口标题,我创建的窗口标题是各个不同功能的模块的名字,比如说查询 余额,还有取款等。相应源代码为:WindowBox(String s,Account act){super(“ATM 柜员 机”);} 、Selection(String s,Account act){
ATM 取 款 机 课 程 设 计 报 告
姓 名: 学 号: 专 业: 班 级:
ATM 取款机
1 课程设计过程概述
2009 年 6 月,JAVA 游戏开发课程设计在实验楼三楼机房进行,持续时间为两周。这 次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思 维,初步了解软件开发的一般流程,提高用 JAVA 编程的实际动手能力并增强大家对面 向对象的了解。这次课程设计的主要内容是独立用 JAVA 语言开发一个小的应用程序。 我开发了一个 ATM 柜员机。
p.add(new Label("请选择你要的服务")); this.add(p); button1 = new Button("存款"); p1.add(button1); this.add(p1); button2 = new Button("取款"); p2.add(button2); this.add(p2); button3 = new Button("查询余额"); p3.add(button3); this.add(p3); button4 = new Button("退出"); p4.add(button4); this.add(p4); button5 = new Button("修改密码"); p5.add(button5); this.add(p5); this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);
if(e.getSource()==button){ /*判断余额是否为负*/ if(act.get_Money()<0){ dispose(); ErrorWarn4 ew4 = new ErrorWarn4("消息!",act); } /*判断取款数额是否小于卡里余额*/ else if(money<=act.get_Money()){
许透支。 ATM 存款:不能出现负存款。 修改密码:只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可
以成功修改密码。
3.2 其他需求分析
(1)性能描述 实时性好、灵活性强、易于不同年龄阶段的人操作。 (2)设计约束 开发工具:JCrator ProV3.5.0 运行环境:Windows 2000 以上 能实现用户所定义的各项需求。 (3)界面要求 以 Windows 窗口形式显示,标题栏为 ATM 柜员机名称,右上角有最小化按钮、最 大化按钮、关闭按钮,不同的窗口中有不同的按钮和选择菜单。
addWindowListener(new WindowAdapter() //窗口侦听器,以从此窗口接收窗口事件 {public void windowClosing(WindowEvent e) //处理窗口关闭事件 { System.exit(0); } }); } (2)窗体的主要结构的设计 我所设计的窗口的主要结构的特点就是每个窗口都对应着一个特定的功能。比如说 报各种各样的错,还有各种查询余额、取款、选择服务等,所以它们都是由各种按钮和 文本框,标签组成的,而联系各个窗体成为一个整体的就是各个按钮的监听事件。所以 整个设计就趋向简单化了。 为了定义各个按钮所对应的命令和操作,首先需要将各个按钮注册给实现了动作事 件的监听接口 ActionListener 的监听者,然后为监听者定义 actionPerformed(ActionEvent e)方法,在这个方法中调用 e.getSource()或 e.getActionCommand()来判断用户点击的菜单 子项,并完成这个菜单子项定义的操作。
super(s); } 向 Frame 窗口中添加组件使用 add()。
例如:button1 = new Button("存款"); p1.add(button1); this.add(p1);
每个 Frame 在其右上角都有三个控制图标,分别代表将窗口最小化、窗口最大化和 关闭的操作,其中最小化和最大化操作 Frame 可自动完成,而关闭窗口操作实现需要书 写有关的代码,在我的程序中我采用的是对 WINDOWS_CLOSING 事件做出响应,调用 dispose()方法关闭窗口。Frame 也可以引发 WindowsEvent 类代表的窗口事件。相应源代 码为:
2 课程设计题目描述和基本设计要求
我设计的 ATM 柜员机主要是由各个 Windows 窗口组成,它是由登录页面、选择服 务、取款、查询余额、修改密码和退卡等功能。它的各种按钮的事件和功能可以简单的 模拟 ATM 柜员机的要求。
3 系统需求分析
3.1 功能需求分析
本 ATM 柜员机的主要功能如下所述: 要求使用图形用户界面。当输入给定的卡号和密码(初始卡号为 000000 和密码为 123456)时,系统能登录 ATM 柜员机系统,用户可以按照以下规则进行: 查询余额:初始余额为 50000 元 ATM 取款:每次取款金额为 100 的倍数,总额不超过 5000 元,支取金额不允
dispose(); ErrorWarn5 ew5 = new ErrorWarn5("消息!",act); } }
4.3.4 修改密码模块设计
在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。再一 个就是要两次输入你的新密码,且两次药匹配,否则也会报错,然后再重新回到修改密 码的界面。在修改密码时用到的方法为:
if((act.get_Code().equals(number1))&&(act.get_Password().equals(number2))){ dispose();
/*卡号和密码都正确则进入功能选择窗口*/ Selection s = new Selection("选择服务",act);
}else{ dispose(); ErrorWarn ew = new ErrorWarn("消息!",act);
dispose(); GetBalance gb = new GetBalance("取款",act);
} if(e.getSource()==button3){//查询余额
Query q =new Query("查询余额",act); dispose(); } else if(e.getSource()==button4){//退出
/*取款的数额必须是 100 的倍数且每次最多只能取 5000 块*/ if((money%100!=0)||(money>=5000)){ dispose(); ErrorWarn6 ew6 = new ErrorWarn6("消息!",act); } act.set_Balance(money);//重新设置卡里的余额 this.setVisible(false); /*取款后就再次进入选择界面*/ Selection s = new Selection("选择服务",act); //dispose(); }else if(money>act.get_Money()){
} } /*退卡*/ if(e.getSource()==button2){
System.exit(0); dispose(); }
}
4.3.2 选择服务模块设计
在选择服务模块中,有各种 ATM 的服务功能,只要用户在该界面中选择按钮,它 就会弹出各个相应的界面。每一个按钮都有监听器,在选择了按钮后,java.awt.event 中 的 ActionEvent 类 创 建 一 个 事 件 对 象 , 并 将 它 传 递 给 方 法 public void actionPerformed(ActionEvent e)中的参数 e,监视器就会知道所发生的事件,对此事件进 行处理。其中的部分源代码为:
4.3 各功能模块设计
4.3.1 登陆页面模块设计
与 ATM 柜员机打交道比较多的,也是大家对安全比较关心的问题:密码。所以第 一个界面就是要输入密码和卡号才能继续服务。
我定义了文本框累的对象 tf1,tf2。抓药是用于输入单行的文本;文本区调用 public
String getText()方法,获取用户想要的字符串。用来判断输入的密码和卡号是否正确, 如果不正确的话,则弹出密码或卡号错误的警告框,并用 dispose()关掉窗口。此模块相 应的部分源代码为:
System.exit(0); dispose(); } else if(e.getSource()==button5){//修改密码
ChangePassword cp = new ChangePassword("修改密码",act); dispose();
} } }
4.3.3 取款模块设计
在取款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有 标签组成的。用户在文本框中输入他想取的数额,但是必须是 100 的倍数,而且每一次 最多只能取 5000 块。当然了取款的时候也不能超过卡里的余额,再就是卡里的余额不 可以为负,否则就会弹出报错的窗口。其方法为:
} }); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this); button5.addActionListener(this); //setLayout(new GridLayout()); setBounds(150,150,200,200); setVisible(true); validate(); } public void actionPerformed(ActionEvent e){ if(e.getSource()==button2){//取款
相关文档
最新文档