javaATM机银行存取款系统的设计与实现毕业论文.docx

上传人:b****4 文档编号:26709706 上传时间:2023-06-22 格式:DOCX 页数:64 大小:181.11KB
下载 相关 举报
javaATM机银行存取款系统的设计与实现毕业论文.docx_第1页
第1页 / 共64页
javaATM机银行存取款系统的设计与实现毕业论文.docx_第2页
第2页 / 共64页
javaATM机银行存取款系统的设计与实现毕业论文.docx_第3页
第3页 / 共64页
javaATM机银行存取款系统的设计与实现毕业论文.docx_第4页
第4页 / 共64页
javaATM机银行存取款系统的设计与实现毕业论文.docx_第5页
第5页 / 共64页
点击查看更多>>
下载资源
资源描述

javaATM机银行存取款系统的设计与实现毕业论文.docx

《javaATM机银行存取款系统的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《javaATM机银行存取款系统的设计与实现毕业论文.docx(64页珍藏版)》请在冰豆网上搜索。

javaATM机银行存取款系统的设计与实现毕业论文.docx

javaATM机银行存取款系统的设计与实现毕业论文

本科毕业论文(设计)

 

银行存取款系统的设计与实现

 

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作与取得的成果。

尽我所知,除文中特别加以标注和致的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得与其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了意。

作者签名:

 日 期:

指导教师签名:

日  期:

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部容。

作者签名:

 日 期:

 

银行存取款系统的设计与实现

摘要

计算机科学技术的发展不仅极促进了整个科学的发展,而且明显加快了经济信息化和社会信息化的进程。

绝大多数的公司的日常办公已经离不开计算机技术和软件技术。

国的银行大都大力发展银行自动取款机(ATM),以提高工作效率和降低成本。

本系统采用Eclipsc作为开发工具,使用Java语言编写,并连接Oracle数据库,搭建和模拟银行最常见存款取款转账操作。

可实现用户注册、用户登录、用户存款、用户取款、用户转账、查询该用户所有的操作记录的功能。

关键词

注册;登陆;存取款;转账;历史记录

Designandimplementationofbankdeposit

andwithdrawalsystem

Abstract

Thedevelopmentofcomputerscienceandtechnologynotonlygreatlypromotedthedevelopmentofscienceasawhole,andsignificantlyspeeduptheprocessofeconomicandsocialinformation.Thevastmajorityofthecompany'sday-to-dayofficecannotdowithoutthecomputertechnologyandsoftwaretechnology.DomesticbanksMostvigorouslydevelopmentBankautomatedtellermachine(ATM),inordertoenhanceefficiencyandreducecosts.

EclipscThesystemusesasadevelopmenttooloftousingtheJavalanguage,andconnecttoanOracledatabase,setupthemostcommonandanalogbankdepositwithdrawalstransferoperation.Userregistration,userlogin,theuserdepositstheuserwithdrawal,checkalloperatingrecordoftheuser.

Keywords

Registration;Login;Deposit;Transfer;History

引论

随着市场经济的发展,经济信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户的需要。

同时,随着国银行机构的大量增加,我国的银行业面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行信息管理,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。

Java是一个广泛使用的编程语言,是一种新的计算概念。

1995年Java的诞生让全世界的程序员为之疯狂。

与以往的任何一种语言相比Java都有着无可比拟的优势。

首先,Java是一种简单、面向对象、分布式、解释、健壮、安全、结构中立、可移植、高效能、动态的语言。

目前,Java已得到了全世界主要计算机软硬件厂商的支持,在计算机领域中得到了广泛应用。

本系统选题为基于Java程序设计的银行存取款系统,是模拟银行存取款的管理。

设计的指导思想是一切为使用者着想,界面要美观大方,操作尽量简单明了,而且作为一个实用的管理系统要有要有良好的容错性,在出现误操作时能尽量与时地给出警告,以便用户与时地改正。

鉴于本系统的特殊性,还需要本程序有良好的性。

1银行存取款系统概述

1.1背景

