ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:109.77KB ,
资源ID:3729615      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3729615.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JAVAATM机课程设计报告图形化界面.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JAVAATM机课程设计报告图形化界面.docx

1、JAVAATM机课程设计报告图形化界面ATM取款机系统(JAVA)1 课程设计的目的此次课程设计让我对JAVA有了更深刻的认识,这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解,对以后在面向对象的编程中奠定基础。2 系统总体设计2.1 数据库设计在ATM取款机系统中,数据库的设计也很重要,数据库的好坏会影响到整个系统的运行效率,在此次设计中,atm数据库包括有以下1个表,客户信息表(guest)。 表1客户信息表(guest)列名数据类型及长度是否为空主键说明id数字NO主键

2、记录号gid文本NO银行卡号pwd文本NO密码gmoney货币NO钱数目2.2系统功能模块划分 本系统主要包括登陆模块设计,选择服务模块设计,取款模块设计,修改密码模块设计,退卡模块设计等几个功能模块。其中, (1)登陆模块设计:与ATM柜员机打交道比较多的,也是大家对安全比较关心的问题:密码。所以第一个界面就是要输入密码和卡号才能继续服务。 (2) 选择服务模块设计:在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。 (3) 取款模块设计:在取款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标签组成的,实现用户取款的服务。 (

3、4) 修改密码模块设计:在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。再一个就是要两次输入你的新密码,且两次要匹配,否则也会报错,然后再重新回到修改密码的界面。 (5) 退卡模块设计:此功能非常简单,仅仅是实现弹出卡的功能。2.3 ATM取款机系统功能结构图总体设计中最核心的问题是系统总体功能结构的确定和子系统与模块的划分,结构化。ATM取款机系统功能结构图,如图1所示:图1 ATM取款机系统功能结构图该ATM取款机系统各个部分负责的主要业务如下:(1) 登陆页面模块,对取款者进行身份验证。(2) 选择服务模块 ,包括取款,余额查询,转帐,修改密码,退出等功能模块。(3)

4、 取款模块,实现取款的具体操作。(4) 查询余额模块,查看当前登陆人员的余额。(5) 修改密码模块,可以方便的实现当前登陆人员对自己的密码进行修改。(6) 退卡模块,完成取款,查询等功能后退出银行卡。3详细设计在这次系统设计过程中,我把详细设计介绍如下:配置好环境,编译程序,当程序运行后,首先看到的页面银行管理系统页面,它的运行效果图,如图2所示: 图2银行管理系统首界面登陆页面模块设计:定义了文本框类的对象tf1,tf2。主要是用于输入单行的文本;文本区调用public String getText()方法,获取用户想要的字符串。用来判断输入的密码和卡号是否正确,如果不正确的话,则弹出密码或

