版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计说明书N0.12ATM取款机系统(JAVA)1课程设计的目的此次课程设计让我对JAVA有了更深刻的认识,这次课程设计的主要目的是结合面 向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流 程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解,对以后在面向对 象的编程中奠定基础。2系统总体设计2.1数据库设计在ATM取款机系统中,数据库的设计也很重要,数据库的好坏会影响到整个系统的 运行效率,在此次设计中,atm数据库包括有以下1个表,客户信息表(guest )。表1客户信息表(guest)列名数据类型及长度是否为空主键说明id数字NO主键记录号gid
2、文本NO银行卡号pwd文本NO密码gmoney货币NO钱数目2.2系统功能模块划分本系统主要包括登陆模块设计,选择服务模块设计,取款模块设计,修改密码模块 设计,退卡模块设计等几个功能模块。其中,(1)登陆模块设计:与ATM®员机打交道比较多的,也是大家对安全比较关心的问题: 密码。所以第一个界面就是要输入密码和卡号才能继续服务。(2)选择服务模块设计:在选择服务模块中,有各种 ATM的服务功能,只要用户在 该界面中选择按钮,它就会弹出各个相应的界面。(3) 取款模块设计:在取款模块中,和其他的界面也是同样的结构。也是有一个文 本框和一个按钮还有标签组成的,实现用户取款的服务。(4)
3、 修改密码模块设计:在修改密码模块中,首先你必须要输入你的旧密码是否正 确,否则就会报错。再一个就是要两次输入你的新密码, 且两次要匹配,否则也会报错, 然后再重新回到修改密码的界面。(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、卡号错误的警告框,并用disposeQ关掉窗口。此模块相应的详细源代码见附录部分,部分代码如下:box仁 Box.createVerticalBox;box1.add(new Label("请输入你的卡号");/输入卡号box1.add(Box.createVerticalStrut(8);box1.add(new Label("请输入你的密码");/输入密码选择服务模块设计:在选择服务模块中,有各种 ATM的服务功能,只要用户在该 界面中选择按钮,它就会弹出各个相应的界面。每一个按钮都有监听器,在选择了按钮 后,java.awt.event中的Acti
6、onEvent类创建一个事件对象,并将它传递给方法 public void actionPerformed(ActionEvent e)中的参数e,监视器就会知道所发生的事件,对此事件进行处理。其中的详细源代码请参见附录部分,部分代码如下:this.setLayout (n ull);this.setLayout(new GridLayout(6,1);p.add(new Label("请选择你要的服务");this.add(p);取款模块设计:在取款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标签组成的。用户在文本框中输入他想取的数额,但是必须是10
7、0的倍数,而且每一次最多只能取5000块。当然了取款的时候也不能超过卡里的余额,再就是卡里的余额不能为负,否则就会弹出报错的窗口。其方法的具体实现代码请参见附录 部分,部分代码如下:if(money%100!=0)|(money>=5000) 取钱数为 100 的倍数或不大于 5000dispose();ErrorWarn6 ew6 = new ErrorWarn6("消息! ”,act);act.set_Bala nce(mon ey); 重置余额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系统运行效果进入系统按钮进入输入卡号页面,运行效果图,如
9、图3所示:图3输入卡号界面输入卡号后,点击确定时系统会判断是否存在此卡号,如果不存在此卡号,系统则 会自动提醒用户此卡号不存在,请重新输入,如果输入的是正确的卡后,则进入输入密 码界面,其运行效果图,如图4所示:图4输入密码界面输入不正确,则会提醒你密码不正确,请重新输入,当输入正确密码后,点击确定进入系统主界面,运行效果图,如图 5所示:图5系统主界面界面在主界面中包含了 6个主要功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。当点击取款按钮时弹出取款界面,运行效果图,如图6所示:图6取款界面当点击余额查询界面时系统会自动帮助你检索你的当前账户还有多少钱,并且在查 询完后会自动弹
10、出友好界面,来显示你的当前余额,余额查询界面,运行效果图,如图 7所示:图7帐户余额查看界面在取款界面中,选择要取的金额,取出金额,并且会弹出取款成功界面,运行效果 图,如图8所示:兰银行管理系统操作信探示:zhoulei-取款:100. 0:2377. 3496遞回 退出图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.北京:中国铁道出版社2004孙健.计算机周刊-CNKIJ.上海市:长江计算机(集团)公司主办,2000,10:102-165沈阳大学课程设计说明书No.li附录在附录中我们将附加一些程序设计过程中的代码:(1) 登陆页面首窗口设计代码:class Win dowBox exte nds Frame impleme nts Actio nListe nerBox
14、baseBox,box1,box2;TextField tf1,tf2;Button butto n1;Button butto n2;Win dowBox(Stri ng s)/ 构造方法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("请输入你的密码");
15、/输入密码box2=Box.createVerticalBox();box2.add(tf1);box2.add( new TextField(16);box2.add(Box.createVerticalStrut(8);box2.add(tf2);box2.add( new TextField(16);baseBox=Box.createHoriz on talBox();baseBox.add(box1);baseBox.add(Box.createHoriz on talStrut(10);baseBox.add(box2);add(baseBox);button1= new Butt
16、on("确定");/ 加入按钮butt on l.addActi on Liste ner(this);add(butto n1);button2 = new Button(” 退卡");/退卡按钮butt on 2.addActi on Liste ner(this);add(butto n2);setLayout (new FlowLayout();(2) 监听器设计代码:this.addWi ndowListe ner(new Win dowAdapter()public void wi ndowClos in g(Wi ndowEve nt e)Syste
17、m.exit(O););setBou nds(120,125,200,175);setVisible(true);public void action Performed(Acti onEvent e)Acco unt act;String card;String pwd;act= new Accou nt("000000","Devil","123456",50000); 初始化(3) 选择各种服务设计代码:if(e.getSource() = butt on 1)String number1,number2;输入的两个卡号和密码的
18、变量nu mber1=tf1.getText();nu mber2=tf2.getText();/*判断两次输入的卡号和密码是否正确*/沈阳大学课程设计说明书N0.23if(act.get_Code().equals (nu mberl) )&&( act.get_Password().equals (nu mber2)dispose。;Selection s = new Selection("选择服务 ”,act);elsedispose();ErrorWarn ew = new ErrorWarn(” 消息! ”,act);/ 报输入密码或卡号不正确if(e.ge
19、tSource()=butto n2)System.exit(O);dispose();/ 退出(4) 主函数设计代码:class ATMpublic static void main( Stri ng args)new WindowBox("登录页面");(5) 选择服务设计代码:import java.awt.*;import java.awt.eve nt.*;class Select ion exte nds Frame impleme nts Acti on Liste nerButton butt on 1,butto n2,butto n3,butto n4
20、,butt on 5;Panel p1 = new Pan el();Panel p2 = new Pan el();Panel p3 = new Pan el();Panel p4 = new Pan el();Panel p5 = new Pan el();Panel p = new Pan el();Acco unt act;public Selectio n()Select ion( Stri ng s,Acco unt act)super(s);this.act=act;this.setLayout (n ull);this.setLayout(new GridLayout(6,1)
21、; p.add(new Label("请选择你要的服务"); this.add(p);(6) 各种服务功能设计代码:button1 = new Button("存款");p1.add(butto n1);this.add(p1);button2 = new Button("取款");p2.add(butto n2);this.add(p2);button3 = new Button("查询余额");p3.add(butto n3);this.add(p3);button4 = new Button(” 退出&quo
22、t;);p4.add(butto n4);this.add(p4);button5 = new Button("修改密码");p5.add(butt on 5);this.add(p5);this.addWi ndowListe ner(new Win dowAdapter() public void wi ndowClos in g(Wi ndowEve nt e) System.exit(O););butt on 2.addActi on Liste ner(this);butt on 3.addActi on Liste ner(this);butt on4 .add
23、Acti on Liste ner(this);butt on 5.addActi on Liste ner(this);setBou nds(150,150,200,200);setVisible(true);validate();public void action Performed(Acti onEvent e) if(e.getSource()=button2) 取款 dispose();GetBalanee gb = new GetBalanee(” 取款",act);if(e.getSource()=button3) 查询余额Query q =new Query(” 查
24、询余额 ”,act); dispose();else if(e.getSource()=button4) 退出System.exit(O);dispose();else if(e.getSource()=button5) 修改密码ChangePassword cp = new ChangePassword(”修改密码 ”,act); dispose();(7) 取款功能设计代码:import javax.swi ng.*;import java.awt.*;import javax.swi ng.border.*;import java.awt.eve nt.*;class GetBala n
25、ee exte nds Frame impleme nts Action Liste nerBox baseBox, box1,box2;Butt on butt on;TextField tf;Acco unt act;GetBalance(String s,Account act)/ 构造函数super(s);this.act=act;button=new Button("确定");Panel panel = new Pan el();Panel pan ell = new Pan el();tf = new TextField(6);this.setLayout (n
26、ew GridLayout(2,1);panel1.add(new Label("请输入你想取钱的数目 ");pan ell.add(tf);pan el.add(butt on);this.add(pa nell);this.add(pa nel);butt on .addAct ion Liste ner(this);this.addWi ndowListe ner(new Win dowAdapter()public void wi ndowClos in g(Wi ndowEve nt e)System.exit(O););setBou nds(200,200,15
27、0,150);this.setVisible(true);public void action Performed(Acti onEvent e)/System.out.pri ntln( e.getAct ion Comma nd();double mon ey;money = Double.parseDouble(tf.getText().trim();if(e.getSource()=butto n)if(act.get_Money()<0)判断余额是否为负dispose();ErrorWarn4 ew4 = new ErrorWarn4("消息! ”,act);else
28、 if(money<=act.get_Money() 取钱的数额不大于余额5000if(money%100!=0)|(money>=5000) 取钱数为 100 的倍数或不大于dispose();ErrorWarn6 ew6 = new ErrorWarn6("消息! ”,act);act.set_Bala nce(mon ey);/ 重置余额this.setVisible(false);Selection s = new Selection(” 选择服务 ”,act);/ 返回选择服务窗口 /dispose。;else if(money>act.get_Money
29、()判断取款数额是否大于余额 dispose();ErrorWarn5 ew5 = new ErrorWarn5("消息! ”,act);public static void main(String args)GetBala nee test = new GetBala nce("dfdf");GetBalance gb = new GetBalance("取款");(8) 修改密码设计代码:import javax.swi ng.*;import java.awt.*;import javax.swi ng.border.*;import j
30、ava.awt.eve nt.*;class Chan gePassword exte nds Frame impleme nts Actio nListe nerPanel pan ell = new Pan el();Panel pan el2 = new Pan el();Panel pan el3 = new Pan el();Panel panel = new Pan el();TextField tf4,tf5,tf6;Butt on butt on;Acco unt act;Chan gePassword(Stri ng s,Acco unt act)super(s);this.act=act;tf4 = new TextField(6);tf5 = new TextField(6);tf6 = new TextField(6);button = new Button("确定");butt on .addAct ion Liste ner(this);(9) 建立新密码设计代码:panel
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电商两人合作开店协议:权益分配细则
- 2024年个人借款诉讼模板协议
- 2024年住宅装修工程协议模板
- 2024年度节能灯具买卖协议范本
- 2024年家庭助理劳务协议格式
- 2024年度企业股权赠送协议样本
- 2024年借款协议格式
- 2024年度幼儿园司机岗位劳动协议
- 2024酒店行业协议模板单位专用
- 短期租车协议模板(2024年)
- 鲁滨逊漂流记读书分享课件
- 北京开放大学互联网营销方案策划写作在线测验5-1:本周测一测
- 高中生知识抢答竞赛题
- 幼儿园大班语言绘本《月亮的味道》课件
- 人教版《道德与法治》七年级上册 成长的节拍 复习教案
- 《中华商业文化》第六章
- 医院玻璃采光顶玻璃雨棚施工方案
- 运筹学-随机规划课件
- 《电阻》说课课件
- 同济外科学课件之颈腰椎退行性疾病
- 杜邦杜邦工程塑料课件
评论
0/150
提交评论