版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机系课程大作业实验报告实验项目名称 银行ATM系统的设计与实现 所属课程名称 Java程序设计 实 验 类 型 综合设计 姓 名 提交时间 2012-5-10 班级学号 成 绩 计算机实验室实验概述:【实验目的】 学习使用JAVA技术设计与实现软件的基本过程和技术。通过实现,巩固JAVA基础知识,掌握在实践中解决问题的方法,提升JAVA实践编程能力。【实验环境】(使用的软件) Eclipse 开发环境,office Word 软件。实验内容(不够附页):【实验方案设计与实验过程】题目:银行业务ATM设计与实现处理简单帐户存取款、查询。要求:模拟ATM的界面,用户能取款、查询、存款。数据存放
2、在文件中。 (界面、具体功能自定)涉及:界面设计、文件输入输出流读、写。系统需求分析1 、功能需求分析本ATM柜员机的主要功能如下所述:要求使用图形用户界面。当输入给定的卡号和密码(卡号为和密码为)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:查询余额:初始余额为0元,存款后余额为本金加利息。ATM存款:每次存款金额为100的倍数,总额不超过5000元,金额不为负数。ATM取款:每次取款金额为100的倍数,总额不超过5000元,金额不允许透支。查询利率:可查询利率。2 、其他需求分析(1)性能描述实时性好、灵活性强、易于不同年龄阶段的人操作。(2)设计约束能实现用户所定义的各项需求
3、。系统设计1、总体设计我所设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。其功能结构图如下所示:登陆界面模块选择服务模块查询余额模块存款模块取款模块查询利率模块退出模块图1 ATM功能结构示意图2、ATM柜员机界面设计我觉得一个系统的界面应该要简单明了,当然样式美观就更好了。我设计的界面主要是由窗体组成,操作简单。而每一个窗口则执行相应的功能。一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。我设计的界面主要分为窗体、菜单、文本输入框几个部分,分别执行相应的操作。(1)窗体的主
4、要结构的设计我所设计的窗口的主要结构的特点就是每个窗口都对应着一个特定的功能。比如说报错,还有各种查询余额、存款、取款、查询利率、选择服务等功能,所以它们都是由各种选择和文本框组成的。所以整个设计就趋向简单化了。(2)各功能模块设计1 登陆页面模块设计与ATM柜员机打交道比较多的,也是大家对安全比较关心的问题:密码。所以第一个界面就是要输入密码和卡号才能继续服务。我定义了文本框累的对象cardNum, password。判断输入的密码和卡号是否正确,如果不正确的话,则弹出密码或卡号错误的警告框,并用break跳出窗口,返回登陆界面。此模块相应的部分源代码为:str1=JOptionPane.s
5、howInputDialog(账号:+n);/输入个人信息 cardNum1=Integer.parseInt(str1); str2=JOptionPane.showInputDialog(密码:+n);/输入个人信息 password1=Integer.parseInt(str2); if(cardNum1=cardNum)&(password1=password) break; else if(cardNum1!=cardNum)|(password1!=password) JOptionPane.showMessageDialog(null,错误!请重输); str1=JOptionP
6、ane.showInputDialog(账号:+n);/读入数据 cardNum1=Integer.parseInt(str1); str2=JOptionPane.showInputDialog(密码:+n);/读入数据 password1=Integer.parseInt(str2); if(cardNum1!=cardNum)&(password1!=password) JOptionPane.showMessageDialog(null,两次输入错误!请退出!+n+卡被吞!); System.exit(0); else System.exit(0); else System.exit(
7、0); 2 选择服务模块设计在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择,它就会弹出各个相应的界面。主要代码如下:String inputChoise = JOptionPane.showInputDialog ( t请输入您选择的项目代号:n +tt 1 查询余额n +tt 2 存款n +tt 3 取款n +tt 4 利率n +tt 5 退出 );choise = Integer.parseInt( inputChoise );3 查询余额模块设计在查询余额模块中,会出现一个显示所剩余额的对话框。余额是由本金和利息的和。主要代码如下:cash= cash + cash *
8、 rate;JOptionPane.showMessageDialog( null,您的余额: + cash );break; 4 存款模块设计在存款模块中,和其他的界面是同样的结构。也是有一个文本框和选择组成的。用户在文本框中输入他想存的数额,但是必须是100的倍数,而且每一次最多只能存5000块。否则就会弹出报错的窗口。主要代码如下:String in = JOptionPane.showInputDialog( 请在空白框内输入金额!n+您要存款的金额是: );money = Integer.parseInt( in );if(money0)&(money%100=0)cash=cash
9、+money;JOptionPane.showMessageDialog(null,存款成功!);JOptionPane.showMessageDialog(null,您的余额是:+cash);elseJOptionPane.showMessageDialog(null,您的输入金额非法!请重输-);try FileWriter fw = new FileWriter( d:atm.txt ,true); PrintWriter out = new PrintWriter(fw); out.println(存款: +money); out.close(); fw.close(); catch
10、(IOException e) System.out.println( Write file error! ); e.printStackTrace(); break;5 取款模块设计在取款模块中,和存款界面是同样的结构。也是有一个文本框和按钮组成的。用户在文本框中输入他想取的数额,但是必须是100的倍数,而且每一次最多只能取5000块。当然了取款的时候也不能超过卡里的余额,再就是卡里的余额不可以为负,否则就会弹出报错的窗口。主要代码如下:String out = JOptionPane.showInputDialog( 请在空白框内输入金额!n+您要取款的金额是: );money = Int
11、eger.parseInt( out );if(money0)&(money%100=0)cash=cash-money;JOptionPane.showMessageDialog(null,取款成功!);JOptionPane.showMessageDialog(null,您的余额是:+cash);JOptionPane.showMessageDialog(null,请取回卡!);if(money%100=0)&(money=0) cash = cash - money; JOptionPane.showMessageDialog(null,您的余额是:+cash); if(money0)
12、JOptionPane.showMessageDialog(null,请取回现金!); else JOptionPane.showMessageDialog(null,您的输入金额非法!请重输-); str3= JOptionPane.showInputDialog(请输入金额:+n);/读入数据 money=Integer.parseInt(str3); if(money%100=0)&(money=0) cash=cash-money; JOptionPane.showMessageDialog(null,您的余额是:+cash); if(money0) JOptionPane.showM
13、essageDialog(null,请取回现金!); else JOptionPane.showMessageDialog(null,卡被吞!); try clock.sleep(2000); catch(InterruptedException ie) System.err.println(Thread error:+ie); try FileWriter fw = new FileWriter( d:atm.txt ,true); PrintWriter ou = new PrintWriter(fw); ou.println(取款: +money); ou.close(); fw.clo
14、se(); catch (IOException e) System.out.println( Write file error! ); e.printStackTrace(); break;6 退卡模块设计在退卡模块设计中,这个方法就更加的简单了,它只是用了System.exit(0);7 查询利率设计 用户可查询利率,利率可在程序中修改,但不允许用户自己修改。JOptionPane.showMessageDialog(null,您的利率是: + rate);8 文件设计存取款记录都可以在文件中体现。存款记录只要代码如下:try FileWriter fw = new FileWriter(
15、 d:atm.txt ,true); PrintWriter out = new PrintWriter(fw); out.println(存款: +money); out.close(); fw.close(); catch (IOException e) System.out.println( Write file error! ); e.printStackTrace(); 取款代码与存款相似。实验步骤、测试数据及实验结果1登陆界面(1)输入正确的帐号和密码 (2)输入密码错误 如上再次输入错误,则出现如下界面。程序被退出。2登陆正确进入选择界面3 输入选项1,出现查询余额界面4输入选项
16、2,出现存款界面(1)如输入不是整百的金额则不能存入金额 (2)输入整百的金额则存入 5存入金额后,查询余额为本金加利息6输入选项3,出现取款界面(1)如输入不是整百的金额则不能取款 (2)输入整百的金额则取款成功 7输入选项4,出现利率界面8输入选项5,出现退出界面9记录文件内容【实验小结】出错原因分析在此次课程设计中,我遇到了一些问题1对于java语言了解不够透彻,运用到实际的软件开发中存在着困难,只学习到了一些最基本的知识,这导致编写程序时经常出现一些语法错误。经细心修改终于将程序改正完成。2在短时间内用Java语言来设计一个具体的系统是一个较大的挑战。主要是对于正规开发一个系统的流程不
17、熟悉,适应起来比较慢,编写各个模块相对应的操作时,自己感觉难以动手,这表明所学的知识不能灵活运用到实际中。只能大量阅读相关的书籍,对于书上以及网站上下载的资料中的Java实例加强理解,还有就是多跟精通此方面的老师和同学交流,取其精华。3在加入文件的时候,文件中只能存放一行数据且每次记录都覆盖上次的纪录,竟跟同学反复讨论后,终于将文件记录成功。4在判断输入的帐号和密码是否与原帐号和密码一致时,我原本想用数组将每一位数字都一一比较,但后来发现用整型变量就可以了,而且比数组简便多了,定义语句如下: int cardNum = ;/信用卡号 int password = ;/密码比较语句如下:(car
18、dNum1=cardNum)&(password1=password)心得体会这次作业让我对于实际动手能力与系统开发的流程的有了很大的提升,让我了解到进行软件的开发必须多进行实际的练习与操作,才能有进步。在这作业我主要学会了运用Java语言设计界面、输入文本等,学会了综合运用Java语言。这次作业内容主要是运用JAVA语言来编写一个ARM银行程序,由于以前学的不是很扎实,而且还有些知识我们都是没有学过的,这就要求我们去查相关的书籍,还有就是和同学之间的交流。正因为这样,才锻炼了我的自学的能力,还有就是加深了我对各个知识点的认识,并且提高了我对专业的学习的兴趣,为我以后的学习打下了基础。在这个过
19、程当中,我学到了很多的知识,同时也感谢我的同学的帮助和指导。在以后的学习当中,我会更加努力的学习好专业知识,并将所学的知识用于实践当中去,以便牢固掌握知识。附:/Cash.javaimport java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import javax.swing.*;public class Cash public static void main( String args ) int cardNum1 = 1; int password1 = 1; int cardNum = ;
20、/信用卡号 int password = ;/密码 String str1 = ; String str2 = ; String str3 = ; Thread clock=null; double cash = 0; int money = 0; int i = 1; double rate = 0.0023;do str1=JOptionPane.showInputDialog(账号:+n);/输入个人信息 cardNum1=Integer.parseInt(str1); str2=JOptionPane.showInputDialog(密码:+n);/输入个人信息 password1=I
21、nteger.parseInt(str2); if(cardNum1=cardNum)&(password1=password) break; else if(cardNum1!=cardNum)|(password1!=password) JOptionPane.showMessageDialog(null,错误!请重输); str1=JOptionPane.showInputDialog(账号:+n);/读入数据 cardNum1=Integer.parseInt(str1); str2=JOptionPane.showInputDialog(密码:+n);/读入数据 password1=
22、Integer.parseInt(str2); if(cardNum1!=cardNum)&(password1!=password) JOptionPane.showMessageDialog(null,两次输入错误!请退出!+n+卡被吞!); System.exit(0); else System.exit(0); else System.exit(0); while( i0 );int choise; while( i=1 )doString inputChoise = JOptionPane.showInputDialog ( t请输入您选择的项目代号:n +tt 1 查询余额n +t
23、t 2 存款n +tt 3 取款n +tt 4 利率n +tt 5 退出 );choise = Integer.parseInt( inputChoise ); switch( choise )case 1 :cash= cash + cash * rate;JOptionPane.showMessageDialog( null,您的余额: + cash );break;case 2 : String in = JOptionPane.showInputDialog( 请在空白框内输入金额!n+您要存款的金额是: );money = Integer.parseInt( in );if(mone
24、y0)&(money%100=0)cash=cash+money;JOptionPane.showMessageDialog(null,存款成功!);JOptionPane.showMessageDialog(null,您的余额是:+cash);elseJOptionPane.showMessageDialog(null,您的输入金额非法!请重输-);try FileWriter fw = new FileWriter( d:atm.txt ,true); PrintWriter out = new PrintWriter(fw); out.println(存款: +money); out.c
25、lose(); fw.close(); catch (IOException e) System.out.println( Write file error! ); e.printStackTrace(); break;case 3 : String out = JOptionPane.showInputDialog( 请在空白框内输入金额!n+您要取款的金额是: );money = Integer.parseInt( out );if(money0)&(money%100=0)cash=cash-money;JOptionPane.showMessageDialog(null,取款成功!);JOptionPane.showMessageDialog(null,您的余额是:+cash);JOptionPane.showMessageDialog(null,请取回卡!);if(money%100=0)&(money=0) cash = cash - money; JOptionPane.showMessageDialog(null,您的余额是:+cash); if(money0) JOptionPane.sho
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 就业指导能力强化
- 2026道德与法治五年级知识窗 公益慈善知识
- 2026高中必修二《圆与方程》考点真题精讲
- 医院登记员如何考核制度
- 医院预算与内控制度
- 单位信息化工作制度
- 南昌内部控制制度
- 卫生战备工作制度
- 卫生院电气安全管理制度
- 危化品采购保存制度
- 食品添加剂生产企业隐患排查评估整治技术指南(2025年版)
- 2026陕西榆林绥德县启萌婴幼儿照护服务管理中心招聘工作人员3人笔试参考题库及答案详解
- 山东省潍坊市2026届高三二模考试地理试题(含答案)
- 承装修安全生产管理制度
- 超星尔雅学习通《舞台人生走进戏剧艺术(中央戏剧学院)》2024章节测试答案
- 新资源食品教学课件
- 高考英语核心高频688词汇-背诵单词课件
- 《超星尔雅学习通》《走进东盟》章节测试题及答案
- (50)-雕刻上颌第一前磨牙
- 石油产品蒸气压测定法(雷德法)
- 司索(吊钩)课件
评论
0/150
提交评论