金融保险银行账户管理系统设计说明书.docx
- 文档编号:5579323
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:20
- 大小:29.48KB
金融保险银行账户管理系统设计说明书.docx
《金融保险银行账户管理系统设计说明书.docx》由会员分享,可在线阅读,更多相关《金融保险银行账户管理系统设计说明书.docx(20页珍藏版)》请在冰豆网上搜索。
金融保险银行账户管理系统设计说明书
(金融保险)银行账户管理系统设计说明书
*******************
实践教学
*******************
兰州理工大学
计算机和通信学院
2011年秋季学期
面向对象课程设计
题目:
银行账户管理系统
专业班级:
计算机科学和技术四班
姓名:
卢文雅
学号:
10240444
指导教师:
朱红蕾
成绩:
摘要1
.系统总体框架2
.模块设计和分析3
.类的设计和分析4
.特色算法分析5
.功能测试7
设计总结11
参考文献12
致谢13
附录14
摘要
本文详细介绍了银行账户管理系统程序的设计和实现,该程序具有系统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功能。
程序设计语言采用VisualC++,程序运行平台为WindowsXP。
该银行帐目管理信息系统,优点是设计过程思路清晰、模块划分简洁,设计各阶段分工明确。
经过实践证明,该划分是合理的,极大得提高了本系统的实现。
关键词:
银行账户管理系统程序设计C++
.系统总体框架
图1描述了银行管理系统的主要界面,登录界面,注册开户,主界页面,注销退出。
图1
.模块设计和分析
2.1登录页面
输入卡号和密码,根据用户输入的卡号和密码,到后台文件查询,若正确则登录成功,且保存卡好信息已备后用。
若卡号存在和密码不匹配或无该卡号已经注销,提示该卡号已存在或已注销,保持界面三次不变等待用户的重新输入。
2.2主界面页面
主要导航栏有:
欢迎使用储蓄卡管理(存款、取款、查询余额、查询历史记录、注销退出)
2.3储蓄卡开户页面
提供开户界面,由用户输入新储蓄卡的所有信息,将该信息保存到文件中,且将开户金额作为该卡的第壹次存款记录存人文件。
2.4存钱页面
从登录界面得到卡号,且提供数据输入界面,等待用户的输入存款金额。
从后台数据库中找到该用户余额记录,修改余额,且将该存款事件的相应信息写人数据库,同时将存钱的金额显示在页面上。
2.5取款页面
从登录界面得到卡号,且提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,且将本次取款事件写入文件同时将取钱的金额显示在页面上,。
2.6查询余额页面
从登录界面得到卡好,把该卡上的余额显示到界面中。
2.7查询历史记录页面
2.8注销页面
从关闭文件,状态为注销,最后关闭整个系统。
面得到卡号,把该卡在取款页面中,输入取款金额且对取款金额和存款余额进行比较,如果三次都超过的话就输出:
很抱歉,你重复输入错误多次,在退卡中……,如果取款金额小于存款余额的话就执行,且保存记录。
的所有存款取款查询出来,且显示在页面上。
类的设计和分析
1.User类
classUser主要制定用户的成员数据,且进行登录和保存功能:
表1User类说明表
名称
属性
说明
Accout
数据成员
用户账户数据
Name
数据成员
用户姓名
Fmoney
数据成员
用户首次金额
ID
数据成员
用户身份证号
Address
数据成员
用户地址
Telephone
数据成员
用户电话
Pword1
数据成员
用户密码
Pword2
数据成员
用户再壹次确认密码
Get()
构造函数
默认构造函数
Login()
成员方法
登录方法
Password()
成员方法
密码验证
SaveFile()
成员方法
保存数据
2.Function类
Function类主要实现用户的各种功能:
图1
特色算法分析
1.User类中的PassWord方法
功能:
输入密码且进行确认,如果密码确认三次失败,则退出系统。
代码:
voidUser:
:
PassWord(){
intnum=0;
while(num<3){
cout<<"\n\t\t请输入位储蓄密码:
";
for(inti=0;i<8;i++){
Pword1[i]=getch();cout<<"*";}
Pword1[8]='\0';
cout< cout<<"\n\t\t请再壹次确认密码: "; for(inti=0;i<8;i++) {Pword2[i]=getch();cout<<"*";} cout< Pword2[8]='\0'; if(strcmp(Pword1,Pword2)==0){ cout<<"\n\n\t\t密码确认成功,单击任何键进入主菜单"; return; } else{ num++; cout<<"\n\t\t你输入的密码错误,请重新输入! \n"< } if(num==3){ system("cls"); cerr<<"\n\n\n\t\t对不起,你三次输入不正确\n"< <<"\t\t感谢你的使用,再见! "< exit(0); } getch(); } .功能测试 5.1首页 图2 5.2储蓄卡开户页面 图3 5.3主界面页面 主要导航栏有: 欢迎使用储蓄卡管理(存款、取款、查询余额、查询历史记录、注销退出) 图4 5.4存钱页面 图5 5.5取款页面 从登录界面得到卡号,且提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,且将本次取款事件写入文件同时将取钱的金额显示在页面上。 输入取款金额: 当取款金额大于现有金额: 图6 当取款金额小于或等于现有金额: 图7 5.6查询余额页面 图8 5.7查询历史记录页面 图9 5.8用户信息 图10 5.9注销页面 从保存数据且关闭文件,状态为注销,最后关闭整个系统。 图11 设计总结 通过此次课程设计,我发现程序存在的不足之处在于程序以文件方式储存,且且每个用户信息和用户的历史记录分别用壹个文件来储存,如果这样的话壹个用户就需要二个文件储存信息,那么壹万个用户就需要用到二万个文件保存。 这不但浪费内存而已在查找文件也会花费时间。 重要的是,通过此次课程设计我深刻理解到编程员的心理。 知道应如何在困难中壹步壹步发现问题且解决问题。 知道了软件在程序设计中对界面和功能如何平衡。 参考文献 [1]陈维兴,林小茶.c++面向对象程序设计教程.北京: 清华大学出1996.2004. [2]张国峰.C++程序设计实用教程.北京: 清华大学出版社,1996. [3]张松梅.C++语言教程.电子科技大学出版社,1993. [4]阎龙.C程序员的C++指南.北京航空航天大学出版社,1992. [5]王博.面向对象的建模、设计技术和方法.北京希望电脑X公司,1990. 致谢 首先感谢我的指导老师朱红蕾,她在我的课设中提出了指导性的方案和框 架,且指导我阅读相关资料和书籍,使我在不熟悉的领域中仍能迅速掌握新技术。 在这三周的面向对象课程设计中,对课本中所学的知识进壹步理解和掌握, 学会了如何把学到的知识用于解决实际问题,锻炼了自己动手的能力。 在课程设计时遇到了很多的问题,在老师的帮助,和对各种资料的查阅中,将问题解决,培养了我自主动手,独立研究的能力,为今后在学习工作中能更好的发展打下了坚实的基础。 附录: 程序源代码 #include #include #include #include #include #include #include usingnamespacestd; classFunction; classUser { public: voidget(User&); friendclassFunction; ostream&print(ostream&os); //friendostream&operator<<(ostream&o,constUser&u); friendistream&operator>>(istream&i,User&u); voidPassWord(); boolLogin(User&); voidSaveFile(User&); vector User(){} User(intA,stringN,intF,stringI,stringAd,intT): Accout(A),Name(N),Fmoney(F),ID(I),Address(Ad),Telephone(T){} private: intAccout; stringName; intFmoney; stringID; stringAddress; intTelephone; charPword1[9]; charPword2[9]; }; classFunction { public: voidSaving(User&); voidDrawing(User&); voidBalance(User&); voidRecord(Usprivate: intSaveAndDrawMoney; }; voidFunction: : Saving(User&u) { system("cls"); cout<<"\n\n\n\t\t*********************************************\n"< cout<<"\t\t请输入存款金额: "; stringstr1("\n\t\t现存RMB钞+"); cin>>SaveAndDrawMoney; u.Fmoney+=SaveAndDrawMoney; strstreamss; stringstr2; ss< ss>>str2; stringfrist="Record"+str2+".txt"; constchar*RecordFile=frist.c_str(); ofstreamoutfile(RecordFile,ios: : out|ios: : app); outfile< outfile.close(); outfile.clear(); cout<<"\n\n\t\t操作成功,单击任何键返回主菜单! "; getch(); } voidFunction: : Drawing(User&u) { system("cls"); cout<<"\n\n\n\t\t*********************************************\n"< cout<<"\t\t请输入取款金额: "; stringstr1("\n\t\t现取RMB钞-"); stringstr2; intk=0; while(k<=3) { cin>>SaveAndDrawMoney; u.Fmoney-=SaveAndDrawMoney; if(u.Fmoney>=0) { system("cls"); cout<<"\n\n\n\t\t正在出炒,请稍等! "< strstreamss; ss< ss>>str2; stringfrist="Record"+str2+".txt"; constchar*RecordFile=frist.c_str(); ofstreamoutfile(Recooutfile< outfile.close(); outfile.clear(); break; } else { k++; if(k>=3) { system("cls"); cerr<<"\n\n\n\t\t很抱歉,你重复输入错误多次"< <<"\n\t\t正在退卡中……"< exit(0); } system("cls"); u.Fmoney+=SaveAndDrawMoney; cerr<<"\n\n\n\t\t对不起,你输入的金额超出有效金额。 "< <<"\n\t\t请重新输入: "; } } cout<<"\n\n\t\t操作成功,单击任何键返回主菜单! "; getch(); } voidFunction: : Balance(User&u) { system("cls"); cout<<"\n\n\n\t\t*********************************************\n"< cout<<"\t\t你当前的余额是: "; cout<<"\t\t"< cout<<"\n\t\t*********************************************\n"< cout<<"\n\t\t操作成功,单击任何键返回主菜单! "; getch(); } voidFunction: : Record(User&u) { stringstr1,str2; system("cls"); cout<<"\n\n\n\t\t*********************************************\n"< cout<<"\t\t摘要币种钞汇存/取款金额"< strstreamss; ss< ss>>str2; stringfrist="Record"+str2+".txt"; constchar*RecordFile=frist.c_str(); ifstreaminfile(RecordFile,ios: : in); if(! infile) { cout<<"\n\t\t没有任何历史记录! "< getch(); return; } while(! infile.eof()) { getline(infile,str1); cout<<"\n\t\t"< } cout<<"\n\t\t*********************************************\n"< cout<<"\n\t\t操作成功,单击任何键返回主菜单! "; getch(); } ostream&User: : print(ostream&os)//mark { system("cls"); os<<"\n\n\n\t\t*********************************************\n"< os<<"\n\t\t用户卡号: "< os<<"\n\t\t姓名: "< os<<"\n\t\t账户金额: "< os<<"\n\t\t身份证号: "< os<<"\n\t\t地址: "< os<<"\n\t\t联系电话: "< os<<"\n\t\t密码: "< os<<"\n\t\t*********************************************\n"< cout<<"\n\t\t操作成功,单击任何键返回主菜单! "; getch(); returnos; } voidUser: : SaveFile(User&u) { intfilename=u.Accout; stringfrist; stringlast(".txt"); strstreamss; ss< ss>>frist; frist+=last; constchar*UserID=frist.c_str(); rdFile,ios: : out|ioofstreamoutfile(UserID,ios: : out|ios: : trunc); //outfile<<(*this); outfile< outfile.close(); } boolUser: : Login(User&u) { intacc; stringpwd; cout<<"\n\t\t登陆用户: "< cout<<"\t\t卡号: "; cin>>acc; cout<<"\t\t密码: "; cin>>pwd; intfilename=acc; stringfrist; stringlast(".txt"); strstreamss; ss< ss>>frist; frist+=last; constchar*UserID=frist.c_str(); ifstreaminfile(UserID,ios: : in); while(infile>>(*this)) { if(u.Accout==acc) { stringstr; str=Pword1; if(str==pwd) { returntrue; } } } returnfalse; } /*ostream&operator<<(ostream&o,constUser&u) { o< returno; }*/ istream&operator>>(istream&i,User&u) { i>>u.Accout>>u.Name>>u.Fmoney>>u.ID>>u.Address>>u.Telephone>>u.Pword1; returni; } voidUser: : PassWord() { intnum=0; while(num<3) { cout<<"\n\t\t请输入位储蓄密码: "; for(inti=0;i<8;i++) {Pword1[i]=getch();cout<<"*";} Pword1[8]='\0'; cout< cout<<"\n\t\t请再壹次确认密码: "; for(inti=0;i<8;i++) {Pword2[i]=getch();cout<<"*";} cout< Pword2[8]='\0'; if(strcmp(Pword1,Pword2)==0) { cout<<"\n\n\t\t密码确认成功,单击任何键进入主菜单"; getch(); return; } else { num++; cout<<"\n\t\t你输入的密码错误,请重新输入! \n"< } if(num==3) { system("cls"); cerr<<"\n\n\n\t\t对不起,你三次输入不正确\n"< <<"\t\t感谢你的使用,再见! "< exit(0); } } } voidUser: : get(User&u) { system("cls"); cout<<"\n\n\n\t\t请输入用户信息: \n"< cout<<"\t\t*********************************************\n"< cout<<"\n\t\t卡号: "; cin>>Accout; cout<<"\n\t\t姓名: "; cin>>Name; cout<<"\n\t\t账户金额: "; cin>>Fmoney; cout<<"\n\t\t身份证号: "; cin>>ID; cout<<"\n\t\t地址: "; cin>>Address; cout<<"\n\t\t联系电话: "; cin>>Telephone; u.PassWord(); cout<<"\n\t\t*********************************************\n"< } voidSign() { system("cls"); cout<<"\n\n\n\n\n\n\t\t\t谢谢您使用银行管理系统\t\n\n"< cout<<"\t\t*********************************************\n"< cout<<"\t\t姓名: 谢道尔\n\n" <<"\t\t班级: 计算机班\n\n" <<"\t\t学号: 200710214217\n\n"< cout<<"\n\t\t已经成功退出"< <<"\n\t\t欢迎你的光临! "< } charcustom(User&u) { charx; intk=0; system("cls"); cout<<"\n\n\n\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※\n" <<"\t\t※※\n" <<"\t\t※欢迎使用储蓄管理系统※\n" <<"\t\t※※\n" <<"\t\t※请用户在使用前选择开户: ※\n" <<"\t\t※※\n" <<"\t\t※请选择: ※\n" <<"\t\t※1: 注册开户※\n" <<"\t\t※2: 用户登录※\n" <<"\t\t※其他: 退出※\n" <<"\t\t※※\n" <<"\t\t※※\n" <<"\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"< cout<<"\n\t\t请选择操作方式: "; cin>>x; if(x=='1') {u.get(u);} elseif(x=='2') { while(k<3) { if(u.Login(u))//判断登陆是否成功 {return0;} else { system("cls"); cerr<<"\n\n\n\t\t\t输入有误! \n"< <<"\t\t\t请重新输入: "< k++; } while(k>=3) { system("cls"); cerr<<"\n\n\n\t\t对不起,你三次输入不正确\n"< <<"\n\t\t感谢你的使用,再见! \n"< exit(0); }}} else {Sign();exit(0);} return0; } charmenu() { intk=0; chara[3],c,i; system("cls"); cout<<"\n\n\n\t\t主菜单\n\n"; cout<<"\t\t*********************************************\n" <
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 金融保险 银行 账户 管理 系统 设计 说明书