java实训ATM取款机设计报告.docx

上传人:b****6 文档编号:15338790 上传时间:2023-07-03 格式:DOCX 页数:23 大小:38.86KB
下载 相关 举报
java实训ATM取款机设计报告.docx_第1页
第1页 / 共23页
java实训ATM取款机设计报告.docx_第2页
第2页 / 共23页
java实训ATM取款机设计报告.docx_第3页
第3页 / 共23页
java实训ATM取款机设计报告.docx_第4页
第4页 / 共23页
java实训ATM取款机设计报告.docx_第5页
第5页 / 共23页
java实训ATM取款机设计报告.docx_第6页
第6页 / 共23页
java实训ATM取款机设计报告.docx_第7页
第7页 / 共23页
java实训ATM取款机设计报告.docx_第8页
第8页 / 共23页
java实训ATM取款机设计报告.docx_第9页
第9页 / 共23页
java实训ATM取款机设计报告.docx_第10页
第10页 / 共23页
java实训ATM取款机设计报告.docx_第11页
第11页 / 共23页
java实训ATM取款机设计报告.docx_第12页
第12页 / 共23页
java实训ATM取款机设计报告.docx_第13页
第13页 / 共23页
java实训ATM取款机设计报告.docx_第14页
第14页 / 共23页
java实训ATM取款机设计报告.docx_第15页
第15页 / 共23页
java实训ATM取款机设计报告.docx_第16页
第16页 / 共23页
java实训ATM取款机设计报告.docx_第17页
第17页 / 共23页
java实训ATM取款机设计报告.docx_第18页
第18页 / 共23页
java实训ATM取款机设计报告.docx_第19页
第19页 / 共23页
java实训ATM取款机设计报告.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java实训ATM取款机设计报告.docx

《java实训ATM取款机设计报告.docx》由会员分享,可在线阅读,更多相关《java实训ATM取款机设计报告.docx(23页珍藏版)》请在冰点文库上搜索。

java实训ATM取款机设计报告.docx

java实训ATM取款机设计报告

IMBstandardizationoffice【IMB5AB-IMBK08-IMB2C】

 

java实训ATM取款机设计报告

吉林工程技术师范学院

信息工程学院

《Java项目实训》

课程设计报告

题目:

ATM取款机JAVA实训课程设计

专业:

计算机科学与技术

班级:

C1341

姓名:

姜秋红

学号:

25

摘要

我选择的是“ATM取款机”,其目的主要是现在市面上的取款机功能不完善还有许多功能没有实现,用户对界面很熟悉,做起来更得心应手,所以的采用的界面和现在用户所用的界面基本相同,可以实现后台与前台的交互以及数据库之间的连接,使得我设计的ATM取款机更加完善。

利用jps网页设计一个总页面设计选择使用的用户是用户页面还是管理员页面,让使用的人根据权限去使用不同的功能。

在我的ATM取款机上实现了ATM机的基本功能,其界面参照了和原系统基本相同的界面。

增加了一些管理员的功能。

首先选择是用户登入还是管理员登入。

选择用户登入,有查看,存款,取款,转账和修改密码等功能。

选择管理员登入,有开户,销户,查询等功能;利用这些更能,使得ATM更加完善。

关键字:

ATM,查询,取款,转账,修改,界

程序设计概念4

程序设计的目的4

课程设计的内容4

设计方案的论证5

概要设计5

需求分析5

技术可行性5

经济可行性5

设计实现内容6

数据字典6

成员变量6

方法设计6

页面如下7

数据流程图7

测试运行及结果分析10

测试及问题探讨11

课设总结与体会12

致谢13

参考文献14

附录115

一、课程设计的概念

课程设计的目的

现代社会,ATM可以说是一种使用非常广泛的机器,ATM使用是非常频繁的,然而由于程序及其机器本人的一些漏洞,导致ATM机的犯罪现象屡有发生。

该项目的开发有利于进一步提高ATM机的性能及安全性,模拟开发ATM系统软件,掌握系统开基本流程,在开发系统中可以巩固所学的有关软件开发的知识,有利于提出优化改进现代ATM系统的建议。

课程设计的内容

银行ATM机的使用已经普及,人们都已习惯利用自动柜员机来提取现金,查询存款,转账,修改密码等等,我设计的ATM取款机添加了新的功能,具体功能如下:

