JAVA课程设计-ATM机模拟系统.doc
《JAVA课程设计-ATM机模拟系统.doc》由会员分享,可在线阅读,更多相关《JAVA课程设计-ATM机模拟系统.doc(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-作者xxxx-日期xxxxJAVA课程设计-ATM机模拟系统【精品文档】Java语言程序设计课程设计报告题 目: ATM柜员机 专 业: 信息与计算科学 学 号: 23 姓 名: 单 焱 指导教师: 李 又 良 成 绩: 2010 年 12 月 10 日【精品文档】目 录1课程设计研究背景及意义12 课程设计题目描述和基本功能设计要求23 系统需求分析23.1 功能需求分析23.2 其他需求分析34 系统设计34.1 总体设计34.2 ATM柜员机界面设计44.3 各功能模块设计54.3.1 登陆页面模块设计54.3.2 选择服务模块设计64.3.3 取款模块设计74.3.4 修改密码模块设
2、计84.3.5查询余额模块设计94.3.6 退卡模块设计94.4 异常处理情况说明105 系统实现与测试106 课程设计总结136.1 遇到的问题及解决办法136.2 心得体会14参考文献14附录(源码)141课程设计研究背景及意义这次课程设计是通过JAVA编程来实现ATM柜员机的功能。以前,人们用手算取钱,不管从方便的角度还是速度的角度来看都不及现在。电子技术的不断发展使得ATM自动化的功能不断完善。在二十一世纪的今天,ATM柜员机是人们生活中重要的工具,所以,对ATM柜员机的研究的课程设计具有重大意义。这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象开发的思维,初步了解软
3、件开发的一般流程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解。这次课程设计的主要内容是独立用JAVA语言开发一个小的应用程序。2 课程设计题目描述和基本功能设计要求本次设计的ATM柜员机主要是由各个Windows窗口组成,它是由登录页面、选择服务、取款、查询余额、修改密码和退卡等功能。它的各种按钮的事件和功能可以简单的模拟ATM柜员机的要求。组员分工:组长(单焱):负责分配其他组员的任务,构建需求分析,系统实现及异常处理情况,调试程序等,把握ATM柜员机的整体布局。组员1(刘星):负责登陆界面模块,选择服务模块及退卡模块,编写相应代码。组员2(王玲玲):负责取款、修改密码、查询
4、余额模块,编写相应代码。3 系统需求分析 功能需求分析本ATM柜员机的主要功能如下所述:要求使用图形用户界面。当输入给定的卡号和密码(初始卡号为000000和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:l 查询余额:初始余额为50000元l ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。l ATM存款:不能出现负存款。l 修改密码:只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 其他需求分析(1)性能描述实时性好、灵活性强、易于不同年龄阶段的人操作。(2)设计约束开发工具:Eclipse3.2.运
5、行环境:Windows 2000以上。(3)界面要求以Windows窗口形式显示,标题栏为ATM柜员机名称,右上角有最小化按钮、最大化按钮、关闭按钮,不同的窗口中有不同的按钮和选择菜单。4 系统设计 总体设计本次设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。如图:图1 ATM功能结构示意图4.2 ATM柜员机界面设计一个系统的界面应该要简单明了,当然样式美观就更好了。本次设计的界面主要是由窗体组成,操作简单。而每一个窗口则执行相应的功能。一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、
6、方便易操作。界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执行相应的操作。(1)窗体的设计窗体整个框架使用Frame类构造,Frame有自己的外边框和自己的标题,创建Frame时可以指定其窗口标题,我创建的窗口标题是各个不同功能的模块的名字,比如说查询余额,还有取款等。相应源代码为:WindowBox(String s)super(s); 、Selection(String s,Account act)super(s);向Frame窗口中添加组件使用add()。例如:button1 = new Button(存款);p1.add(button1);this.add(p1);每个Fram
7、e在其右上角都有三个控制图标,分别代表将窗口最小化、窗口最大化和关闭的操作,其中最小化和最大化操作Frame可自动完成,而关闭窗口操作实现需要书写有关的代码,在我的程序中我采用的是对WINDOWS_CLOSING事件做出响应,调用dispose()方法关闭窗口。Frame也可以引发WindowsEvent类代表的窗口事件。相应源代码为:addWindowListener(new WindowAdapter() /窗口侦听器,以从此窗口接收窗口事件public void windowClosing(WindowEvent e) /处理窗口关闭事件 System.exit(0););(2)窗体的主
8、要结构的设计(网格布局)我所设计的窗口的主要结构的特点就是每个窗口都对应着一个特定的功能。比如说报各种各样的错,还有各种查询余额、取款、选择服务等,所以它们都是由各种按钮和文本框,标签组成的,而联系各个窗体成为一个整体的就是各个按钮的监听事件。所以整个设计就趋向简单化了。为了定义各个按钮所对应的命令和操作,首先需要将各个按钮注册给实现了动作事件的监听接口ActionListener的监听者,然后为监听者定义actionPerformed(ActionEvent e)方法,在这个方法中调用e.getSource()或e.getActionCommand()来判断用户点击的菜单子项,并完成这个菜单
9、子项定义的操作。4.3 各功能模块设计4.3.1 登陆页面模块设计与ATM柜员机打交道比较多的,也是大家对安全比较关心的问题:密码。所以第一个界面就是要输入密码和卡号才能继续服务。我定义了文本框累的对象tf1,tf2。抓药是用于输入单行的文本;文本区调用public String getText()方法,获取用户想要的字符串。用来判断输入的密码和卡号是否正确,如果不正确的话,则弹出密码或卡号错误的警告框,并用dispose()关掉窗口。此模块相应的部分源代码为:public void actionPerformed(ActionEvent e)Account act; String card;
10、 String pwd;act=new Account(000000,Devil,123456,50000);/初始化 /*选择各种服务*/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
11、election(选择服务,act);elsedispose();JOptionPane.showMessageDialog(null, 您输入的卡号或密码不正确,请核实后再确定,消息!, JOptionPane.INFORMATION_MESSAGE);new WindowBox(登录界面); /*退卡*/if(e.getSource()=button2)dispose();JOptionPane.showMessageDialog(null, 谢谢使用!, 消息!,JOptionPane.INFORMATION_MESSAGE);System.exit(0); 4.3.2 选择服务模块设计
12、在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。每一个按钮都有监听器,在选择了按钮后,java.awt.event中的ActionEvent类创建一个事件对象,并将它传递给方法public void actionPerformed(ActionEvent e)中的参数e,监视器就会知道所发生的事件,对此事件进行处理。其中的部分源代码为:p.add(new Label(请选择你要的服务);this.add(p);button1 = new Button(存款);p1.add(button1);this.add(p1);button2 = new B
13、utton(取款);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
14、););button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);setBounds(300,300,300,300);setVisible(true);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=button2)/取款dispose();GetBalance gb = new GetBalance(取款
15、,act);if(e.getSource()=button3)/查询余额Query q =new Query(查询余额,act);dispose();else if(e.getSource()=button4)/退出dispose();JOptionPane.showMessageDialog(null, 谢谢使用!, 消息!,JOptionPane.INFORMATION_MESSAGE);System.exit(0);else if(e.getSource()=button5)/修改密码ChangePassword cp = new ChangePassword(修改密码,act);dis
16、pose();4.3.3 取款模块设计在取款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标签组成的。用户在文本框中输入他想取的数额,但是必须是100的倍数,而且每一次最多只能取5000块。当然了取款的时候也不能超过卡里的余额,再就是卡里的余额不可以为负,否则就会弹出报错的窗口。其方法为:if (e.getSource() = button) if (act.get_Money() 0) / 判断余额是否为负dispose();JOptionPane.showMessageDialog(null, 余额为负数, 消息,JOptionPane.INFORMATION_MESS
17、AGE); else if (money = 5000) / 取钱数为100的倍数或不大于5000dispose();JOptionPane.showMessageDialog(null,每次只能取100的倍数,而且不能超过5000,请重新输入你想取的钱!, 消息,JOptionPane.INFORMATION_MESSAGE);act.get_Money();this.setVisible(false);Selection s = new Selection(选择服务, act);/ 返回选择服务窗口 else if (money act.get_Money() / 判断取款数额是否大于余额
18、dispose();JOptionPane.showMessageDialog(null, 超过已有的钱数,请重新输入你想取的钱!,消息, JOptionPane.INFORMATION_MESSAGE);this.setVisible(false);Selection s = new Selection(选择服务, act);4.3.4 修改密码模块设计在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。再一个就是要两次输入你的新密码,且两次药匹配,否则也会报错,然后再重新回到修改密码的界面。在修改密码时用到的方法为:/*判断旧密码是是否正确*/if(pwd2.equals(
19、act.get_Password()/*判断两次输入的密码是否匹配*/if(pwd3.equals(pwd4) /*如果都正确的话就设置新密码*/act.setPassword(pwd3);dispose();Selection s = new Selection(选择,act);else dispose();ErrorWarn2 ew2 = new ErrorWarn2(消息,act); else this.setVisible(false);ErrorWarn3 ew1 = new ErrorWarn3(消息,act); dispose();4.3.5查询余额模块设计在查询余额模块设计中,
20、 和其他的界面的结构相差不多。有一个余额显示和一个按钮还有标签组成的。查询时用到的方法:Query(String s, Account act) / 构造函数super(s);this.act = act;button = new Button(确定);/ TextField tf = new TextField(6);Panel panel1 = new Panel();Panel panel = new Panel();panel1.add(new Label(你的余额为: + act.get_Money();/ 查询余额的方法button.addActionListener(this);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 课程设计 ATM 模拟 系统
限制150内