银行账户管理系统设计说明书.doc_第1页
银行账户管理系统设计说明书.doc_第2页
银行账户管理系统设计说明书.doc_第3页
银行账户管理系统设计说明书.doc_第4页
银行账户管理系统设计说明书.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

*实践教学* 兰州理工大学计算机与通信学院2011年秋季学期 面向对象 课程设计题 目: 银行账户管理系统 专业班级:计算机科学与技术四班姓 名: 卢文雅 学 号: 10240444 指导教师: 朱红蕾 成 绩: 目 录摘要 1 一系统总体框架 2二模块设计与分析 3三类的设计与分析 4四特色算法分析 5五功能测试 7设计总结 11参考文献 12致 谢 13附 录 14摘要本文详细介绍了银行账户管理系统程序的设计与实现,该程序具有系统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功能。程序设计语言采用Visual C+,程序运行平台为Windows XP。该银行帐目管理信息系统,优点是设计过程思路清晰、模块划分简洁,设计各阶段分工明确。经过实践证明,该划分是合理的,极大得提高了本系统的实现。关键词:银行账户管理系统 程序设计 C+一.系统总体框架图1描述了银行管理系统的主要界面,登录界面,注册开户,主界页面,注销退出。 银行管理系统存钱页面取款页面余额页面历史记录注销页面登录界面注册开户主界页面注销退出图1二 模块设计与分析2.1 登录页面输入卡号和密码,根据用户输入的卡号和密码,到后台文件查询,若正确则登录成功,并保存卡好信息已备后用。若卡号存在和密码不匹配或无该卡号已经注销,提示该卡号已存在或已注销,保持界面三次不变等待用户的重新输入。2.2 主界面页面主要导航栏有:欢迎使用储蓄卡管理(存款、取款、查询余额、查询历史记录、注销退出)2.3 储蓄卡开户页面提供开户界面,由用户输入新储蓄卡的所有信息,将该信息保存到文件中,并将开户金额作为该卡的第一次存款记录存人文件。2.4 存钱页面从登录界面得到卡号,并提供数据输入界面,等待用户的输入存款金额。从后台数据库中找到该用户余额记录,修改余额,并将该存款事件的相应信息写人数据库,同时将存钱的金额显示在页面上。2.5 取款页面从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上,。2.6 查询余额页面从登录界面得到卡好,把该卡上的余额显示到界面中。2.7 查询历史记录页面2.8 注销页面从关闭文件,状态为注销,最后关闭整个系统。面得到卡号,把该卡在取款页面中,输入取款金额并对取款金额与存款余额进行比较,如果三次都超过的话就输出:很抱歉,你重复输入错误多次,在退卡中,如果取款金额小于存款余额的话就执行,并保存记录。的所有存款取款查询出来,并显示在页面上。三 类的设计与分析1User 类class User 主要制定用户的成员数据,并进行登录与保存功能: 表1 User 类说明表名称属性说明Accout数据成员用户账户数据Name数据成员用户姓名Fmoney数据成员用户首次金额ID数据成员用户身份证号Address数据成员用户地址Telephone数据成员用户电话Pword1数据成员用户密码Pword2数据成员用户再一次确认密码Get()构造函数默认构造函数Login()成员方法登录方法Password()成员方法密码验证SaveFile()成员方法保存数据2Function 类Function 类 主要实现用户的各种功能:图1四 特色算法分析1.User类中的PassWord方法 功能:输入密码并进行确认,如果密码确认三次失败,则退出系统。 代码:void User:PassWord() int num=0; while(num3) coutntt请输入位储蓄密码:; for(int i=0;i8;i+) Pword1i=getch();cout*; Pword18=0; coutendl; coutntt请再一次确认密码:; for(int i=0;i8;i+) Pword2i=getch();cout*; coutendl; Pword28=0; if(strcmp(Pword1,Pword2)=0) coutnntt密码确认成功,单击任何键进入主菜单;return ; else num+; coutntt你输入的密码错误,请重新输入!nendl; if(num=3) system(cls); cerrnnntt对不起,你三次输入不正确nendl tt感谢你的使用,再见! endl; exit(0); getch(); 五. 功能测试5.1 首页图25.2储蓄卡开户页面 图35.3 主界面页面主要导航栏有:欢迎使用储蓄卡管理(存款、取款、查询余额、查询历史记录、注销退出)图45.4 存钱页面 图55.5 取款页面从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上。输入取款金额: 当取款金额大于现有金额: 图6当取款金额小于或等于现有金额: 图75.6查询余额页面图85.7查询历史记录页面图95.8用户信息 图105.9注销页面从保存数据并关闭文件,状态为注销,最后关闭整个系统。图11设计总结通过此次课程设计,我发现程序存在的不足之处在于程序以文件方式储存,并且每个用户信息与用户的历史记录分别用一个文件来储存,如果这样的话一个用户就需要二个文件储存信息,那么一万个用户就需要用到二万个文件保存。这不但浪费内存而已在查找文件也会花费时间。重要的是,通过此次课程设计我深刻理解到编程员的心理。知道应如何在困难中一步一步发现问题并解决问题。知道了软件在程序设计中对界面和功能如何平衡。参考文献1陈维兴,林小茶.c+面向对象程序设计教程. 北京: 清华大学出1996.2004.2张国峰. C+程序设计实用教程. 北京: 清华大学出版社,1996. 3张松梅. C+语言教程. 电子科技大学出版社,1993. 4阎龙. C程序员的C+指南. 北京航空航天大学出版社,1992.5王博. 面向对象的建模、设计技术与方法. 北京希望电脑公司,1990. 致 谢首先感谢我的指导老师朱红蕾,她在我的课设中提出了指导性的方案和框架,并指导我阅读相关资料和书籍,使我在不熟悉的领域中仍能迅速掌握新技术。 在这三周的面向对象课程设计中,对课本中所学的知识进一步理解和掌握,学会了如何把学到的知识用于解决实际问题,锻炼了自己动手的能力。在课程设计时遇到了很多的问题,在老师的帮助,和对各种资料的查阅中,将问题解决,培养了我自主动手,独立研究的能力,为今后在学习工作中能更好的发展打下了坚实的基础。附录:程序源代码#include#include#include#include#include#include#includeusing namespace std;class Function;class Userpublic: 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)private: int Accout; string Name; int Fmoney; string ID; string Address; int Telephone; char Pword19; char Pword29;class Functionpublic: void Saving(User &);void Drawing(User &);void Balance(User &);void Record(Us private:int SaveAndDrawMoney;void Function:Saving(User &u) system(cls); coutnnntt*nendl; coutSaveAndDrawMoney; u.Fmoney+=SaveAndDrawMoney; strstream ss; string str2;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操作成功,单击任何键返回主菜单!; 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 *RecordFile=frist.c_str(); ofstream outfile(Reco outfilestr1SaveAndDraw Money=3) system(cls); cerrnnntt很抱歉,你重复输入错误多次endl ntt正在退卡中endl; exit(0); system(cls); u.Fmoney +=SaveAndDrawMoney; cerrnnntt对不起,你输入的金额超出有效金额。endl ntt 请重新输入: ; coutnntt操作成功,单击任何键返回主菜单!; 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; const char *RecordFile=frist.c_str();ifstream infile(RecordFile,ios:in);if(!infile) coutntt没有任何历史记录!endl; getch(); return ;while(!infile.eof() getline (infile,str1); coutnttstr1endl;coutntt*nendl;coutntt操作成功,单击任何键返回主菜单!;getch();ostream &User:print(ostream &os) /marksystem(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); strstream ss; ssfrist;frist+=last; const char *UserID=frist.c_str();rdFile,ios:out|io 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; coutacc; 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 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; while(num3) coutntt请输入位储蓄密码:; for(int i=0;i8;i+) Pword1i=getch();cout*; Pword18=0; coutendl; coutntt请再一次确认密码:; 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请输入用户信息: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 班级: 计算机班nn tt 学号: 200710214217nnendl; coutntt 已经成功退出endl ntt 欢迎你的光临! endl;char custom(User &u) char x;int k=0;system(cls);coutnnnttntt ntt 欢迎使用储蓄管理系统 ntt ntt 请用户在使用前选择开户: ntt ntt 请选择: ntt 1:注册开户 ntt 2:用户登录 ntt 其他:退出 ntt ntt nttnendl; coutx; if(x=1) u.get(u); else if(x=2) while(k3) if(u.Login(u) /判断登陆是否成功 return 0; elsesystem(cls);cerrnnnttt输入有误!nendl ttt请重新输入:=3) system(cls); cerrnnntt对不起,你三次输入不正确nendl ntt感谢你的使用,再

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论