ATM取款机java课程设计第二次试验Word下载.docx

上传人:b****3 文档编号:16423380 上传时间:2022-11-23 格式:DOCX 页数:10 大小:125.33KB
下载 相关 举报
ATM取款机java课程设计第二次试验Word下载.docx_第1页
第1页 / 共10页
ATM取款机java课程设计第二次试验Word下载.docx_第2页
第2页 / 共10页
ATM取款机java课程设计第二次试验Word下载.docx_第3页
第3页 / 共10页
ATM取款机java课程设计第二次试验Word下载.docx_第4页
第4页 / 共10页
ATM取款机java课程设计第二次试验Word下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

ATM取款机java课程设计第二次试验Word下载.docx

《ATM取款机java课程设计第二次试验Word下载.docx》由会员分享,可在线阅读,更多相关《ATM取款机java课程设计第二次试验Word下载.docx(10页珍藏版)》请在冰豆网上搜索。

ATM取款机java课程设计第二次试验Word下载.docx

4.1遇到的问题及解决办法10

4.2心得体会11

ATM初始账号:

000000

初始密码:

123456

ATM柜员机

按钮的事件和功能可以简单的模拟ATM柜员机的要求。

1系统需求分析

1.1功能需求分析

本ATM柜员机的主要功能如下所述:

要求使用图形用户界面。

当输入给定的卡号和密码(初始数据保存于txt文件中)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:

●查询余额:

●ATM取款:

每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

●ATM存款:

不能出现负存款。

●修改密码:

新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

1.2其他需求分析

(1)性能描述

实时性好、灵活性强、易于不同年龄阶段的人操作。

(2)设计约束

开发工具:

Eclipse

运行环境:

WindowsXP、Window7

能实现用户所定义的各项需求。

(3)界面要求

以Windows窗口形式显示,标题栏为ATM柜员机名称,右上角有最小化按钮、最大化按钮、关闭按钮,不同的窗口中有不同的按钮和选择菜单。

2系统设计

2.1总体设计

我所设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。

其功能结构图如下所示:

图1ATM功能结构示意图

2.2登陆页面模块设计

与ATM柜员机打交道比较多的,也是大家对安全比较关心的问题:

密码。

所以第一个界面就是要输入密码和卡号才能继续服务。

我定义了文本框类的对象tf1,tf2。

是用于输入单行的文本;

文本区调用publicStringgetPassword()方法,获取用户想要的字符串。

用来判断输入的密码和卡号是否正确,如果不正确的话,则弹出密码或卡号错误的警告框,并用dispose()关掉窗口。

此模块相应的部分源代码为:

publicvoidactionPerformed(ActionEvente){

Accountact;

act=newAccount("

000000"

"

HuangHuai"

123456"

50000);

//初始化

/*选择各种服务*/

if(e.getSource()==button1){

Stringnumber1,number2;

//输入的两个卡号和密码的变量

number1=tf1.getText().toString();

number2=newString(tf2.getPassword());

/*判断两次输入的卡号和密码是否正确*/

if((act.getCode().equals(number1))&

&

(act.getPassword().equals(number2))){

dispose();

newSelection("

选择服务"

act);

}else{

JOptionPane.showMessageDialog(this,"

密码或帐号错误!

"

账户提示信息"

JOptionPane.ERROR_MESSAGE);

newWindowBox("

ATM"

);

}

}

if(e.getSource()==button2){

System.exit(0);

dispose();

//退出

}

}

2.3选择服务模块设计

在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。

每一个按钮都有监听器,在选择了按钮后,java.awt.event中的ActionEvent类创建一个事件对象,并将它传递给方法publicvoidactionPerformed(ActionEvente)中的参数e,监视器就会知道所发生的事件,对此事件进行处理。

其中的部分源代码为:

p.add(newLabel("

请选择你要的服务"

));

this.add(p);

/*各种服务功能*/

buttonCUN=newButton("

存款"

);

p1.add(buttonCUN);

this.add(p1);