5、卡号错误的警告框,并用dispose()关掉窗口。此模块相应的详细源代码见附录部分,部分代码如下: box1= Box.createVerticalBox; box1.add(new Label(请输入你的卡号); /输入卡号 box1.add(Box.createVerticalStrut(8); box1.add(new Label(请输入你的密码);/输入密码 选择服务模块设计:在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。每一个按钮都有监听器,在选择了按钮后,java.awt.event中的ActionEvent类创建一个事件对象,并将

6、它传递给方法public void actionPerformed(ActionEvent e)中的参数e,监视器就会知道所发生的事件,对此事件进行处理。其中的详细源代码请参见附录部分,部分代码如下: this.setLayout(null); this.setLayout(new GridLayout(6,1); p.add(new Label(请选择你要的服务); this.add(p); 取款模块设计:在取款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标签组成的。用户在文本框中输入他想取的数额,但是必须是100的倍数,而且每一次最多只能取5000块。当然了取款的时候

7、也不能超过卡里的余额,再就是卡里的余额不能为负,否则就会弹出报错的窗口。其方法的具体实现代码请参见附录部分,部分代码如下: if(money%100!=0)|(money=5000)/取钱数为100的倍数或不大于5000 dispose(); ErrorWarn6 ew6 = new ErrorWarn6(消息!,act); act.set_Balance(money);/重置余额 this.setVisible(false); 修改密码模块设计:在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。再一个就是要两次输入你的新密码,且两次药匹配,否则也会报错,然后再重新回到修改密

8、码的界面。在修改密码时用到的方法的具体实现代码请参见附录部分,部分代码如下: tf4 = new TextField(6); tf5 = new TextField(6); tf6 = new TextField(6);退卡模块设计:在退卡模块设计中,这个方法就更加的简单了,它只是用了 if(e.getSource()=button4)/退出 System.exit(0); dispose(); 这个方法就可以实现了,这里就不再多说了。4 系统运行效果及存在问题4.1系统运行效果进入系统按钮进入输入卡号页面,运行效果图,如图3所示:图3 输入卡号界面 输入卡号后,点击确定时系统会判断是否存在此

9、卡号,如果不存在此卡号,系统则会自动提醒用户此卡号不存在,请重新输入,如果输入的是正确的卡后,则进入输入密码界面,其运行效果图,如图4所示: 图4 输入密码界面 输入不正确,则会提醒你密码不正确,请重新输入,当输入正确密码后,点击确定进入系统主界面,运行效果图,如图5所示:图5 系统主界面界面在主界面中包含了6个主要功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。当点击取款按钮时弹出取款界面,运行效果图,如图6所示: 图6 取款界面当点击余额查询界面时系统会自动帮助你检索你的当前账户还有多少钱,并且在查 询完后会自动弹出友好界面,来显示你的当前余额,余额查询界面,运行效果图,如图7

10、所示: 图7 帐户余额查看界面 在取款界面中,选择要取的金额,取出金额,并且会弹出取款成功界面,运行效果图,如图8所示: 图8 取款成功界面在选择服务界面,点击转账功能按钮之后,则会弹出转账界面,运行效果图,如图9所示: 图9 转帐操作界面在选择服务界面,点击修改密码功能按钮,则会弹出修改密码界面,运行效果图,如图10所示: 图10 修改密码界面经过测试,所有的功能基本上都实现了,而且运行正常。4.2 系统存在问题在此次课程设计中,我遇到了一些问题,如:对于面向对象的方法了解不够透彻,运用到实际的软件开发中存在着困难;对于Java语言,只学习到了一些最基本的知识,这导致编写程序时经常出现一些语

11、法错误,而且要在短时间内用Java语言来设计一个具体的系统是一个较大的挑战;还有对于正规开发一个系统的流程不熟悉,适应起来比较慢,编写各个模块相对应的操作时,自己感觉难以动手,这表明所学的知识不能灵活运用到实际中。 对于以上的问题,自己有清楚的认识,解决办法是需要大量阅读相关的书籍,对于书上以及网站上下载的资料中的Java实例必须有清楚的理解,还有就是多跟精通此方面的老师和同学交流,取其精华。对于实际动手能力与系统开发的流程的适应,必须多进行实际的练习与操作,才能有大的进步。5 设计体会在这次的课程设计中,主要是运用JAVA语言来编写一个小的应用程序,当然还可以用其他的技术来辅助了。在这个小应

12、用程序当中,我用了Java外还用了Swing控件。输入输出流等技术。由于以前学的不是很扎实,而且还有些知识我们都是没有学过的,这就要求我们去查相关的书籍,还有就是和同学之间的交流。正因为这样,才锻炼了我的自学的能力,还有就是加深了我对各个知识点的认识,并且提高了我对专业的学习的兴趣,为我以后的学习打下了基础。此外,我还感受到了面向对象语言的类库的强大的功能,掌握了运用JAVA中的类实现某些基本功能,并学会了自己查询使用类的方法,也就是要会用API文档,为以后更好的学习面向对象语言奠定了基础。6 参考文献1 张孝祥,JAVA就业培训教材M.北京:清华出版社 20062 印昊, JAVA与面向对象

13、程序设计M.北京: 高等教育出版社 20043 李尊朝, JAVA语言程序设计M.北京: 中国铁道出版社 20044 孙健.计算机周刊-CNKIJ.上海市:长江计算机(集团)公司主办,2000,10:102-165附录在附录中我们将附加一些程序设计过程中的代码: (1)登陆页面首窗口设计代码:class WindowBox extends Frame implements ActionListener Box baseBox,box1,box2; TextField tf1,tf2; Button button1; Button button2; WindowBox(String s) /构造

14、方法 super(s); tf1 = new TextField(6); tf2 = new TextField(6); box1= Box.createVerticalBox; box1.add(new Label(请输入你的卡号); /输入卡号 box1.add(Box.createVerticalStrut(8); box1.add(new Label(请输入你的密码);/输入密码 box2=Box.createVerticalBox(); box2.add(tf1); /box2.add(new TextField(16); box2.add(Box.createVerticalStr

15、ut(8); box2.add(tf2); /box2.add(new TextField(16); baseBox=Box.createHorizontalBox(); baseBox.add(box1); baseBox.add(Box.createHorizontalStrut(10); baseBox.add(box2); add(baseBox); button1= new Button(确定);/加入按钮 button1.addActionListener(this); add(button1); button2 = new Button(退卡);/退卡按钮 button2.add

16、ActionListener(this); add(button2); setLayout(new FlowLayout(); (2)监听器设计代码:this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); setBounds(120,125,200,175); setVisible(true); public void actionPerformed(ActionEvent e) Account act; String card; String

17、pwd; act=new Account(000000,Devil,123456,50000);/初始化 (3)选择各种服务设计代码:if(e.getSource() = button1) String number1,number2;/输入的两个卡号和密码的变量 number1=tf1.getText(); number2=tf2.getText(); /*判断两次输入的卡号和密码是否正确*/ if(act.get_Code().equals(number1)&(act.get_Password().equals(number2) dispose(); Selection s = new S

18、election(选择服务,act); else dispose(); ErrorWarn ew = new ErrorWarn(消息!,act);/报输入密码或卡号不正确 if(e.getSource()=button2) System.exit(0); dispose();/退出 (4)主函数设计代码:class ATM public static void main(String args) new WindowBox(登录页面); (5)选择服务设计代码:import java.awt.*;import java.awt.event.*;class Selection extends

19、Frame implements ActionListener Button button1,button2,button3,button4,button5; Panel p1 = new Panel(); Panel p2 = new Panel(); Panel p3 = new Panel(); Panel p4 = new Panel(); Panel p5 = new Panel(); Panel p = new Panel(); Account act; public Selection() Selection(String s,Account act) super(s); thi

20、s.act=act; this.setLayout(null); this.setLayout(new GridLayout(6,1); p.add(new Label(请选择你要的服务); this.add(p); (6)各种服务功能设计代码: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); butt

21、on4 = 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); ); button2.addActionListener(this); button3.addActionListener(this); button4.addActionLi

22、stener(this); button5.addActionListener(this); setBounds(150,150,200,200); setVisible(true); validate(); public void actionPerformed(ActionEvent e) if(e.getSource()=button2)/取款 dispose(); GetBalance gb = new GetBalance(取款,act); if(e.getSource()=button3)/查询余额 Query q =new Query(查询余额,act); dispose();

23、else if(e.getSource()=button4)/退出 System.exit(0); dispose(); else if(e.getSource()=button5)/修改密码 ChangePassword cp = new ChangePassword(修改密码,act); dispose(); (7)取款功能设计代码:import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;class GetBalance extends Frame implemen

24、ts ActionListener Box baseBox, box1,box2; Button button; TextField tf; Account act; GetBalance(String s,Account act)/构造函数 super(s); this.act=act; button=new Button(确定); Panel panel = new Panel(); Panel panel1 = new Panel(); tf = new TextField(6); this.setLayout(new GridLayout(2,1); panel1.add(new La

25、bel(请输入你想取钱的数目); panel1.add(tf); panel.add(button); this.add(panel1); this.add(panel); button.addActionListener(this); this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); setBounds(200,200,150,150); this.setVisible(true); public void actionPerformed

26、(ActionEvent e) /System.out.println(e.getActionCommand(); double money; money = Double.parseDouble(tf.getText().trim(); if(e.getSource()=button) if(act.get_Money()0)/判断余额是否为负 dispose(); ErrorWarn4 ew4 = new ErrorWarn4(消息!,act); else if(money=5000)/取钱数为100的倍数或不大于5000 dispose(); ErrorWarn6 ew6 = new E

27、rrorWarn6(消息!,act); act.set_Balance(money);/重置余额 this.setVisible(false); Selection s = new Selection(选择服务,act);/返回选择服务窗口 /dispose(); else if(moneyact.get_Money()判断取款数额是否大于余额 dispose(); ErrorWarn5 ew5 = new ErrorWarn5(消息!,act); public static void main(String args) GetBalance test = new GetBalance(dfd

28、f); GetBalance gb = new GetBalance(取款); (8)修改密码设计代码:import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;class ChangePassword extends Frame implements ActionListener Panel panel1 = new Panel(); Panel panel2 = new Panel(); Panel panel3 = new Panel(); Panel panel = new Panel(); TextField tf4,tf5,tf6; Button button; Account act; ChangePassword(String s,Account act) super(s); this.act=act; tf4 = new TextField(6); tf5 = new TextField(6); tf6 = new TextField(6); button = new Button(确定); button.addActionListe

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1