《2022年JAVA)ATM机课程设计方案报告(图形化面.docx》由会员分享,可在线阅读,更多相关《2022年JAVA)ATM机课程设计方案报告(图形化面.docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源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) 登陆页面模块,对取款者进行
4、身份验证;(2) 选择服务模块 ,包括取款,余额查询,转帐,修改密码,退出等功能模块;(3) 取款模块,实现取款的详细操作;(4) 查询余额模块,查看当前登陆人员的余额;(5) 修改密码模块,可以便利的实现当前登陆人员对自己的密码进行修改;(6) 退卡模块,完成取款,查询等功能后退出银行卡;3 详细设计在这次系统设计过程中,我把详细设计介绍如下:配置好环境,编译程序,当程序运行后,第一看到的页面银行治理系统页面,它的运行成效图,如图 2 所示:欢迎下载精品学习资源图 2 银行治理系统首界面登陆页面模块设计:定义了文本框类的对象tf1,tf2 ;主要是用于输入单行的文本; 文本区调用 publi
5、c String getText方法,猎取用户想要的字符串;用来判定输入的密码和卡号是否正确,假如不正确的话,就弹出密码或卡号错误的警告框,并用dispose 关掉窗口;此模块相应的详细源代码见附录部分,部分代码如下:box1= Box.createVerticalBox ;box1.addnew Label 请输入你的卡号 ; / 输入卡号box1.addBox.createVerticalStrut8 ;box1.addnew Label 请输入你的密码 ;/ 输入密码选择服务模块设计:在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面;每一个按
6、钮都有监听器,在选择了按钮后, java.awt.event 中的 ActionEvent 类创建一个大事对象,并将它传递给方法public void actionPerformedActionEvent e中的参数 e,监视器就会知道所发生的大事,对此大事进行处理;其中的详细源代码请参见附录部分,部分代码如下:this.setLayoutnull ;this.setLayoutnew GridLayout6,1;p.addnew Label 请选择你要的服务 ;this.addp ;取款模块设计:在取款模块中,和其他的界面也是同样的结构;也是有一个文本框和一个按钮仍有标签组成的;用户在文本框
7、中输入他想取的数额,但是必需是100 的倍数,而且每一次最多只能取5000 块;当然了取款的时候也不能超过卡里的余额,再就是卡里的余额不能为负,否就就会弹出报错的窗口;其方法的详细实现代码请参见欢迎下载精品学习资源附录部分,部分代码如下:ifmoney%100.=0|money=5000/取钱数为 100 的倍数或不大于 5000dispose;ErrorWarn6 ew6 = new ErrorWarn6消息! ,act ;act.set_Balancemoney; /重置余额this.setVisiblefalse ;修改密码模块设计:在修改密码模块中,第一你必需要输入你的旧密码是否正确,
8、否就就会报错;再一个就是要两次输入你的新密码,且两次药匹配,否就也会报错, 然后再重新回到修改密码的界面;在修改密码时用到的方法的详细实现代码请参见附录部分,部分代码如下:tf4 = new TextField6 ;tf5 = new TextField6 ;tf6 = new TextField6 ;退卡模块设计:在退卡模块设计中,这个方法就更加的简洁了,它只是用了ife.getSource=button4/ 退出System.exit0 ;dispose;这个方法就可以实现了,这里就不再多说了;4 系统运行成效及存在问题4.1 系统运行成效进入系统按钮进入输入卡号页面,运行成效图,如图3
9、所示:欢迎下载精品学习资源图 3 输入卡号界面输入卡号后,点击确定时系统会判定是否存在此卡号,假如不存在此卡号,系统就会自动提示用户此卡号不存在,请重新输入,假如输入的是正确的卡后,就进入输入密码界面,其运行成效图,如图4 所示:图 4 输入密码界面输入不正确,就会提示你密码不正确,请重新输入,当输入正确密码后,点击确定进入系统主界面,运行成效图,如图5 所示:欢迎下载精品学习资源图 5 系统主界面界面在主界面中包含了6 个主要功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面;当点击取款按钮时弹出取款界面,运行成效图,如图6 所示:图 6 取款界面当点击余额查询界面时系统会自动帮忙你
10、检索你的当前账户仍有多少钱,并且在查询完后会自动弹出友好界面,来显示你的当前余额,余额查询界面,运行成效图,如图 7 所示:欢迎下载精品学习资源图 7 帐户余额查看界面在取款界面中,选择要取的金额,取出金额,并且会弹出取款成功界面,运行成效图,如图 8 所示:图 8 取款成功界面在选择服务界面,点击转账功能按钮之后,就会弹出转账界面,运行成效图,如图 9 所示:欢迎下载精品学习资源图 9 转帐操作界面在选择服务界面,点击修改密码功能按钮,就会弹出修改密码界面,运行成效图, 如图 10 所示:图 10 修改密码界面经过测试,全部的功能基本上都实现了,而且运行正常;4.2 系统存在问题在此次课程设
11、计中,我遇到了一些问题,如:对于面对对象的方法明白不够透彻,运用到实际的软件开发中存在着困难;对于Java 语言,只学习到了一些最基本的学问,这导致编写程序经经常显现一些语法错误,而且要在短时间内用Java 语言来设计一个详细的系统是一个较大的挑战;仍有对于正规开发一个系统的流程不熟识,适应起来比较慢,编写各个模块相对应的操作时,自己感觉难以动手,这说明所学的学问不能灵敏运用到实际中;欢迎下载精品学习资源对于以上的问题,自己有清楚的熟识,解决方法是需要大量阅读相关的书籍,对于书 上以及网站上下载的资料中的Java 实例必需有清楚的懂得,仍有就是多跟熟知此方面的老师和同学沟通,取其精华;对于实际
12、动手才能与系统开发的流程的适应,必需多 进行实际的练习与操作,才能有大的进步;5 设计体会在这次的课程设计中,主要是运用JAVA 语言来编写一个小的应用程序,当然仍可以用其他的技术来帮忙了;在这个小应用程序当中,我用了Java 外仍用了 Swing 控件;输入输出流等技术;由于以前学的不是很扎实,而且仍有些学问我们都是没有学过的,这就要求我们去查相关的书籍,仍有就是和同学之间的沟通;正由于这样,才锤炼了我的自学的才能,仍有就是加深了我对各个学问点的熟识,并且提高了我对专业的学习的爱好,为我以后的学习打下了基础;此外,我仍感受到了面对对象语言的类库的强大的功能,把握了运用 JAVA 中的类实现某
13、些基本功能,并学会了自己查询使用类的方法,也就是要会用 API 文档,为以后更好的学习面对对象语言奠定了基础;6 参考文献1 张孝祥,JAVA 就业培训教材 M. 北京: 清华出版社 20062 印昊, JAVA 与面对对象程序设计 M. 北京:高等训练出版社 20043 李尊朝, JAVA 语言程序设计 M. 北京:中国铁道出版社 20044 孙健. 运算机周刊 -CNKIJ.上海市: 长江运算机 集团 公司主办 ,2000,10:102-165附录在附录中我们将附加一些程序设计过程中的代码:(1) 登陆页面首窗口设计代码:class WindowBox extends Frame impl
14、ements ActionListener Box baseBox,box1,box2 ;TextField tf1,tf2 ;Button button1 ;Button button2 ;WindowBoxString s/构造方法supers;欢迎下载精品学习资源tf1 = new TextField6 ;tf2 = new TextField6 ;box1= Box.createVerticalBox ;box1.addnew Label 请输入你的卡号 ; / 输入卡号box1.addBox.createVerticalStrut8 ;box1.addnew Label 请输入你的密
15、码 ;/ 输入密码box2=Box.createVerticalBox ;box2.addtf1 ;/box2.addnew TextField16 ;box2.addBox.createVerticalStrut8 ;box2.addtf2 ;/box2.addnew TextField16 ;baseBox=Box.createHorizontalBox ;baseBox.addbox1 ;baseBox.addBox.createHorizontalStrut10 ;baseBox.addbox2 ;addbaseBox;button1= new Button 确定 ;/加入按钮butt
16、on1.addActionListenerthis ;addbutton1 ;button2 = new Button 退卡 ;/退卡按钮button2.addActionListenerthis ;addbutton2 ;setLayoutnew FlowLayout ;(2) 监听器设计代码:this.addWindowListenernew WindowAdapterpublic void windowClosingWindowEvent e System.exit0 ; ;setBounds120,125,200,175 ;欢迎下载精品学习资源setVisibletrue ;publi
17、c void actionPerformedActionEvent e Account act ;String card;String pwd ;act=new Account000000,Devil,123456,50000;/初始化(3) 选择各种服务设计代码:ife.getSource = button1String number1,number2 ;/ 输入的两个卡号和密码的变量number1=tf1.getText ;number2=tf2.getText ;/* 判定两次输入的卡号和密码是否正确*/ ifact.get_Code.equalsnumber1&act.get_Pass
18、word.equalsnumber2dispose;Selection s = new Selection 选择服务,act;elsedispose;ErrorWarnew=newErrorWarn 消息! ,act;/报输入密码或卡号不正确ife.getSource=button2 System.exit0 ;dispose;/退出(4) 主函数设计代码:class ATMpublic static void mainString args欢迎下载精品学习资源new WindowBox 登录页面 ;(5) 选择服务设计代码: import java.awt.* ;import java.aw
19、t.event.* ;class Selection extends Frame implements ActionListenerButton 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 SelectionString s,Account actsu
20、pers;this.act=act;this.setLayoutnull ;this.setLayoutnew GridLayout6,1;p.addnew Label 请选择你要的服务 ;this.addp ;(6) 各种服务功能设计代码:button1 = new Button 存款 ;p1.addbutton1 ;this.addp1;button2 = new Button 取款 ;p2.addbutton2 ;this.addp2;button3 = new Button 查询余额 ;欢迎下载精品学习资源p3.addbutton3 ;this.addp3;button4 = new
21、Button 退出 ;p4.addbutton4 ;this.addp4;button5 = new Button 修改密码 ;p5.addbutton5 ;this.addp5;this.addWindowListenernew WindowAdapter public void windowClosingWindowEvent eSystem.exit0 ; ;button2.addActionListenerthis ;button3.addActionListenerthis ;button4.addActionListenerthis ;button5.addActionListen
22、erthis ;setBounds150,150,200,200 ;setVisibletrue ;validate ;public void actionPerformedActionEvent e ife.getSource=button2/取款dispose;GetBalance gb = new GetBalance 取款 ,act ;ife.getSource=button3/查询余额Query q =new Query 查询余额 ,act;dispose;else ife.getSource=button4/ 退出欢迎下载精品学习资源System.exit0 ;dispose;el
23、se ife.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 implements ActionListener Box baseBox, box1,box2 ;Button button ;TextFiel
24、d tf ;Account act ;GetBalanceString s,Account act/ 构造函数supers;this.act=act;button=new Button 确定 ;Panel panel = new Panel;Panel panel1 = new Panel;tf = new TextField6 ;this.setLayoutnew GridLayout2,1;panel1.addnew Label 请输入你想取钱的数目 ;panel1.addtf ;panel.addbutton ;this.addpanel1;欢迎下载精品学习资源this.addpanel
25、; button.addActionListenerthis ;this.addWindowListenernew WindowAdapterpublic void windowClosingWindowEvent eSystem.exit0 ; ;setBounds200,200,150,150 ;this.setVisibletrue ;public void actionPerformedActionEvent e/System.out.printlne.getActionCommand;double money ;money = Double.parseDoubletf.getText
26、.trim;ife.getSource=buttonifact.get_Money0/判定余额是否为负dispose;ErrorWarn4 ew4 = new ErrorWarn4消息! ,act ;else ifmoney=5000/取钱数为 100 的倍数或不大于5000dispose;ErrorWarn6 ew6 = new ErrorWarn6消息! ,act ;act.set_Balancemoney; /重置余额this.setVisiblefalse ;Selection s = new Selection 选择服务 ,act;/ 返回选择服务窗口/dispose;else if
27、moneyact.get_Money判定取款数额是否大于余额dispose;欢迎下载精品学习资源ErrorWarn5 ew5 = new ErrorWarn5消息! ,act ;public static void mainString argsGetBalance test = new GetBalancedfdf ;GetBalance gb = new GetBalance 取款 ;(8) 修改密码设计代码: import javax.swing.* ;import java.awt.* ;import javax.swing.border.* ;import java.awt.even
28、t.* ;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 ; ChangePasswordString s,Account actsupers;this.act=act;tf4 = new TextField6 ;tf5 = n
29、ew TextField6 ;tf6 = new TextField6 ;button = new Button 确定 ;button.addActionListenerthis ;欢迎下载精品学习资源(9) 建立新密码设计代码:panel1.addnew Label 请输入你的旧密码: ;panel1.addtf4 ;panel2.addnew Label 请输入你的新密码: ;panel2.addtf5 ;panel3.addnew Label 请再次输入你的新密码 ;panel3.addtf6 ;panel.addbutton ;this.addpanel1;this.addpanel2
30、;this.addpanel3;this.addpanel;setLayoutnew GridLayout4,1;setBounds200,200,250,250 ;this.setVisibletrue ;(10) 窗口大事设计代码:this.addWindowListenernew WindowAdapterpublic void windowClosingWindowEvent eSystem.exit0 ; ;12查询余额功能设计代码: import javax.swing.* ;import java.awt.* ;import javax.swing.border.* ;impor
31、t java.awt.event.* ;class Query extends Frame implements ActionListener Button button ;Account act ;QueryString s,Account act/ 构造函数欢迎下载精品学习资源supers;this.act = act;button=new Button 确定 ;/TextField tf = new TextField6;Panel panel1 = new Panel;Panel panel = new Panel;panel1.addnew Label 你的余额为: + act.get_Money ;/ 查询余额的方法/panel1.addtf ;button.addActionListenerthis ;panel.addbutton ;this.addpanel; this.addpanel1;欢迎下载