管理员状态登入:

无用用户

二、设计方案的论证

概要设计

《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

需求分析

ATM设计的主要目标为:

管理员登陆时要写入账户的名和身份证号在数据库里进行匹配,匹配成功则登入否则在前台显示账号或密码错误;普通用户登入时要写入银行卡号和所属银行卡号的密码,在数据库中进行匹配,匹配成功即登入否则在前台显示账号或密码错误

可行性分析法是对工程项目技术经济论证技术经济论证经济合理性综合分析的方法。

其目的是通过对技术先进程度,经济合理性和条件可能性的分析论证,选择以最小的人力、物力、财力耗费,取得最佳技术、经济、社会效益的切实方案。

它是解决项目投资前期分析的主要手段。

三、设计实现内容

系统功能结构设计

数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。

成员变量

成员变量也叫类的属性,一般带有访问控制属性的,而全局变量虽然也有类的属性,但全局变量严重影响了封装和模块化,一般的全局变量前面要加上static和fina属性其中,static使该变量任何类都可用(方法ClassName.全局变量名),而fina则使得变量不可更改,基本上算是常量了,这也在一定程度上防止对变量的非法修改。

方法设计

方法名称为任何合乎语法的识别字,返回值类型是方法执行结果返回给调用者的数据类型,void表示没有返回值,参数行(parameterlist)是调用时给予的参数声明,两个以上的参数声明以逗号隔开,若没有参数则参数行为空白,调用时每一个参数对应一个参数值(argument)大括号内为方法本体,也称为方法程序模块(block),包含声明(declarations)和语句(statements),声明也可以掺杂在语句之间。

一个方法不能声明在另一个方法内。

表方法定义

方法名

功能

备注

Kh

开户

Xh

销户

Cx

查询

Yhcx

用户查询

Jiaoyan

校验

Yhjy

用户校验

Dl

登入

Card

卡号

Select

选择

update

修改

Yhdata

用户修改

yhc

用户查询

jiaoyan

登入校验

GLjiaoyan

管理用户登录校验

页面如下:

数据流程图

图选择方式登入

四、测试运行及结果分析

1、用户向ATM提款机中插入银行卡,如果银行卡是合法的,ATM提款机界面提示用户输入提款密码;

2、用户输入该银行卡的密码,ATM提款机与MainFrame传递密码,检验密码的正确性。

如果输入密码正确,提示用户输入取钱金额,提示信息为,“请输入您的提款额度”;

3、用户输入取钱金额,系统校验金额正确,提示用户确认,提示信息为“您输入的金额是xxx,请确认,谢谢!

”,用户按下确认键,确认需要提取的金额;

4、系统同步银行主机,点钞票,输出给用户,并且减掉数据库中该用户帐户中的存款金额。

5、用户提款,银行卡自动退出,用户取走现金,拔出银行卡,ATM提款机界面恢复到初始状态;

五、测试及问题探讨

如果插入无效的银行卡,那么,在ATM提款机界面上提示用户“您使用的银行卡无效!

”,3秒钟后,自动退出该银行卡。

如果用户输入的密码错误,则提示用户“您输入的密码无效,请重新输入”

如果用户连续3次输入错误密码,ATM提款机吞卡,并且ATM提款机的界面恢复到初始状态。

此时,其他提款人可以继续使用其他的合法的银行卡在ATM提款机上提取现金。

用户输入错误的密码后,也可以按“退出”键,则银行卡自动退出。

如果用户输入的单笔提款金额超过单笔提款上限,ATM提款机界面提示“您输入的金额错误,单笔提款上限金额是2500RMB,请重新输入”;

如果用户输入的单笔金额,不是以50RMB为单位的,那么提示用户“您输入的提款金额错误,请输入以50为单位的金额”;

如果用户输入正确的提款金额,ATM提款机提示用户确认后,用户取消提款,则ATM提款机自动退出该银行卡;

如果ATM提款机中余额不足,则提示用户,“抱歉,ATM提款机中余额不足”,3秒钟后,自动退出银行卡

如果用户银行户头中的存款小于提款金额,则提示用户“抱歉,您的存款余额不足!

”,3秒钟后,自动退出银行卡;

如果用户没有取走现金,或者没有拔出银行卡,ATM提款机不做任何提示,直接恢复到界面的初始状态;

六、课设总结与体会

