银行账户管理系统设计说明书45289.docx
*实践教学* 兰州理工工大学计算机与通通信学院院2011年年秋季学学期 面面向对象象 课程程设计题 目: 银行行账户管管理系统统 专业班级:计算机机科学与与技术四四班姓 名: 卢文雅雅 学 号: 11024404444 指导教师: 朱红蕾蕾 成 绩: 目 录录摘要 11 一系统总总体框架架 2二模块设设计与分分析 3三类的设设计与分分析 44四特色算算法分析析 5五功能测测试 77设计总结 11参考文献 12致 谢 13附 录 14摘要本文详细介介绍了银银行账户户管理系统程程序的设设计与实实现,该该程序具具有系统统实现的的主要有有储蓄卡卡开户管管理、存存取款管管理、用用户查询询历史数数据显示示、注销销等功能能。程序序设计语语言采用用Vissuall C+,程程序运行行平台为为Winndowws XXP。该该银行帐帐目管理理信息系系统,优优点是设设计过程程思路清清晰、模模块划分分简洁,设设计各阶阶段分工工明确。经经过实践践证明,该该划分是是合理的的,极大大得提高高了本系系统的实实现。关键词:银银行账户户管理系系统 程序序设计 CC+一.系统总总体框架架图1描述了了银行管管理系统统的主要要界面,登录录界面,注册开户,主界页面,注销退出。 银行管理系统存钱页面取款页面余额页面历史记录注销页面登录界面注册开户主界页面注销退出图1二 模块块设计与与分析2.1 登录录页面输入卡号和和密码,根根据用户户输入的的卡号和和密码,到到后台文文件查询询,若正正确则登登录成功功,并保保存卡好好信息已已备后用用。若卡号存在在和密码码不匹配配或无该该卡号已已经注销销,提示示该卡号号已存在在或已注注销,保保持界面面三次不不变等待待用户的的重新输输入。2.2 主界面面页面主要导航栏栏有:欢欢迎使用用储蓄卡卡管理(存存款、取取款、查查询余额额、查询询历史记记录、注注销退出出)2.3 储蓄卡卡开户页页面提供开户界界面,由由用户输输入新储储蓄卡的的所有信信息,将将该信息息保存到到文件中中,并将将开户金金额作为为该卡的的第一次次存款记记录存人人文件。2.4 存钱页页面从登录界面面得到卡卡号,并并提供数数据输入入界面,等等待用户户的输入入存款金金额。从从后台数数据库中中找到该该用户余余额记录录,修改改余额,并并将该存存款事件件的相应应信息写写人数据据库,同同时将存存钱的金金额显示示在页面面上。2.5 取款页页面从登录界面面得到卡卡号,并并提供数数据输入入界面,等等待用户户输入取取款金额额,如果果取款金金额大于于该用户户卡上的的余额则则不能取取款,或或者将新新的余额额写人文文件,并并将本次次取款事事件写入入文件同同时将取取钱的金金额显示示在页面面上,。2.6 查询余余额页面面从登录界面面得到卡卡好,把把该卡上上的余额额显示到到界面中中。2.7 查查询历史史记录页页面2.8 注销页页面从关闭文件件,状态态为注销销,最后后关闭整整个系统统。面得到卡号号,把该该卡在取取款页面面中,输输入取款款金额并并对取款款金额与与存款余余额进行行比较,如如果三次次都超过过的话就就输出:很抱歉歉,你重重复输入入错误多多次,在退卡卡中,如果果取款金金额小于于存款余余额的话话就执行行,并保保存记录录。的所有存款款取款查查询出来来,并显显示在页页面上。三 类的设设计与分分析1Useer 类类classs Usser 主要制制定用户户的成员员数据,并并进行登登录与保保存功能能: 表1 UUserr 类说说明表名称属性说明Accouut数据成员用户账户数数据Name数据成员用户姓名Fmoneey数据成员用户首次金金额ID数据成员用户身份证证号Addreess数据成员用户地址Telepphonne数据成员用户电话Pwordd1数据成员用户密码Pwordd2数据成员用户再一次次确认密密码Get()构造函数默认构造函函数Loginn()成员方法登录方法Passwwordd()成员方法密码验证SaveFFilee()成员方法保存数据2Funnctiion 类Functtionn 类 主主要实现现用户的的各种功功能:图1四 特色算算法分析析1.Useer类中中的PaassWWordd方法 功能:输入密密码并进进行确认认,如果果密码确确认三次次失败,则则退出系系统。 代码:void Useer:PasssWoord() innt nnum=0; whille(nnum<<3) couut<<<"nntt请输输入位储储蓄密码码:" for(intt i=0;ii<8;i+) Pwordd1ii=ggetcch();coout<<<"*" Pwwordd188=''0'' coout<<<enndl; coout<<<"nttt请请再一次次确认密密码:"" foor(iint i=00;i<<8;ii+) Pwoord22i=geetchh();couut<<<"*"" coout<<<enndl; Pwwordd288=''0'' if(sstrccmp(Pwoord11,Pwwordd2)=0) couut<<<"nnnttt密码确确认成功功,单击击任何键键进入主主菜单""retuurn ; elsee numm+; couut<<<"nntt你输输入的密密码错误误,请重重新输入入!nn"<<<enddl; if(nnum=3) sysstemm("ccls""); cerrr<<<"nnnnttt对对不起,你你三次输输入不正正确nn"<<<enddl <<<"ttt感感谢你的的使用,再再见! ""<<eendll; exiit(00); getchh(); 五. 功能能测试5.1 首首页图25.2储蓄蓄卡开户户页面 图35.3 主界面面页面主要导航栏栏有:欢欢迎使用用储蓄卡卡管理(存存款、取取款、查查询余额额、查询询历史记记录、注注销退出出)图45.4 存钱页页面 图55.5 取款页页面从登录界面面得到卡卡号,并并提供数数据输入入界面,等等待用户户输入取取款金额额,如果果取款金金额大于于该用户户卡上的的余额则则不能取取款,或或者将新新的余额额写人文文件,并并将本次次取款事事件写入入文件同同时将取取钱的金金额显示示在页面面上。输入取款金金额: 当取款金额额大于现现有金额额: 图66当取款金额额小于或或等于现现有金额额: 图75.6查询询余额页页面图85.7查询询历史记记录页面面图95.8用户户信息 图105.9注销销页面从保存数据据并关闭闭文件,状状态为注注销,最最后关闭闭整个系系统。图11设计总结通过此次课课程设计计,我发发现程序序存在的的不足之之处在于于程序以以文件方方式储存存,并且且每个用用户信息息与用户户的历史史记录分分别用一一个文件件来储存存,如果果这样的的话一个个用户就就需要二二个文件件储存信信息,那那么一万万个用户户就需要要用到二二万个文文件保存存。这不不但浪费费内存而而已在查查找文件件也会花花费时间间。重要要的是,通通过此次次课程设设计我深深刻理解解到编程程员的心心理。知知道应如如何在困困难中一一步一步步发现问问题并解解决问题题。知道道了软件件在程序序设计中中对界面面和功能能如何平平衡。参考文献1陈维维兴,林林小茶.c+面向对对象程序序设计教教程. 北京: 清华华大学出出19996.220044.2张国国峰. C+程序设设计实用用教程. 北京京: 清清华大学学出版社社,19996. 3张松松梅. C+语言教教程. 电子科科技大学学出版社社,19993. 4阎龙龙. CC程序员员的C+指南南. 北北京航空空航天大大学出版版社,119922.5王博博. 面面向对象象的建模模、设计计技术与与方法. 北京京希望电电脑公司司,19990. 致 谢首先感谢我我的指导导老师朱朱红蕾,她她在我的的课设中中提出了了指导性性的方案案和框架,并指导导我阅读读相关资资料和书书籍,使使我在不不熟悉的的领域中中仍能迅迅速掌握握新技术术。 在这三三周的面面向对象象课程设设计中,对课本本中所学学的知识识进一步步理解和和掌握,学会了如何何把学到到的知识识用于解解决实际际问题,锻炼了了自己动动手的能能力。在课程设计计时遇到到了很多多的问题题,在老老师的帮帮助,和和对各种种资料的的查阅中中,将问问题解决决,培养养了我自自主动手手,独立立研究的的能力,为为今后在在学习工工作中能能更好的的发展打打下了坚坚实的基基础。附录:程序序源代码码#inclludee<ioostrreamm>#inclludee<fsstreeam>>#inclludee<sttrinng>#inclludee<veectoor>#inclludee<allgorrithhm>#inclludee<sttrsttreaam>#inclludee<coonioo.h>>usingg naamesspacce sstd;classs Fuuncttionn;classs Usserpubliic: vvoidd geet(UUserr& );frieend claass Funnctiion; oostrreamm &pprinnt(oostrreamm &oos);/frriennd oostrreamm & opeerattor<<<(oostrreamm & o, connst Useer && u); ffrieend isttreaam && opperaatorr>>(isttreaam && i, Usser & uu);voidd PaassWWordd();booll Looginn(Usser &);voidd SaaveFFilee(Usser &); vvecttor<<strringg> SStrFFuncctioon;Userr()Userr(innt AA,sttrinng NN,innt FF,sttrinng II,sttrinng AAd,iint T):Acccoutt(A),Naame(N),Fmooneyy(F),IDD(I),Adddreess(Ad),Teelepphonne(TT)privaate: intt Acccouut; strringg Naame; intt Fmmoneey; strringg IDD; strringg Adddreess; intt Teelepphonne; chaar Pwoord119; chaar PPworrd29;classs Fuuncttionnpubliic: vvoidd Saavinng(UUserr &);voidd Drrawiing(Useer &&);voidd Baalannce(Useer &&);voidd Reecorrd(UUs priivatte:int SaaveAAndDDrawwMonney;void Funnctiion:Saavinng(UUserr &uu) systtem("clls"); coutt<<""nnnntt*nn"<<<enddl; coutt<<""tt请输输入存款款金额:" striing strr1(""nttt现存RMMB 钞+ ""); cin>>>SaaveAAndDDrawwMonney; u.Fmmoneey+=SavveAnndDrrawMMoneey; sttrsttreaam sss; sttrinng sstr22;ss<<<u.AAccoout;ss>>>strr2; strringg frristt="RRecoord""+sttr2 +".txtt" consst ccharr *RRecoordFFilee=frristt.c_strr(); ofsttreaam ooutffilee(ReecorrdFiile,ioss:oout|ioss:aapp); outffilee<<sstr11<<SSaveeAnddDraawMooneyy<<eendll; outffilee.cllosee(); outffilee.cllearr(); coutt<<""nnttt操操作成功功,单击击任何键键返回主主菜单!" getcch();void Funnctiion:Drrawiing(Useer &&u) sysstemm("ccls""); couut<<<"nnnnttt*n"<<<enndl; couut<<<"ttt请请输入取取款金额额:" strringg sttr1("nntt现取取RMBB 钞钞- ""); strringg sttr2; intt k=0; whiile(k<=3) cin>>>SaaveAAndDDrawwMonney;u.Fmmoneey -=SaaveAAndDDrawwMonney; iff(u.Fmooneyy>=00) sysstemm("ccls"");coutt<<""nnnntt正在在出炒,请请稍等!"<<<enddl;strsstreeam ss;ss<<<u.AAccoout;ss>>>strr2;striing friist="Reecorrd"+strr2 +".ttxt"" cconsst ccharr *RRecoordFFilee=frristt.c_strr(); oofsttreaam ooutffilee(Reeco outtfille<<<strr1<<<SavveAnndDrraw Monney<<<enndl; ooutffilee.cllosee(); ooutffilee.cllearr();breaak; elsse k+; iff(k>>=3) syysteem(""clss"); ceerr<<<"nnnnttt很抱歉歉,你重重复输入入错误多多次"<<<enndl <<<"nntt正在在退卡中中""<<eendll; exxit(0); syysteem(""clss"); u.Fmooneyy +=SavveAnndDrrawMMoneey; ceerr<<<"nnnnttt对不起起,你输输入的金金额超出出有效金金额。""<<eendll <<<"nttt 请重新新输入: "" couut<<<"nnnttt操作成成功,单单击任何何键返回回主菜单单!" gettch();void Funnctiion:Baalannce(Useer &&u) sysstemm("ccls""); couut<<<"nnnnttt*n"<<<enndl; couut<<<"ttt你你当前的的余额是是:" couut<<<"ttt""<<uu.Fmmoneey<<<enddl; couut<<<"nntt*nn"<<<enddl; couut<<<"nntt操作作成功,单单击任何何键返回回主菜单单!" gettch();void Funnctiion:Reecorrd(UUserr &uu) striing strr1,sstr22;systtem("clls");coutt<<""nnnntt*nn"<<<enddl;coutt<<""tt摘要要币种钞钞汇存/取款金金额"<<<enndl;strsstreeam ss;ss<<<u.AAccoout;ss>>>strr2;striing friist="Reecorrd"+strr2 +".ttxt"" cconsst ccharr *RRecoordFFilee=frristt.c_strr();ifsttreaam iinfiile(ReccorddFille,iios:inn);if(!inffilee) couut<<<"nntt没有有任何历历史记录录!"<<<enndl; gettch(); retturnn ;whille(!inffilee.eoof() geetliine (innfille,sstr11); coout<<<"nttt""<<sstr11<<eendll;coutt<<""nttt*n""<<eendll;coutt<<""nttt操作成成功,单单击任何何键返回回主菜单单!"getcch();ostreeam &Usser:prrintt(osstreeam &oss) /maarksysttem("clls"); os<<<"nnnnttt*n"<<<enndl; os<<<"nntt用户户卡号:"<<<Acccoutt<<eendll; os<<<"nntt姓名名: ""<<NNamee <<<enddl; os<<<"nntt账户户金额:"<<<Fmooneyy<<eendll; os<<<"nntt身份份证号:"<<<ID<<<enndl; os<<<"nntt地址址: ""<<AAddrresss <<<enddl; os<<<"nntt联系系电话:"<<<Tellephhonee <<<enddl; os<<<"nntt密码码: ""<<PPworrd1<<<enndl; os<<<"nntt*nn"<<<enddl; coutt<<""nttt操作成成功,单单击任何何键返回回主菜单单!" getcch(); retuurn os;void Useer:SavveFiile(Useer &&u) iint fillenaame=u.AAccoout; sstriing friist; sstriing lasst("".txxt"); sstrsstreeam ss; sss<<<fillenaame; sss>>>friist;frisst+=lasst; cconsst ccharr *UUserrID=friist.c_sstr();rdFille,iios:ouut|iio ofsstreeam outtfille(UUserrID,ioss:oout |ioos:truunc );/ouutfiile<<<(*thiis); ouutfiile<<<Acccouut<<<' ''<<NNamee<<'' '<<<Fmmoneey<<<' ''<<IID<<<' ''<<AAddrresss<<'' '<<<Teelepphonne<<<' ''<<PPworrd1<<<enndl; ouutfiile.cloose();bool Useer:Loggin(Useer &&u) iint accc; sstriing pwdd; ccoutt<<""nttt登陆用用户:""<<eendll; ccoutt<<""tt卡号号:" ccin>>>accc; ccoutt<<""tt密码码:" ccin>>>pwwd; iint fillenaame=accc; sstriing friist; sstriing lasst("".txxt"); sstrsstreeam ss; sss<<<fillenaame; sss>>>friist;frisst+=lasst; cconsst ccharr *UUserrID=friist.c_sstr();ifsttreaam inffilee(UsserIID,iios:inn ); wwhille (inffilee >>> (*thiis) iif (u.AAccoout = accc ) sstriing strr; sstr=Pwoord11;iff(sttr= pwwd) rretuurn truue; rretuurn fallse;/*osttreaam && opperaatorr<<(osttreaam && o, coonstt Usser & uu) oo<<uu.Acccouut <<<' '<<<u.Namme<<<' '<<<u.FFmonney<<<' ' <<uu.IDD<<'' '' <<<u.AAddrresss <<<' '<<<u.TTeleephoone<<<' ' <<uu.Pwwordd1 <<<enndl; rretuurn o;*/istreeam & ooperratoor>>>(isstreeam & ii, UUserr & u) ii>>uu.Acccouut >>>u.Namme >>>u.Fmooneyy >>>u.IID >>>u.Adddresss >>>u.Tellephhonee >>>u.PPworrd1 ; rretuurn i;void Useer:PasssWoord() innt nnum=0; whille(nnum<<3) couut<<<"nntt请输输入位储储蓄密码码:" for(intt i=0;ii<8;i+) Pwwordd1ii=ggetcch();coout<<<"*" Pwwordd188=''0'' coout<<<enndl; coout<<<"nttt请请再一次次确认密密码:"" foor(iint i=00;i<<8;ii+) Pwoord22i=geetchh();couut<<<"*"" coout<<<enndl; Pwwordd288=''0'' if(sstrccmp(Pwoord11,Pwwordd2)=0) couut<<<"nnnttt密码确确认成功功,单击击任何键键进入主主菜单"" ggetcch(); retuurn ; elsee numm+; couut<<<"nntt你输输入的密密码错误误,请重重新输入入!nn"<<<enddl; if(nnum=3) sysstemm("ccls""); cerrr<<<"nnnnttt对对不起,你你三次输输入不正正确nn"<<<enddl <<<"ttt感感谢你的的使用,再再见! ""<<eendll; exiit(00); void Useer:gett(Usser&& u)systtem("clls"); coout<<<"nnnnttt请输入入用户信信息:n"<<<enndl; coout<<<"ttt*n""<<eendll; coout<<<"nttt卡卡号:"" ciin>>>Acccoutt; coout<<<"nttt姓姓名:"" ciin>>>Namme; coout<<<"nttt账账户金额额:" ciin>>>Fmooneyy; coout<<<"nttt身身份证号号:" ciin>>>ID; coout<<<"nttt地地址:"" ciin>>>Adddresss; coout<<<"nttt联联系电话话:" ciin>>>Tellephhonee; u.PasssWoord(); coout<<<"nttt*n"<<<enndl;void Siggn()systtem("clls");coutt<<""nnnnnnnntttt谢谢您您使用银银行管理理系统t nnn"<<<enddl;coutt<<""tt*nn"<<<enddl;coutt<<""tt 姓名名: 谢道道尔 nnn"" <<""tt 班级级: 计算算机班nnn" <<""tt 学号号: 2200771022142217nnn"<<<enddl; couut<<<"nntt 已经经成功退退出"<<<enndl <<<"nntt 欢迎迎你的光光临!"" <<<enddl;char cusstomm(Usser &u) chhar x;int k=00;systtem("clls");cout<<<"nnnntttn""<<""tt n""<<""tt 欢欢迎使用用储蓄管管理系统统 n""<<""tt n""<<""tt 请请用户在在使用前前选择开开户: n""<<""tt n""<<""tt 请请选择: n""<<""tt 1:注注册开户户 n""<<""tt 2:用用户登录录 n""<<""tt 其他:退出 n""<<""tt n""<<""tt n""<<""ttnn"<<<enddl; coout<<<"nttt请请选择操操作方式式:" ciin>>>x; iff(x='11')