随着我国金融电子化建设的深入发展和银行客户对金融服务质量要求的提高,自动柜员(ATM机)在金融行业的应用越来越广泛,自动柜员机(ATM机)在拉近客户与银行之间的距离,扩展营业网点,改善用卡环境,提供全天候、全方位的金融服务,降低经营成本,提高金融行业的服务质量和综合竞争实力等方面正发挥着不可替代的作用。

1.2意义

对用户来说,自动柜员机(ATM机)的诞生,使原来必须到银行柜台办理的账务查询、转账等业务,可以在大街小巷的固定取款机前进行办理。

对银行来说,自动柜员机(ATM机)的开通,将大大提高工作效率,在方便用户的同时可以节省大量的柜台服务为人员,从而降低生产经营成本。

2银行存取款系统需求分析

2.1系统需求

本系统是一套类似于ATM机的模拟银行系统存取款管理软件,其采用C/S结构来实现,当用户在界面进行存取款操作后,其数据信息会存入数据库,用户也可以选择查询这些信息。

2.2功能需求

根据系统的需求分析,本系统的功能要求如下:

2.2.1用户注册和登陆功能

新用户必须先注册,注册需要填写用户名和密码;老用户可以输入户名和密码直接登陆,通过读取数据库,获取该用户的信息,如果用户不存在则会提示错误。

2.2.2用户存取款转账和查询历史功能

用户登录成功后,可以选择存款、取款、转账或者查询历史记录四项业务,系统会自动进行各种计算,然后将结果返回给用户并将信息存入数据库。

2.3软件属性需求

本系统为银行存取款管理系统,要求程序具有一定的可移植,可扩展,安全性、性!

启动程序

2.4业务流程描述

 

图1-1业务流程

3.银行存取款系统总体设计

3.1系统设计概述

本系统使用Eclipse作为开发工具,采用Oracle作为后台数据库,使用swing界面,用户所有的操作信息会自动记录在数据库中,用户界面简单明了,功能严谨合理,务求使用户有好的体验。

3.2注册

填写注册信息,注册成功后,把用户信息存进数据库,并自动获得10000元存款。

3.3登录

输入名和密码,读取数据库容进行验证,如果存在,登录成功,否则提示无此账户,请确认后重新输入!

登录成功后可进行存款取款转账查询历史操作;

3.4存款

输入的存款金额进行验证,如输入负数或字母,提示金额错误,否则提示存款成功,存储被修改的余额信息!

3.5取款

输入的取款金额进行验证,如输入负数或字母,提示金额错误。

取款成功后,存入数据库!

当取款金额大于余额,要有提示,并操作不成功。

3.6转账

输入对方户名可以进行转账,转账后自己余额减少,对方余额增加。

3.7查询历史

显示用户从注册开始的所有操作时间和操作记录。

3.8退出

退出系统。

4Oracle数据库的设计

4.1Oracle数据库设计概论

OracleDatabase,简称Oracle。

是甲骨文公司的一款关系数据库管理系统。

到目前仍然是全球最流行的数据库。

在银行存取款系统的设计中,多次使用了Oracle作为存储信息和读取信息的工具。

4.2表的结构设计

在银行存取款系统的设计中,我们建立了用户表和历史表用于存储信息;

4.2.1用户表

用户表用于存储用户的户名密码余额注册时间信息,当用户注册成功后这些信息会自动记录在数据库中,以便用户查询。

表3-1用户表

字段名

数值类型

说明

HUMING

VARCHAR2(15)

用户户名(主键)

MIMA

VARCHAR2(15)

用户密码

YUE

MUMBER

用户余额

SHIJIAN

DATE

用户注册时间

4.2.2历史表

历史表用于存储用户从注册开始的所有用户操作,历史表中的字段HUMING与用户表中的字段HUMING是外键关系,以实现2个表之间的关联。

表3-2历史表

字段名

数值类型

说明

SHIJIAN

VARCHAR2(15)

用户执行当前操作的时间(主键)

HUMING

VARCHAR2(15)

用户户名

CAOZUO

VARCHAR2(100)

当前操作

YUE

MUNBER

操作后用户余额

4.3PL/SQL存储过程的设计

存储极方便了对数据库的增删改查等操作,因此创建与用户表对应的存储过程P_YH和与历史表对应的存储过程P_LS。

4.3.1用户表存储过程的设计