大约一个星期的编写JAVA程序,发现自己不懂的地方很多,在完成这个设计的时候,我总是被一些小的,细的问题挡住前进的步伐,让我总是为了解决一个小问题而花费很长的时间,甚至做到很晚,最好猛然发现自己缺少一个定义或者还要查阅其他的书籍才能找出解决的办法。

例如,我定义了一个链表,可是向里面添加东西的时候,总是出错,后来在上机的时候问老师,才知道链表没有初始化,这是自己的粗心造成的。

我在做设计的过程中发现有很多东西,我都还不知道。

在做进制转换时不知道函数怎么写,是我上网查到的,再经过修改查到我的程序中。

其实在用语言来编程的时候,基础是一个不可缺少的知识,但是往往一些核心的高层次的东西更是不可缺少。

七、致谢

通过这次课程设计还使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,

从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,并且还发现了自己的许多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

但通过这次课程设计之后,一定把以前所学过的知识重新温故。

我完成了这次JAVA课程设计,不过这只是我学习路上的驿站。

我相信我在未来的学习中会记住从本次课程设计中所学到的东西,并将它用到未来的学习中去。

在这里谢谢老师的指导,我会更加努力的学习

八、参考文献

[1].张桂珠刘丽陈爱国Java面向对象程序设计(第2版)北京邮电大学出版社

[2]毕广吉.Java程序设计实例教程.北京:

冶金工业出版社,2007年

[6]董迎红、王薇编着,Java程序设计案例教程与实训,北京大学出版社

[7]赵文靖编着,《Java程序设计基础与上机指导》,清华大学出版社

九、附录

packagec;

import

import

import

import

import

import

import

import

import

;

;

publicclassZongimplementsJieK{

publicvoidkh(infou)throwsClassNotFoundException,SQLException{

进入方法中的u里的user_name:

"+());

Stringpid=();

Stringuser_name=();

Stringtelephone=();

Stringaddr=();

LianJielj=newLianJie();

Connectioncon=();

Stringsql="{callkaihu(,,,)}";

CallableStatementcs=(sql);

(1,pid);

(2,user_name);

(3,telephone);

(4,addr);

();

();

}

publicvoidxh(Stringuser_id)throwsClassNotFoundException,SQLException{

Connectioncon=null;

LianJielj=newLianJie();

con=();

Stringsql="{callxiaohu(

)}";

CallableStatementcs=(sql);

(1,user_id);

();

}

publicListcx(Stringpid,Stringuser_id)throwsClassNotFoundException,SQLException{

Connectioncon=null;

LianJielj=newLianJie();

con=();

Statementsta=null;

Stringsql="SELECT*FROMuserinfowhere1=1";

if(pid!

=null&&pid!

=""){

sql=sql+"andpid='"+pid+"'";

}

if(user_id!

=null&&user_id!

=""){

sql=sql+"anduser_id='"+user_id+"'";

}

sta=();

ResultSetrs=null;

rs=(sql);

Listlist=null;

list=newArrayList();

while()){

Stringuser_id1=

(1);

Stringuser_name=

(2);

Stringpid1=(3);

Stringtelephone=(4);

Stringaddr=(5);

infos=newinfo();

(user_id1);

(user_name);

(pid1);

(telephone);

(addr);

(s);

}

returnlist;

}

publicListyhcx(Stringcard_id)throwsClassNotFoundException,SQLException{

Connectioncon=null;

LianJielj=newLianJie();

con=();

PreparedStatementps=null;

Stringsql1=",,,,,,==?

";

ps=(sql1);

(1,card_id);

ResultSetrs=();

Listli=newArrayList();

while()){

Stringuser_id=

(1);

Stringuser_name=

(2);

Stringtelephone=(3);

Stringcard_id1=(4);

Dateopen_date=(5);

intbalance=(6);

infoinfo=newinfo();

(user_id);

(user_name);

(telephone);

(card_id1);

(open_date);

(balance);

(info);

}

returnli;

}

publicvoidjiaoyi(infou)throwsClassNotFoundException,SQLException{

Stringcard_id=();

Stringtrans_type=();

inttrans_money=();

Stringcard_id1=();

Connectioncon=null;

LianJielj=newLianJie();

con=();

Stringsql="{calluser_money(,,,)}";

CallableStatementcs=(sql);

(1,trans_type);

(2,card_id);

(3,trans_money);

(4,card_id1);

();

}

