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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

ATM取款机系统java课程设计.docx

1、ATM取款机系统java课程设计软件开发课程设计报告 设计题目:ATM取款机系统专 业 双学位 姓 名 学 号 指导教师 时 间:ATM取款机系统一、概述自动柜员机(ATM)自发明以来,以其高效和低成本一直受到银行业的青睐,从我国引进第一台柜员机至今已经拥有6万台左右的规模,但与世界平均水平相比,我国的人均拥有量还有差距,与先进国家相比人均拥有数量甚至不到四分之一。为了增强我国银行的竞争力,国家相继出台了很多相关措施,比如关于促进银行卡产业发展的若干意见等,各商业银行也对柜员机的发展制定了详细的规划,甚至出现了由银行单独购买模式发展为银行租赁商业公司ATM的模式。可以说,随着我国经济的屈起,我

2、国的柜员机也正面临着一个快速发展的春天。二、设计目的(1)复习、巩固软件开发的基础知识,进一步加深对软件开发的理解和掌握;(2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;(3)培养学生在项目开发中团队合作精神、创新意识及能力。三、系统总体设计3.1系统功能模块划分本系统主要包括登陆模块设计,选择服务模块设计,取款服务模块设计,修改密码模块设计,存款服务模块设计,查询余额模块设计,转账服务模块设计,通信缴费模块设计,咨询服务模块设计,退出操作模块设计等几个功能模块。其中(1)登

3、陆模块设计:与ATM柜员机打交道比较多的,也是大家对安全比较关心的问题:密码。所以第一个界面就是要输入密码和卡号才能继续服务。(2) 选择服务模块设计:在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。(3) 取款模块设计:在取款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标签组成的,实现用户取款的服务。(4) 修改密码模块设计:在修改密码模块中,必须要两次输入你的新密码,且两次要匹配,否则系统会报错,然后再重新回到修改密码的界面。(5) 存款模块设计:在存款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标

4、签组成的,实现用户取款的服务。(6) 查询余额模块设计:此功能非常简单,仅仅是实现弹出卡的功能。(7) 转账服务模块设计:在转账模块中,必须两次输入要转账的账户号,并且两次输入必须相同,否则系统会报错;然后输入转账金额,完成转账。(8) 通信缴费模块设计:在通信缴费模块中,首先,登陆人要选择指定的冲值金额,其次,要两次输入要缴费的手机号码,且两次输入要相同,否则系统会报错。(9) 咨询服务模块设计:该功能仅需要实现弹出卡的功能。(10) 退出操作模块设计:此功能非常简单,仅仅是实现弹出卡的功能。3.2 ATM取款机系统功能结构图我所设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其

5、中选择服务模块又由取款服务模块、修改密码模块、存款服务模块、查询余额模块、转账服务模块、通信缴费模块、咨询服务模块、退出操作模块组成。总体设计中最核心的问题是系统总体功能结构的确定和子系统与模块的划分,结构化。ATM取款机系统功能结构图,如下图1所示:登陆页面模块存款服务模块选择服务模块通信缴费模块查询余额模块转账服务模块修改密码模块咨询服务模块取款服务模块退出操作模块图1 ATM取款机系统功能结构图该ATM取款机系统各个部分负责的主要业务如下:(1) 登陆页面模块,对取款者进行身份验证。(2) 选择服务模块 ,包括取款服务,修改密码,存款服务,查询余额,转账服务,通信缴费,咨询服务,退出操作

6、等功能模块。(3) 取款服务模块,实现取款的具体操作。(4) 修改密码模块,可以方便的实现当前登陆人员对自己的密码进行修改。(5) 存款服务模块,实现存款的具体操作。(6) 查询余额模块,查看当前登陆人员的余额。(7) 转账服务模块,实现当前登陆人员向另一账户进行转账。(8) 通信缴费模块,实现当前登陆人员对手机进行缴费冲值。(9) 咨询服务模块,对当前登陆人员提供电话人工服务。(10) 退卡模块,完成取款,查询等功能后退出银行卡。3.3各模块详细设计及用户使用说明 初始密码:1234563.3.1登陆模块程序运行后,进入登陆页面一,要求登陆着插卡,并点击确认,进入登陆页面二,要求登陆者输入密

7、码,点击确定,若密码正确,进入选择服务模块,否则系统提示“帐号不一致或帐号与金额输入有误,请确认”,此模块相应的详细源代码见附录部分,部分代码如下: panelmain=new JPanel(null); panelmain.setBackground(new Color(119,119,253); lblpwd=new JLabel(请输入您的银行卡密码:); panelmain.add(lblpwd); lblpwd.setBounds(150, 20, 150, 30);3.3.2选择服务模块在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。

8、每一个按钮都有监听器,监视器就会知道所发生的事件,对此事件进行处理。其中的详细源代码请参见附录部分,部分代码如下: panel3=new JPanel(null); panel3.setBackground(new Color(119,119,253); lblwel=new JLabel(username+,欢迎使用罗灿银行ATM系统); lblwel.setBounds(20,15,350,30); panel3.add(lblwel); lblwel1=new JLabel(请选择您需要的交易类型); lblwel1.setBounds(220,55,350,30); panel3.ad

9、d(lblwel1); btn3=new JButton(取款服务); btn3.addActionListener(this); btn3.setBounds(20,90,100,30); panel3.add(btn3); btn4=new JButton(修改密码); btn4.addActionListener(this); btn4.setBounds(20,150,100,30); panel3.add(btn4); btn5=new JButton(存款服务); btn5.addActionListener(this); btn5.setBounds(20,210,100,30)

10、; panel3.add(btn5); btn6=new JButton(查询余额); btn6.addActionListener(this); btn6.setBounds(20,270,100,30); panel3.add(btn6); btn7=new JButton(转账服务); btn7.addActionListener(this); btn7.setBounds(300,90,100,30); panel3.add(btn7); btn8=new JButton(通信交费); btn8.addActionListener(this); btn8.setBounds(300,1

11、50,100,30); panel3.add(btn8); btn9=new JButton(咨询服务); btn9.addActionListener(this); btn9.setBounds(300,210,100,30); panel3.add(btn9); btn10=new JButton(退出操作); btn10.addActionListener(this); btn10.setBounds(300,270,100,30); panel3.add(btn10); 3.3.3取款服务模块在取款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标签组成的。用户在文本

12、框中输入他想取的数额,但是必须是100的倍数。当然了取款的时候也不能超过卡里的余额,再就是卡里的余额不能为负,否则就会弹出报错的窗口。其方法的具体实现代码请参见附录部分,部分代码如下: panel4=new JPanel(null); panel4.setBackground(new Color(119,119,253); lblqukuan=new JLabel(请输入您的取款数:); panel4.add(lblqukuan); lblqukuan.setBounds(115, 20, 150, 30); lblqukuan=new JLabel(提示:只能是100元或100元的整数倍。)

13、; panel4.add(lblqukuan); lblqukuan.setBounds(115, 50, 300, 30);3.3.4修改密码模块在修改密码模块中,你必须要两次输入你的新密码,且两次药匹配,否则会报错,然后再重新回到修改密码的界面。在修改密码时用到的方法的具体实现代码请参见附录部分,部分代码如下: panelchangepwd=new JPanel(null); panelchangepwd.setBackground(new Color(119,119,253); lblpwd1=new JLabel(请输入您需要修改的6位密码:); lblpwd1.setBounds(1

14、15, 30, 300, 30); panelchangepwd.add(lblpwd1); lblpwd2=new JLabel(请再次输入您需要修改的6位密码:); lblpwd2.setBounds(115, 110, 300, 30); panelchangepwd.add(lblpwd2);3.3.5存款服务模块在存款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标签组成的。用户在存款口放入存款,但是必须是100的倍数。其方法的具体实现代码请参见附录部分,部分代码如下: panelsave=new JPanel(null); panelsave.setBackgr

15、ound(new Color(119,119,253); lblsave=new JLabel(请在存款口处放入存款); lblsave.setBounds(90,70,350,30); panelsave.add(lblsave); lblsave1=new JLabel(请注意:只接收100元或100元的整数倍存款); lblsave1.setBounds(90,110,350,30); panelsave.add(lblsave1);3.3.6查询余额模块用户点击查询余额按钮,则会弹出用户账户中的余额,并显示用户的卡号。其方法的具体实现代码请参见附录部分,部分代码如下: panelrem

16、ain=new JPanel(null); panelremain.setBackground(new Color(119,119,253); lblremain1=new JLabel(卡号:+cardnum); lblremain1.setBounds(90,70,350,30); panelremain.add(lblremain1); lblremain=new JLabel(您的余额为+lastmoney+元,请继续您的操作!”); lblremain.setBounds(90,110,350,30); panelremain.add(lblremain);3.3.7转账服务模块在该

17、模块中,为防止用户将对方的账号输入错误,要求用户输入两遍对方的账号,并输入转账金额,若输入错误,则系统会提示用户“帐号不一致或帐号与金额输入有误,请确认”。其方法的具体实现代码请参见附录部分,部分代码如下: paneltrans=new JPanel(null); paneltrans.setBackground(new Color(119,119,253); lbltra=new JLabel(请输入对方的19位帐号:); lbltra.setBounds(20, 30, 160, 30); paneltrans.add(lbltra); lbltra1=new JLabel(请再次输入对方

18、的19位帐号:); lbltra1.setBounds(20, 80, 190, 30); paneltrans.add(lbltra1); lbltra2=new JLabel(请输入您的转账金额:); lbltra2.setBounds(20, 130, 160, 30); paneltrans.add(lbltra2);3.3.8通信缴费模块在该模块中,用户可以为手机进行冲值,要求用户选则指定的冲值金额,并且输入手机号码,点击确定完成冲值。其方法的具体实现代码请参见附录部分,部分代码如下: panelmobile=new JPanel(null); panelmobile.setBack

19、ground(new Color(119,119,253); lblmo=new JLabel(请输入充值的11位手机号码:); panelmobile.add(lblmo); lblmo.setBounds(20, 140, 350, 30); lblmo1=new JLabel(提示:只接受30元、50元、100元、200元、500元的充值 );3.3.9咨询服务模块选择该服务模块后,系统会显示“系统升级中”,并提供银行的人工客服电话。其方法的具体实现代码请参见附录部分,部分代码如下: panelconsult=new JPanel(null); panelconsult.setBackg

20、round(new Color(119,119,253); lblcon=new JLabel(系统升级中.咨询请拨打24小时客服电话95566); lblcon.setBounds(80,70,390,30); panelconsult.add(lblcon); 3.3.10退出操作模块用户完成操作后,需要将银行卡退出。其方法的具体实现代码请参见附录部分,部分代码如下: if(e.getSource()=btngetcard) JOptionPane.showMessageDialog(null, 磁卡已退出,请保管好您的银行卡!, 退卡成功!, JOptionPane.INFORMATIO

21、N_MESSAGE);四、系统运行结果及存在问题4.1运行结果运行程序进入插卡页面,运行效果图,如图2所示:图2:插卡界面点击按钮插卡、继续后,进入输入密码界面,如图3所示:图3:输入密码界面输入不正确,则会提醒你密码不正确,请重新输入,当输入正确密码后,点击确定进入系统主界面,运行效果图,如图4所示:图4:系统主界面在主界面中包含了8个主要功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。当点击取款服务按钮时弹出取款界面,运行效果图,如图5所示:图5:取款服务界面在选择服务界面,点击修改密码功能按钮,则会弹出修改密码界面,运行效果图,如图6所示:图6:修改密码界面在选择服务界面,点

22、击存款服务功能按钮,则会弹出存款服务界面,运行效果图,如图7所示:图7:存款服务界面取款服务及存款服务完成后均可以打印凭条,运行效果图,如图8所示:图8:打印凭条界面当点击余额查询界面时系统会自动帮助你检索你的当前账户还有多少钱,并且在查询完后会自动弹出友好界面,来显示你的当前余额,余额查询界面,运行效果图,如图9所示:图9:余额查询界面在选择服务界面,点击转账服务功能按钮,则会弹出转账服务界面,运行效果图,如图10所示:图10:转账服务界面在选择服务界面,点击通信缴费功能按钮,则会弹出通信缴费界面,运行效果图,如图11所示:图11:通信缴费界面在选择服务界面,点击咨询服务功能按钮,则会弹出咨

23、询服务界面,运行效果图,如图12所示:图12:咨询服务界面在选择服务界面,点击退出操作功能按钮,则会弹出退出操作界面,运行效果图,如图13所示:图13:退出操作界面用户在完成退出操作后进行取卡操作,点击取卡功能按钮,则会弹出取卡成功界面,运行效果图,如图14所示:图14:取卡界面42存在问题在此次课程设计中,我遇到了一些问题,如:对于面向对象的方法了解不够透彻,运用到实际的软件开发中存在着困难;对于Java语言,只学习到了一些最基本的知识,这导致编写程序时经常出现一些语法错误,而且要在短时间内用Java语言来设计一个具体的系统是一个较大的挑战;还有对于正规开发一个系统的流程不熟悉,适应起来比较

24、慢,编写各个模块相对应的操作时,自己感觉难以动手,这表明所学的知识不能灵活运用到实际中。对于以上的问题,自己有清楚的认识,解决办法是需要大量阅读相关的书籍,对于书上以及网站上下载的资料中的Java实例必须有清楚的理解,还有就是多跟精通此方面的老师和同学交流,取其精华。对于实际动手能力与系统开发的流程的适应,必须多进行实际的练习与操作,才能有大的进步。五、设计体会通过这次课程设计,使我更加熟悉的掌握了软件开发知识的运用。帮助我们熟悉了更多软件开发语言的功能,提高了我们的动手能力。在这次的课程设计中,主要是运用JAVA语言来编写一个小的应用程序,当然还可以用其他的技术来辅助了。在这个小应用程序当中

25、,我用了Java外还用了Swing控件。输入输出流等技术。由于以前学的不是很扎实,而且还有些知识我们都是没有学过的,这就要求我们去查相关的书籍,还有就是和同学之间的交流。正因为这样,才锻炼了我的自学的能力,还有就是加深了我对各个知识点的认识,并且提高了我对专业的学习的兴趣,为我以后的学习打下了基础。通过这次课程设计,使我更加熟悉的掌握了软件开发知识的运用。帮助我们熟悉了更多软件开发语言的功能,提高了我们的动手能力。六、源程序import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyATM exte

26、nds JFrame implements ActionListener JPanel panelfirst,panelmain,panel3,panel4,panel5,panel6,panel7,panelchangepwd,panelchangepwded,panelsave,panelsaved,panelremain,paneltrans,paneltransed,panelmobile,panelmobiled, panelconsult; JButton btn0,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn10,btnsure

27、,btnback,btnok,btncard,btngetcard,btnincard; JButton btn00,btn01,btn02,btn03,btn04,btn05,btn06,btn07,btn08,btn09,btn010,btnback1,btnremain,btnremain1,btnremain2; JButton btn000,btn001,btn002,btn003,btn004,btn005,btn006,btn007,btn008,btn009,btn100,btn200,btn300,btn1000,btn500,btnsure1,btnback2,btn001

28、0,btnquok1,btnquok2,btnquok3,btnquok4; JButton btnpwd,btnpwd1,btnpwd2,btnpwd3,btnpwd4,btn11,btn12,btn13,btn14,btn15,btn16,btn17,btn18,btn19,btn20,btnsave,btnsave1,btnsave2,btnsaved,btnsaved1,btnsaved2,btnsaved3; JButton btntra,btntra1,btntra2,btntraed,btntraed1,btn21,btn22,btn23,btn24,btn25,btn26,bt

29、n27,btn28,btn29,btn30,btncon,btncon1; JButton btnmo,btnmo1,btnmo2,btnmo30,btnmo50,btnmo100,btnmo200,btnmo500,btnmo10,btnmo11,btnmo12,btnmo13,btnmo14,btnmo15,btnmo16,btnmo17,btnmo18,btnmo19,btnmoed,btnmoed1; JTextField txt2,txttrans,txttrans1,txttrans2,txtmo,txtmo1; JLabel lbljixu,lblpwd,lblwrong,lbl

30、qukuan,lblquok1,lblquok2,lblpwd1,lblpwd2,lblpwd3,lblpwd4,lblsave,lblsave1,lblsaved,lblremain,lblremain1,lbltra,lbltra1,lbltra2,lbltraed,lbltraed1; JLabel lblwel,lblwel1,lblmo,lblmo1,lblmo2,lblmo3,lblmoed,lblmoed1,lblcon,lblcon1; JPasswordField txt1,txtpwd,txtpwd1; Container container; CardLayout Lay

31、out; int money,savemoney,mobilemoney=0; double lastmoney,trainsmoney; String userpwd,cardnum,trains,username; boolean flag=true,flag1=false,flag2=false,flag3=true,flag4=false,flag5=false; /构造方法 public MyATM() super(中国银行); this.setSize(435,350); this.setLocation(500, 250); this.setDefaultCloseOperation(JFrame.EXIT_ON_

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

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