buttonQU=newButton("

取款"

p2.add(buttonQU);

this.add(p2);

buttonCHA=newButton("

查询余额"

p3.add(buttonCHA);

this.add(p3);

buttonTUI=newButton("

退出"

p4.add(buttonTUI);

this.add(p4);

buttonGAI=newButton("

修改密码"

2.4取款模块设计

在取款模块中,和其他的界面也是同样的结构。

也是有一个文本框和一个按钮还有标签组成的。

用户在文本框中输入他想取的数额,但是必须是100的倍数,而且每一次最多只能取5000块。

当然了取款的时候也不能超过卡里的余额,再就是卡里的余额不可以为负,否则就会弹出报错的窗口。

其方法为:

publicStringwithdrawMoney(doublemoney){

Stringstr=null;

if(money<

=0){

str="

取款数目须是正数!

;

if(getMoney()<

0){//判断余额是否为负

str="

余额为负数!

}elseif(money<

=getMoney()){

if((money%100!

=0)||(money>

=5000)){//取钱数为100的倍数或不大于5000

str="

取款数目须是一百的整数倍!

}else{

setBalance(money);

str="

取款成功:

余额为"

+getMoney();

}

}else{

str="

余额不足!

}

returnstr;

2.5修改密码模块设计

在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。

再一个就是要两次输入你的新密码,且两次药匹配,否则也会报错,然后再重新回到修改密码的界面。

在修改密码时用到的方法为:

/*判断旧密码是是否正确*/

if(pwd2.equals(pwd1)){

if(pwd3.equals(pwd4)){//判断两次输入的新密码是个匹配

act.changePassword(pwd3);

//启用新的密码

dispose();

JOptionPane.showMessageDialog(this,"

修改密码成功!

newSelection("

选择"

//返回选择服务窗口

this.setVisible(true);

两次输入要修改的密码不同,更新密码失败!

}

}else{

this.setVisible(false);

输入密码错误,更新密码失败!

2.6退卡模块设计

在退卡模块设计中,这个方法就更加的简单了,它只是用了if(e.getSource()==buttonTUI){//退出

这个方法就可以实现了,这里就不再多说了。

3系统实现与测试

(1)打开MyEclipse,编译运行程序后,将会看到如下的界面,如图2所示。

如果输入的密码或卡号不正确的话就会报下图的错误。

图2主界面—登陆页面

(2)选择服务界面效果

当输入的密码和卡号正确,单击确定后就会进入到选择服务的界面,如图3所示。

然后就可以选择所需要的服务了。

图3选择服务界面

(3)取款界面,如图4所示。

图4取款界面

当输入的钱数不是100的倍数或每一次大于5000时就会报图5的错误。

图5输入错误

当取款时如果超过卡里的余额的话就会报图6的错误。

图6输入错误2

(4)查询余额界面,如图7所示。

图7查询余额界面

(5)修改密码界面,如下图所示。

经过测试,所有的功能基本上都实现了,而且运行正常。

4课程设计总结

4.1遇到的问题及解决办法

在此次课程设计中,我遇到了一些问题,如:

对于面向对象的方法了解不够透彻,运用到实际的软件开发中存在着困难;

对于Java语言,只学习到了一些最基本的知识,这导致编写程序时经常出现一些语法错误,而且要在短时间内用Java语言来设计一个具体的系统是一个较大的挑战;

还有对于正规开发一个系统的流程不熟悉,适应起来比较慢,编写各个模块相对应的操作时,自己感觉难以动手,这表明所学的知识不能灵活运用到实际中。

对于以上的问题,自己有清楚的认识,解决办法是需要大量阅读相关的书籍,对于书上以及网站上下载的资料中的Java实例必须有清楚的理解,还有就是多跟精通此方面的老师和同学交流,取其精华。

对于实际动手能力与系统开发的流程的适应,必须多进行实际的练习与操作,才能有大的进步。

4.2心得体会

在这次课程设计中,我主要运用了Java语言的界面设计、异常处理、、Awt控件、Swing控件,输入输出流等,综合运用了Java语言。

我深刻感受到了面向对象语言中类库的强大功能,掌握了运用Java中的类实现某些基本功能,并学会了自己查询使用类的方法,为以后的面向对象语言的自学奠定了基础。

通过这两个礼拜的课程设计我真的学到了很多的东西,当然这也和我的同学的帮助是离不开的。

好了,下面就谈一下我在这些天的体会吧:

在这次的课程设计中,主要是运用JAVA语言来编写一个小的应用程序,当然还可以用其他的技术来辅助了。

在这个小应用程序当中,我用了Java外还用了Swing控件。

输入输出流等技术。

由于以前学的不是很扎实,而且还有些知识我们都是没有学过的,这就要求我们去查相关的书籍,还有就是和同学之间的交流。

正因为这样,才锻炼了我的自学的能力,还有就是加深了我对各个知识点的认识,并且提高了我对专业的学习的兴趣,为我以后的学习打下了基础。

此外,我还感受到了面向对象语言的类库的强大的功能,掌握了运用JAVA中的类实现某些基本功能,并学会了自己查询使用类的方法,也就是要会用API文档,为以后更好的学习面向对象语言奠定了基础。

通过将近两周的努力,这次课程设计终于结束了,在这个过程当中,我学到了很多的知识,同时也感谢我的同学的帮助和指导。

在以后的学习当中,我会更加努力的学习好专业知识,并将所学的知识用于实践当中去,以便牢固掌握知识。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

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

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