publicListyhjy(Stringcard_id)throwsClassNotFoundException,SQLException{

Connectioncon=null;

LianJielj=newLianJie();

con=();

Statementsta=null;

Stringsql="SELECT*FROMtransinfowhere1=1";

if(card_id!

=null&&card_id!

=""){

sql=sql+"andcard_id='"+card_id+"'";

}

sta=();

ResultSetrs=null;

rs=(sql);

Listlist=null;

list=newArrayList();

while()){

Datetrans_date=

(1);

Stringcard_id1=

(2);

intbalance=(3);

Stringtrans_type=(4);

inttrans_money=(5);

Stringremark=(6);

infos=newinfo();

Stringa=();

(a);

(card_id1);

(balance);

(trans_type);

(trans_money);

(remark);

(s);

}

returnlist;

}

publicinfodl(Stringuser_id,Stringpasswd)throwsClassNotFoundException,SQLException{

Connectioncon=null;

LianJielj=newLianJie();

con=();

Statementsta=();

Stringsql="SELECTcard_idFROMcardinfowhereuser_id='"+user_id+"'andpasswd='"+passwd+"'";

ResultSetrs=null;

rs=(sql);

Stringcard_id=null;

infoin=null;

while()){

in=newinfo();

card_id=("card_id");

(card_id);

}

();

();

returnin;

}

publicListcard(Stringuser_id)throwsSQLException,ClassNotFoundException{

Connectioncon=null;

LianJielj=newLianJie();

con=();

Statementsta=();

Stringsql="SELECT*FROMcardinfowhereuser_id='"+user_id+"'";

ResultSetrs=null;

rs=(sql);

Stringcard_id=null;

Listlist=null;

list=newArrayList();

while()){

card_id=("card_id");

Dateopen_date=("open_date");

intopen_money=("open_money");

intbalance=("balance");

Stringpasswd=("passwd");

user_id=("user_id");

infoin=newinfo();

(card_id);

(open_date);

(open_money);

(balance);

(passwd);

(user_id);

(in);

}

();

();

returnlist;

}

publicListselect(Stringuser_id)throwsException{

Connectioncon=null;

LianJielj=newLianJie();

con=();

PreparedStatementps=null;

Stringsq3="select*fromuserinfowhereuser_id="

;

if(user_id==null||("")){

sq3="select*fromuserinfo";

ps=(sq3);

}else{

ps=(sq3);

(1,user_id);

}

ResultSetrs=();

Listli=newArrayList();

while()){

Stringuser_id1=

(1);

Stringuser_name=

(2);

Stringpid=(3);

Stringtelephone=(4);

Stringaddr=(5);

infoinfo=newinfo();

(addr);

(pid);

(telephone);

(user_id1);

(user_name);

(info);

}

returnli;

}

publicvoidupdate(infoin)throwsSQLException,ClassNotFoundException{

update数据库操作");

Stringuserid=();

Stringusername=();

Stringtelephone=();

Stringaddr=();

Stringsq8="updateuserinfosetUSER_NAME=,TELEPHONE=,ADDR=whereuser_id=";

Connectioncon=null;

LianJielj=newLianJie();

con=();

PreparedStatementsta=(sq8);

(4,userid);

(1,username);

(2,telephone);

(3,addr);

();

"+sq8);

();

();

}

publicStringid(Stringuser_name)throwsException{

LianJielj=newLianJie();

Connectioncon=();

Stringsq7="selectuser_idfromuserinfowhereuser_name=?

";

PreparedStatementst=(sq7);

(1,user_name);

ResultSetrs=();

Stringuser_id1=null;

while()){

user_id1=("user_id");

}

returnuser_id1;

}

publicListyhselect(Stringcard_id)throwsException{

Connectioncon=null;

LianJielj=newLianJie();

con=();

PreparedStatementps=null;

Stringsq3="select*fromcardinfowherecard_id="

;

if(card_id==null||("")){

sq3="select*fromcardinfo";

ps=(sq3);

}else{

ps=(sq3);

(1,card_id);

}

ResultSetrs=();

Listlist=newArrayList();

while()){

card_id=("card_id");

Dateopen_date=("open_date");

intopen_money=("open_money");

intbalance=("balance");

Stringpasswd=("pa

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2