《高级语言程序设计》课程设计报告- JAVA程序课程设计_第1页
《高级语言程序设计》课程设计报告- JAVA程序课程设计_第2页
《高级语言程序设计》课程设计报告- JAVA程序课程设计_第3页
《高级语言程序设计》课程设计报告- JAVA程序课程设计_第4页
《高级语言程序设计》课程设计报告- JAVA程序课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《高级语言程序设计》课程设计报告课题名称:JAVA程序课程设计目录TOC\o"1-3"\u第1章课题概述 11.1课题的目的与要求 1第2章设计概要 12.1系统功能模块划分 12.2ATM取款机系统功能结构图 2第3章程序功能的实现 33.1首界面设计 33.2登录页面设计 33.3选择服务模块设计 33.4取款模块设计 43.5修改密码设计 43.6退卡模块设计 5系统运行效果及存在问题 54.1系统运行效果 54.2存在问题 9程序部分代码 95.1登录页面首窗口设计代码 95.2监听器设计代码 105.3选择各种服务设计代码 115.4主函数设计代码 115.5选择服务设计代码 125.6各种服务功能设计代码 125.7取款功能设计代码 145.8修改密码设计代码 165.9设定新密码设计代码 175.10窗口事件设计代码 175.11查询余额功能设计代码 18第6章总结 19参考文献 19