针对用户表的特点和JDBC连接的需要,现设计P_YH代码如下:

createorreplaceprocedurep_yh(

--pl/sql存储过程-用于对用户表--进行更新密码和余额操作

v_rmarkinnumber,--判定操作

v_huminginvarchar2,--户名

v_mimainvarchar2,--用户密码

v_yueinnumber--剩余金额

is

begin

if(v_rmark=1)then

insertintoyonghuvalues(v_huming,v_mima,v_yue,sysdate);

elsif(v_rmark=2)then

updateyonghusetmima=v_mimawherehuming=v_huming;

else

updateyonghusetyue=yue+v_yuewherehuming=v_huming;

endif;

commit;

end;

4.3.2历史表存储过程的设计

针对历史表的特点和JDBC连接的需要,现设计P_LS代码如下:

createorreplaceprocedurep_ls(

--pl/sql存储过程--用于对历史表--进行存储删除操作

v_rmarkinnumber,--判定操作

v_huminginvarchar2,--户名

v_caozuoinvarchar2,--用户操作

v_yueinnumber--操作金额

is

begin

if(v_rmark=1)then--存储

insertintolishivalues(to_char(systimestamp,'yyyy-mm-ddhh24:

mi:

ss'),v_huming,v_caozuo,v_yue);

else

deletefromlishiwherehuming=v_huming;

endif;

commit;

end;

5银行存取款系统的实现

5.1用户登陆模块的实现

5.1.1界面样式

图3-1用户登陆界面

5.1.2功能实现

程序启动后调用Dlact类,显示用户登陆界面。

新用户需要点击注册按钮调转到用户注册界面进行注册,老用户输入户名和密码点击登陆按钮,程序将跳转到用户操作界面。

户名和密码错误或者不存在会提示登录失败。

该模块主要代码如下:

publicclassDlactextendsJFrameimplementsActionListener{

publicvoidff(){

f.setLayout(null);

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

System.exit(0);

}

});

f.setVisible(true);

}

publicstaticvoidmain(String[]agrs){

Dlactd=newDlact();

d.ff();

}

Override

publicvoidactionPerformed(ActionEvente){

Strings1=t1.getText();

Strings2=String.valueOf(p1.getPassword());

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

//调用注册界面

Zcactz=newZcact();

z.ff();

}

else{

//登陆成功进入用户操作界面

Xzactx=newXzact();

x.ff(s1,s2);}

}

}

5.2新用户注册模块的实现

新用户在登陆界面点击注册按钮后调转到注册界面,在程序中调用Zcact类;

5.2.1界面样式

图3-2新用户注册界面

5.2.2功能实现

新用户输入户名、密码与确认密码。

输入两次密码必须一致,不一致提示输入不一致需要重新输入。

在程序中定义两个变量s1和s2,判断两个变量的值是否相等。

新用户注册成功后,系统将自动存储信息,并有余额10000元。

该部分主要代码如下:

publicclassZcactextendsJFrameimplementsActionListener{

publicvoidff(){

f.setLayout(null);

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

System.exit(0);

}

});

f.setVisible(true);

}

Override

publicvoidactionPerformed(ActionEvente){

Strings1=t1.getText();

Strings2=String.valueOf(p1.getPassword());

Strings3=String.valueOf(p2.getPassword());

System.out.println(s2);

if(!

s2.equals(s3)){

//判断2次密码是否一致

JOptionPane.showMessageDialog(null,"密码输入不一致");

return;

}

else{

JOptionPane.showMessageDialog(null,"注册成功");

}

Yhvoyvo=newYhvo();//调用Yhvo将数据存入用户表

Lsvolvo=newLsvo();//调用Lsvo将数据存入历史表

yvo.setHuming(s1);

yvo.setMima(s2);

yvo.setYue(10000);

lvo.setHuming(s1);

lvo.setCaozuo("注册账号获得10000");

lvo.setYue(10000);

yvo.setShijian(newDate());

try{

Yhdao.ff2(yvo,1);

Lsdao.ff2(lvo,1);

}catch(ClassNotFoundExceptione1){

e1.printStackTrace();

}catch(SQLExceptione1){

e1.printStackTrace();

}

}

}

