《2022年银行管理系统完整报告 .pdf》由会员分享,可在线阅读,更多相关《2022年银行管理系统完整报告 .pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程设计*课程课程设计项目名称银行存取款管理系统小组413寝室组员汪香玲、吴梦瑶、徐娟、李园院(系)计算机学院专业年级网络工程指导教师鲁静日期 2012年 5 月 10 日 2012年 6月 17 日名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 26 页 -1-目录1、需求与功能分析(3)2、系统总体框架(4)3、模块设计与分析(5)4、类的设计与分析(7)5、特色算法分析(9)6、功能测试(10)7、存在的不足与对策(15)8、程序源代码(16)名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 26 页 -2-一、需求与功能分析随着社会经济的发展,信息化程度的不断
2、深入,银行的传统业务己愈来愈不能满足银行客户的需要。现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个
3、迫切需要解诀的问题。近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点,为其提供各种高效、快捷的代收代付业务,也就是中间代理业务,目前以与广大人民群众生活密切相关的各项缴费业务如水电费、电话费、手机费等代收业务为主,这些业务开展方式多种多样,但一般都离不开计算机的高效管理支持。随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这就对银行的电子化水平和相应的管理水平提出了更高的要求。如何利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。支持决策系统的,需要在数据库的基础上,进行联机分析处理,每次处理的数据量大,
4、响应时间长。特别是银行每天要处理大量的存取款事件,做好存取款是银行工作重要的环节,然而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快速、有效、准确、安全的处理银行事物。主要用于银行的储蓄卡管理系统,它可以帮助我们有效、准确、并且高效实现的完成存取事件。此系统操作方便效率、安全性高,只要客户开户并设定好密码就可以轻松的实现存取款。系统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 26 页 -3-注销等功能。储蓄卡开户管理模块:卡号、姓名、开户金额、身份证号、地址、电话、密码、确认密码和保存组
5、成。(开户金额必须是数字,密码和确认密码必须一样是六位数字)*查询历史数据模块:存款记录、取款记录、余额显示等。*注销模块:一旦注销该卡号就不存在且余额提醒你取出。通过该银行账户管理系统地运行,使办公人员可以轻松快捷的完成对账户管理的任务,提高账目管理效率,使银行的账目管理工作系统化、规范化、自动化。该银行帐目管理信息系统,优点是设计过程思路清晰、模块划分简洁,设计各阶段分工明确。经过实践证明,该划分是合理的,极大得提高了本系统的实现。二、系统总体框架图 1-1 三、模块设计与分析储蓄卡开户管理模块:银行管理系统存钱页面取款页面余额页面历史记录注销页面登录界面注册开户主界页面注销退出名师资料总
6、结-精品资料欢迎下载-名师精心整理-第 4 页,共 26 页 -4-3.1登录页面输入卡号和密码,根据用户输入的卡号和密码,到后台文件查询,若正确则登录成功,并保存卡好信息已备后用。若卡号存在和密码不匹配或无该卡号已经注销,提示该卡号已存在或已注销,保持界面三次不变等待用户的重新输入。3.2 主界面页面主要导航栏有:欢迎使用储蓄卡管理(存款、取款、查询余额、查询历史记录、注销退出)3.3 储蓄卡开户页面提供开户界面,由用户输入新储蓄卡的所有信息,将该信息保存到文件中,并将开户金额作为该卡的第一次存款记录存人文件。3.4 存钱页面从登录界面得到卡号,并提供数据输入界面,等待用户的输入存款金额。从
7、后台数据库中找到该用户余额记录,修改余额,并将该存款事件的相应信息写人数据库,同时将存钱的金额显示在页面上。3.5 取款页面从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上,。3.6 查询余额页面从登录界面得到卡好,把该卡上的余额显示到界面中。3.7 查询历史记录页面从登录界面得到卡号,把该卡的所有存款取款信息查询出来,并显示在页面上。3.8 注销页面从关闭文件,状态为注销,最后关闭整个系统。列举取款模块进行分析:void Function:Drawing(Us
8、er&u)system(cls);coutnnntt*nendl;couttt请输入取款金额:;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 26 页 -5-string str1(ntt现取RMB 钞-);string str2;int k=0;while(kSaveAndDrawMoney;u.Fmoney-=SaveAndDrawMoney;if(u.Fmoney=0)system(cls);coutnnntt正在出炒,请稍等!endl;strstream ss;ssstr2;string frist=Record+str2+.txt;const char*RecordF
9、ile=frist.c_str();ofstream outfile(RecordFile,ios:out|ios:app);outfilestr1SaveAndDrawMoney=3)system(cls);cerrnnntt很抱歉,你重复输入错误多次endl ntt正在退卡中 endl;exit(0);system(cls);u.Fmoney+=SaveAndDrawMoney;cerrnnntt对不起,你输入的金额超出有效金额。endl ntt 请重新输入:;cout(istream&i,User&u);void PassWord();bool Login(User&);void Sav
10、eFile(User&);vector StrFunction;User()User(int A,string N,int F,string I,string Ad,int T):Accout(A),Name(N),Fmoney(F),ID(I),Address(Ad),Telephone(T)private:int Accout;string Name;int Fmoney;string ID;string Address;int Telephone;char Pword19;char Pword29;名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 26 页 -7-;表 1 U
11、ser 类说明表名称属性说明Accout 数据成员用户账户数据Name 数据成员用户姓名Fmoney 数据成员用户首次金额ID 数据成员用户身份证号Address 数据成员用户地址Telephone 数据成员用户电话Pword1 数据成员用户密码Pword2 数据成员用户再一次确认密码Get()构造函数默认构造函数Login()成员方法登录方法Password()成员方法密码验证SaveFile()成员方法保存数据2Function 类Function 类 主要实现用户的各种功能:画出 User 类的类图:相关代码:class Function public:void Saving(User&
12、);void Drawing(User&);void Balance(User&);void Record(User&);private:int SaveAndDrawMoney;名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 26 页 -8-表 1 User 类说明表名称属性说明SaveAndDrawMoney 数据成员用户存入与取出金额Saving()成员方法实现存款功能与保存数据Drawing()成员方法实现取款功能与保存数据Balance()成员方法查询余额功能Record()成员方法查询历史记录五、特色算法分析1.User 类中的 PassWord方法功能:输入密码并进
13、行确认,如果密码确认三次失败,则退出系统。流程图:否是否是代码:void User:PassWord()int num=0;while(num3)coutntt请输入位储蓄密码:;for(int i=0;i8;i+)Pword1i=getch();cout*;Pword18=0;coutendl;coutntt请再一次确认密码:;While(n3)输入:password1 Password2 strcmp(Pword1,Pword2)名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 26 页 -9-for(int i=0;i8;i+)Pword2i=getch();cout*;co
14、utendl;Pword28=0;if(strcmp(Pword1,Pword2)=0)coutnntt密码确认成功,单击任何键进入主菜单;getch();return;else num+;coutntt你输入的密码错误,请重新输入!nendl;if(num=3)system(cls);cerrnnntt对不起,你三次输入不正确nendl tt感谢你的使用,再见!endl;exit(0);六、功能测试6.1 首页:图 6-1:名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 26 页 -10-6.2储蓄卡开户页面图 6-2:6.3 主界面页面主要导航栏有:欢迎使用储蓄卡管理(存款
15、、取款、查询余额、查询历史记录、注销退出)图 6-3:名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 26 页 -11-6.4 存钱页面图 6-4:6.5 取款页面从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上。输入取款金额:图 6-5:当取款金额大于现有金额:图 6-6:名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 26 页 -12-当取款金额小于或等于现有金额:图 6-7:6.6查询余额页面图 6-8:6.7查询历史记录页
16、面图 6-9:名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 26 页 -13-6.8用户信息图 6-10:6.9注销页面从保存数据并关闭文件,状态为注销,最后关闭整个系统。图 6-11:名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 26 页 -14-七、存在的不足与对策程序存在的不足之处在于程序以文件方式储存,并且每个用户信息与用户的历史记录分别用一个文件来储存,如果这样的话一个用户就需要二个文件储存信息,那么一万个用户就需要用到二万个文件保存。这不但浪费内存而已在查找文件也会花费时间。解决的对策是使用stl 标准库或者数据库的方法进行解决,这里列举了一个用
17、 stl 标准库里面用 vector解决的例子:#include#include#include#include using namespace std;class Account public:string account;/如果你要保存 0001 这样的格式,用 string 方便double balance;/余额/自己补充数据成员friend ostream&operator(istream&i,Account&t);ostream&operator(ostream&o,const Account&t)ot.account t.balance/*自己补充各个数据成员*/(istream
18、&i,Account&t)it.accountt.balance/*自己补充各个数据成员*/;return i;int main()ifstream ifs(account.txt);vector vacc;vacc.assign(istream_iterator(ifs),istream_iterator();ifs.close();for(vector:iterator it=vacc.begin();it!=vacc.end();+it)if(it-account=0002)it-balance+=100;/余额增加 100 break;ofstream ofs(account.txt)
19、;copy(vacc.begin(),vacc.end(),ostream_iterator(ofs);return 0;通过这个例子,我们就可以从程序中输入像/account.txt里面的内容示例0001 104.7 0002 252.1 0004 4299.04 0003 723.2 八、程序源代码#include#include#include#include#include#include#include using namespace std;class Function;class User 名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 26 页 -16-publ
20、ic:void get(User&);friend class Function;ostream&print(ostream&os);/friend ostream&operator(istream&i,User&u);void PassWord();bool Login(User&);void SaveFile(User&);vector StrFunction;User()User(int A,string N,int F,string I,string Ad,int T):Accout(A),Name(N),Fmoney(F),ID(I),Address(Ad),Telephone(T)
21、private:int Accout;string Name;int Fmoney;string ID;string Address;int Telephone;char Pword19;char Pword29;class Function public:void Saving(User&);void Drawing(User&);void Balance(User&);void Record(User&);private:int SaveAndDrawMoney;void Function:Saving(User&u)system(cls);coutnnntt*nendl;coutSave
22、AndDrawMoney;u.Fmoney+=SaveAndDrawMoney;strstream ss;string str2;名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 26 页 -17-ssstr2;string frist=Record+str2+.txt;const char*RecordFile=frist.c_str();ofstream outfile(RecordFile,ios:out|ios:app);outfilestr1SaveAndDrawMoneyendl;outfile.close();outfile.clear();coutnntt操作成功
23、,单击任何键返回主菜单!;getch();void Function:Drawing(User&u)system(cls);coutnnntt*nendl;couttt请输入取款金额:;string str1(ntt现取RMB 钞-);string str2;int k=0;while(kSaveAndDrawMoney;u.Fmoney-=SaveAndDrawMoney;if(u.Fmoney=0)system(cls);coutnnntt正在出炒,请稍等!endl;strstream ss;ssstr2;string frist=Record+str2+.txt;const char*R
24、ecordFile=frist.c_str();ofstream outfile(RecordFile,ios:out|ios:app);outfilestr1SaveAndDrawMoney=3)system(cls);名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 26 页 -18-cerrnnntt很抱歉,你重复输入错误多次endl ntt正在退卡中 endl;exit(0);system(cls);u.Fmoney+=SaveAndDrawMoney;cerrnnntt对不起,你输入的金额超出有效金额。endl ntt 请重新输入:;coutnntt操作成功,单击任何键
25、返回主菜单!;getch();void Function:Balance(User&u)system(cls);coutnnntt*nendl;couttt你当前的余额是:;coutttu.Fmoneyendl;coutntt*nendl;coutntt操作成功,单击任何键返回主菜单!;getch();void Function:Record(User&u)string str1,str2;system(cls);coutnnntt*nendl;couttt摘要币种钞汇存/取款金额 endl;strstream ss;ssstr2;string frist=Record+str2+.txt;c
26、onst char*RecordFile=frist.c_str();ifstream infile(RecordFile,ios:in);if(!infile)coutntt没有任何历史记录!endl;getch();return;while(!infile.eof()名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 26 页 -19-getline(infile,str1);coutnttstr1endl;coutntt*nendl;coutntt操作成功,单击任何键返回主菜单!;getch();ostream&User:print(ostream&os)/mark syst
27、em(cls);osnnntt*nendl;osntt用户卡号:Accoutendl;osntt姓名:Name endl;osntt账户金额:Fmoneyendl;osntt身份证号:IDendl;osntt地址:Address endl;osntt联系电话:Telephone endl;osntt密码:Pword1endl;osntt*nendl;coutntt操作成功,单击任何键返回主菜单!;getch();return os;void User:SaveFile(User&u)int filename=u.Accout;string frist;string last(.txt);str
28、stream ss;ssfrist;frist+=last;const char*UserID=frist.c_str();ofstream outfile(UserID,ios:out|ios:trunc);/outfile(*this);outfileAccout Name Fmoney ID Address Telephone Pword1endl;outfile.close();bool User:Login(User&u)int acc;string pwd;coutntt登陆用户:endl;名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 26 页 -20-couta
29、cc;coutpwd;int filename=acc;string frist;string last(.txt);strstream ss;ssfrist;frist+=last;const char*UserID=frist.c_str();ifstream infile(UserID,ios:in);while(infile (*this)if(u.Accout=acc)string str;str=Pword1;if(str=pwd)return true;return false;/*ostream&operator(ostream&o,const User&u)ou.Accout
30、 u.Name u.Fmoney u.ID u.Address u.Telephone u.Pword1(istream&i,User&u)iu.Accout u.Name u.Fmoney u.ID u.Address u.Telephone u.Pword1;return i;void User:PassWord()int num=0;名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 26 页 -21-while(num3)coutntt请输入位储蓄密码:;for(int i=0;i8;i+)Pword1i=getch();cout*;Pword18=0;coutendl;c
31、outntt请再一次确认密码:;for(int i=0;i8;i+)Pword2i=getch();cout*;coutendl;Pword28=0;if(strcmp(Pword1,Pword2)=0)coutnntt密码确认成功,单击任何键进入主菜单;getch();return;else num+;coutntt你输入的密码错误,请重新输入!nendl;if(num=3)system(cls);cerrnnntt对不起,你三次输入不正确nendl tt感谢你的使用,再见!endl;exit(0);void User:get(User&u)system(cls);coutnnntt请输入用
32、户信息:nendl;couttt*nendl;coutAccout;coutName;coutFmoney;coutID;coutAddress;coutTelephone;u.PassWord();coutntt*nendl;void Sign()system(cls);coutnnnnnnttt谢谢您使用银行管理系统t nnendl;couttt*nendl;couttt 姓名:吴梦瑶nn tt 班级:计算机计科 2班nn tt 学号:1150311036nnendl;coutntt 已经成功退出 endl ntt 欢迎你的光临!endl;char custom(User&u)char x
33、;int k=0;system(cls);coutnnnttn ttn tt欢迎使用储蓄管理系统n ttn tt请用户在使用前选择开户:n ttn tt请选择:n tt1:注册开户n tt2:用户登录n tt其他:退出n ttn ttn ttnendl;coutx;if(x=1)u.get(u);else if(x=2)while(k3)名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 26 页 -23-if(u.Login(u)/判断登陆是否成功 return 0;else system(cls);cerrnnnttt输入有误!nendl ttt请重新输入:=3)system(
34、cls);cerrnnntt对不起,你三次输入不正确nendl ntt感谢你的使用,再见!nendl;exit(0);else Sign();exit(0);return 0;char menu()int k=0;char a3,c,i;system(cls);coutnnntt 主菜单nn;couttt*n tt*n tt*n tt*操作方式:*n tt*n tt*1.存款2.取款*n tt*n tt*3.查询余额4.查询历史记录*n tt*n tt*5.用户信息6.保存并退出*n tt*nendl;while(k3)couta;if(strlen(a)=1)名师资料总结-精品资料欢迎下载-
35、名师精心整理-第 24 页,共 26 页 -24-for(i=1;i=6;i+)c=i;if(c=a0)return c;else system(cls);cerrnnnttt输入有误!nendl ttt请重新输入:=3)system(cls);cerrnnntt对不起,你三次输入不正确nendl ntt感谢你的使用,再见!nendl;exit(0);return c;char Choose(User&u,Function&F)char c=menu();while(c!=6)switch(c)case 1:F.Saving(u);c=menu();break;case 2:F.Drawing
36、(u);c=menu();break;case 3:F.Balance(u);c=menu();break;case 4:F.Record(u);c=menu();break;case 5:u.print(cout);c=menu();break;u.SaveFile(u);Sign();return 0;int main()User u;名师资料总结-精品资料欢迎下载-名师精心整理-第 25 页,共 26 页 -25-Function F;vector FunctionUser;custom(u);Choose(u,F);名师资料总结-精品资料欢迎下载-名师精心整理-第 26 页,共 26 页 -