第1章课题概述1.1课题的目的与要求输入给定的卡号和密码(初始卡号为62250028和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行操作:1、查询余额:初始余额为10000元;2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支;3、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码;4、要求数据采用文件存储,如果界面实现采用了GUI,则酌情加分。第2章设计概要2.1系统功能模块划分 本系统主要包括登陆模块设计,选择服务模块设计,取款模块设计,修改密码模块设计,退卡模块设计等几个功能模块。其中, (1)登陆模块设计:与ATM柜员机打交道比较多的,也是大家对安全比较关心的问题:密码。所以第一个界面就是要输入密码和卡号才能继续服务。 (2)选择服务模块设计:在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。 (3)取款模块设计:在取款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标签组成的,实现用户取款的服务。 (4)修改密码模块设计:在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。再一个就是要两次输入你的新密码,且两次要匹配,否则也会报错,然后再重新回到修改密码的界面。 (5)退卡模块设计:此功能非常简单,仅仅是实现弹出卡的功能。2.2ATM取款机系统功能结构图总体设计中最核心的问题是系统总体功能结构的确定和子系统与模块的划分,结构化。ATM取款机系统功能结构图,如图1所示:登陆页面模块登陆页面模块取款模块选择服务模块退卡模块查询余额模块修改密码模块图1ATM取款机系统功能结构图该ATM取款机系统各个部分负责的主要业务如下:(1)登陆页面模块,对取款者进行身份验证。(2)选择服务模块,包括取款,余额查询,转帐,修改密码,退出等功能模块。(3)取款模块,实现取款的具体操作。(4)查询余额模块,查看当前登陆人员的余额。(5)修改密码模块,可以方便的实现当前登陆人员对自己的密码进行修改。(6)退卡模块,完成取款,查询等功能后退出银行卡。

第3章程序功能的实现3.1首界面设计配置好环境,编译程序,当程序运行后,首先看到的页面银行管理系统页面,它的运行效果图,如图2所示:图2银行管理系统首界面3.2登录页面设计定义了文本框类的对象tf1,tf2。主要是用于输入单行的文本;文本区调用publicStringgetText()方法,获取用户想要的字符串。用来判断输入的密码和卡号是否正确,如果不正确的话,则弹出密码或卡号错误的警告框,并用dispose()关掉窗口。此模块相应的详细源代码见附录部分,部分代码如下:box1=Box.createVerticalBox; box1.add(newLabel("请输入你的卡号"));//输入卡号 box1.add(Box.createVerticalStrut(8)); box1.add(newLabel("请输入你的密码"));//输入密码3.3选择服务模块设计在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。每一个按钮都有监听器,在选择了按钮后,java.awt.event中的ActionEvent类创建一个事件对象,并将它传递给方法publicvoidactionPerformed(ActionEvente)中的参数e,监视器就会知道所发生的事件,对此事件进行处理。其中的详细源代码请参见附录部分,部分代码如下: this.setLayout(null); this.setLayout(newGridLayout(6,1)); p.add(newLabel("请选择你要的服务")); this.add(p);3.4取款模块设计在取款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标签组成的。用户在文本框中输入他想取的数额,但是必须是100的倍数,而且每一次最多只能取5000块。当然了取款的时候也不能超过卡里的余额,再就是卡里的余额不能为负,否则就会弹出报错的窗口。其方法的具体实现代码请参见附录部分,部分代码如下:if((money%100!=0)||(money>=5000)){//取钱数为100的倍数或不大于5000 dispose(); ErrorWarn6ew6=newErrorWarn6("消息!",act); } act.set_Balance(money);//重置余额 this.setVisible(false);3.5修改密码模块设计在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。再一个就是要两次输入你的新密码,且两次药匹配,否则也会报错,然后再重新回到修改密码的界面。在修改密码时用到的方法的具体实现代码请参见附录部分,部分代码如下:tf4=newTextField(6); tf5=newTextField(6); tf6=newTextField(6);3.6退卡模块设计if(e.getSource()==button4){//退出 System.exit(0); dispose(); }系统运行效果及存在问题4.1系统运行效果进入系统按钮进入输入卡号页面,运行效果图,如图3所示:图3输入卡号界面输入卡号后,点击确定时系统会判断是否存在此卡号,如果不存在此卡号,系统则会自动提醒用户此卡号不存在,请重新输入,如果输入的是正确的卡后,则进入输入密码界面,其运行效果图,如图4所示:图4输入密码界面输入不正确,则会提醒你密码不正确,请重新输入,当输入正确密码后,点击确定进入系统主界面,运行效果图,如图5所示:图5系统主界面界面在主界面中包含了6个主要功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。当点击取款按钮时弹出取款界面,运行效果图,如图6所示:图6取款界面当点击余额查询界面时系统会自动帮助你检索你的当前账户还有多少钱,并且在查询完后会自动弹出友好界面,来显示你的当前余额,余额查询界面,运行效果图,如图7所示:图7帐户余额查看界面在取款界面中,选择要取的金额,取出金额,并且会弹出取款成功界面,运行效果图,如图8所示:图8取款成功界面在选择服务界面,点击转账功能按钮之后,则会弹出转账界面,运行效果图,如图9所示: 图9转帐操作界面在选择服务界面,点击修改密码功能按钮,则会弹出修改密码界面,运行效果图,如图10所示:图10修改密码界面经过测试,所有的功能基本上都实现了,而且运行正常。4.2存在问题在此次课程设计中,我遇到了一些问题,如:对于面向对象的方法了解不够透彻,运用到实际的软件开发中存在着困难;对于Java语言,只学习到了一些最基本的知识,这导致编写程序时经常出现一些语法错误。程序部分代码5.1登陆页面首窗口设计代码classWindowBoxextendsFrameimplementsActionListener{ BoxbaseBox,box1,box2; TextFieldtf1,tf2; Buttonbutton1; Buttonbutton2; WindowBox(Strings){//构造方法 super(s); tf1=newTextField(6); tf2=newTextField(6); box1=Box.createVerticalBox; box1.add(newLabel("请输入你的卡号"));//输入卡号 box1.add(Box.createVerticalStrut(8)); box1.add(newLabel("请输入你的密码"));//输入密码 box2=Box.createVerticalBox(); box2.add(tf1); //box2.add(newTextField(16)); box2.add(Box.createVerticalStrut(8)); box2.add(tf2); //box2.add(newTextField(16)); baseBox=Box.createHorizontalBox(); baseBox.add(box1); baseBox.add(Box.createHorizontalStrut(10)); baseBox.add(box2); add(baseBox); button1=newButton("确定");//加入按钮 button1.addActionListener(this); add(button1); button2=newButton("退卡");//退卡按钮 button2.addActionListener(this); add(button2); setLayout(newFlowLayout());5.2监听器设计代码this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } }); setBounds(120,125,200,175); setVisible(true); } publicvoidactionPerformed(ActionEvente){ Accountact; Stringcard; Stringpwd; act=newAccount("000000","Devil","123456",50000);//初始化5.3选择各种服务设计代码if(e.getSource()==button1){ Stringnumber1,number2;//输入的两个卡号和密码的变量 number1=tf1.getText(); number2=tf2.getText(); /*判断两次输入的卡号和密码是否正确*/ if((act.get_Code().equals(number1))&&(act.get_Password().equals(number2))){ dispose(); Selections=newSelection("选择服务",act); }else{ dispose(); ErrorWarnew=newErrorWarn("消息!",act);//报输入密码或卡号不正确 } } if(e.getSource()==button2){ System.exit(0); dispose();//退出 }}} 5.4主函数设计代码classATM{ publicstaticvoidmain(String[]args){ newWindowBox("登录页面"); }}5.5选择服务设计代码importjava.awt.*;importjava.awt.event.*;classSelectionextendsFrameimplementsActionListener{ Buttonbutton1,button2,button3,button4,button5; Panelp1=newPanel(); Panelp2=newPanel(); Panelp3=newPanel(); Panelp4=newPanel(); Panelp5=newPanel(); Panelp=newPanel(); Accountact; publicSelection(){} Selection(Strings,Accountact){ super(s); this.act=act; this.setLayout(null); this.setLayout(newGridLayout(6,1)); p.add(newLabel("请选择你要的服务")); this.add(p);5.6各种服务功能设计代码button1=newButton("存款"); p1.add(button1); this.add(p1); button2=newButton("取款"); p2.add(button2); this.add(p2); button3=newButton("查询余额"); p3.add(button3); this.add(p3); button4=newButton("退出"); p4.add(button4); this.add(p4); button5=newButton("修改密码"); p5.add(button5); this.add(p5); this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } }); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this); button5.addActionListener(this); setBounds(150,150,200,200); setVisible(true); validate(); } publicvoidactionPerformed(ActionEvente){ if(e.getSource()==button2){//取款 dispose(); GetBalancegb=newGetBalance("取款",act); } if(e.getSource()==button3){//查询余额 Queryq=newQuery("查询余额",act); dispose(); } elseif(e.getSource()==button4){//退出 System.exit(0); dispose(); } elseif(e.getSource()==button5){//修改密码 ChangePasswordcp=newChangePassword("修改密码",act); dispose(); } }}5.7取款功能设计代码importjavax.swing.*;importjava.awt.*;importjavax.swing.border.*;importjava.awt.event.*;classGetBalanceextendsFrameimplementsActionListener{ BoxbaseBox,box1,box2; Buttonbutton; TextFieldtf; Accountact; GetBalance(Strings,Accountact){//构造函数 super(s); this.act=act; button=newButton("确定"); Panelpanel=newPanel(); Panelpanel1=newPanel(); tf=newTextField(6); this.setLayout(newGridLayout(2,1)); panel1.add(newLabel("请输入你想取钱的数目")); panel1.add(tf); panel.add(button); this.add(panel1); this.add(panel); button.addActionListener(this); this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } }); setBounds(200,200,150,150); this.setVisible(true); } publicvoidactionPerformed(ActionEvente){ //System.out.println(e.getActionCommand()); doublemoney; money=Double.parseDouble(tf.getText().trim()); if(e.getSource()==button){ if(act.get_Money()<0){//判断余额是否为负 dispose(); ErrorWarn4ew4=newErrorWarn4("消息!",act); } elseif(money<=act.get_Money()){//取钱的数额不大于余额 if((money%100!=0)||(money>=5000)){//取钱数为100的倍数或不大于5000 dispose(); ErrorWarn6ew6=newErrorWarn6("消息!",act); } act.set_Balance(money);//重置余额 this.setVisible(false); Selections=newSelection("选择服务",act);//返回选择服务窗口 //dispose(); }elseif(money>act.get_Money()){判断取款数额是否大于余额 dispose(); ErrorWarn5ew5=newErrorWarn5("消息!",act); } } }}publicstaticvoidmain(String[]args){ GetBalancetest=newGetBalance("dfdf"); GetBalancegb=newGetBalance("取款"); }}5.8修改密码设计代码importjavax.swing.*;importjava.awt.*;importjavax.swing.border.*;importjava.awt.event.*;classChangePasswordextendsFrameimplementsActionListener{ Panelpanel1=newPanel(); Panelpanel2=newPanel(); Panelpanel3=newPanel(); Panelpanel=newPanel(); TextFieldtf4,tf5,tf6; Buttonbutton; Accountact; ChangePassword(Strings,Accountact){ super(s); this.act=act; tf4=newTextField(6); tf5=newTextField(6); tf6=newTextField(6); button=newButton("确定"); button.addActionListener(this);5.9设定新密码设计代码panel1.add(newLabel("请输入你的旧密码:")); panel1.add(tf4); panel2.add(newLabel("请输入你的新密码:")); panel2.add(tf5); panel3.add(newLabel("请再次输入你的新密码")); panel3.add(tf6); panel.add(button); this.add(panel1); this.add(panel2); this.add(panel3); this.add(panel); setLayout(newGridLayout(4,1)); setBounds(200,200,250,250); this.setVisible(true);5.10窗口事件设计代码this.addWindowListener(newWindowAdapter(){ publicvoidwi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论