5.3用户操作模块的实现

用户登陆成功后,进入操作选择界面。

在程序中应用Xzact类。

5.3.1界面样式

图3-3用户主界面

5.3.2功能实现

用户登陆成功后,用户可以选择存款、取款、转账、查询历史操作;选择不同的操作会跳转到对应的界面;该部分主要代码如下:

publicclassXzactextendsJFrameimplementsActionListener{

Stringhm=null;

Stringmm=null;

publicvoidff(Stringhm,Stringmm){

this.hm=hm;

this.mm=mm;

f.setLayout(null);

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

System.exit(0);

}

});

f.setVisible(true);

}

Override

publicvoidactionPerformed(ActionEvente){

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

//跳转到存款界面

Ckactc=newCkact();

c.ff(hm,mm);

}

elseif(e.getSource()==2){

//跳转到取款界面

Qkactc=newQkact();

c.ff(hm,mm);

}

elseif(e.getSource()==3){

//跳转到转账界面

Zzactz=newZzact();

z.ff(hm);

}

elseif(e.getSource()=4){

//跳转到查询历史界面

Lsactl=newLsact();

l.ff(hm);

}

}

}

5.4存款模块的实现

用户登录成功后,可进入存取款系统。

在程序中应用Xzact类。

5.4.1界面样式

图3-4用户存款

5.4.2功能实现

用户输入的存款金额,金额不能为负数或字母。

然后单击存款按钮,会提示存款成功和当前余额;该模块主要代码如下:

publicclassCkactextendsJFrameimplementsActionListener{

Stringhm;Stringmm;

publicvoidff(Stringhm,Stringmm){

this.hm=hm;

this.mm=mm;//传递户名和密码

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

System.exit(0);

}

});

f.setVisible(true);

}

Override

publicvoidactionPerformed(ActionEvente){

Yhvoyvo=newYhvo();//更新用户表

yvo.setHuming(hm);

yvo.setMima(mm);

yvo.setYue(Integer.parseInt(t1.getText()));

try{

Yhdao.ff2(yvo,3);

}catch(ClassNotFoundExceptione1){

e1.printStackTrace();

}catch(SQLExceptione1){

e1.printStackTrace();

}

Lsvolvo=newLsvo();//更新历史表

lvo.setHuming(hm);

lvo.setCaozuo("存款"+Integer.parseInt(t1.getText()));

Listlist=null;

try{

list=newYhdao().ff();

}catch(ClassNotFoundExceptione2){

e2.printStackTrace();

}catch(SQLExceptione2){

e2.printStackTrace();

}

for(inti=0;i

if(list.get(i).getHuming().equals(hm)){

lvo.setYue(list.get(i).getYue());

}

}

try{

Lsdao.ff2(lvo,1);

}catch(ClassNotFoundExceptione1){

e1.printStackTrace();

}catch(SQLExceptione1){

e1.printStackTrace();

}

}

}

5.5取款模块的实现

用户点击取款按钮,可进行取款操作。

在程序中应用Qkact类。

5.5.1界面样式

图3-5用户取款

5.5.2功能实现

用户输入取款金额,金额不能为负数或字母。

然后单击取款按钮,如果取款数不大于余额,读取取款数额,将信息写入数据库,提示取款成功和当前余额,否则,提示取款错误。

该模块主要代码如下:

publicclassQkactextendsJFrameimplementsActionListener{

Stringhm;

Stringmm;

publicvoidff(Stringhm,Stringmm){

this.hm=hm;

this.mm=mm;

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

System.exit(0);

}

});

f.setVisible(true);

}

Override

publicvoidactionPerformed(ActionEvente){

Yhvoyvo=newYhvo();//更新用户表

yvo.setHuming(hm);

yvo.setMima(mm);

yvo.setYue(-Integer.parseInt(t1.getText()));

try{

Yhdao.ff2(yvo,3);

}catch(ClassNotFoundExceptione3){

e3.printStackTrace();

}catch(SQLExceptione3){

e3.printStackTrace();

}

Lsvolvo=newLsvo();//更新历史表

lvo.setHuming(hm);

lvo.setCaozuo("取款"+Integer.parseInt(t1.getText()

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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