银行管理系统设计报告样板45237.docx
银行管理系统设计报告学生姓名: 宋科科超 冯冯瑞 刘刘林锋学生学号: 13308112822 13008133041300813306班级:软件件学院三三班一、 需求分析设计一个银银行账户户管理系系统,要要求实现现以下功功能:1. 实现银行行管理员员管理的的功能,要要求完成成以下功功能:11)管理理员的登登录(设设本系统统的管理理员只有有一个,管管理员信信息包括括管理员员姓名,管管理员密密码);2)修修改管理理员密码码;3)为为新用户户创建账账户信息息,账户户信息包包括用户户帐号(要要求系统统自动分分配用户户账号)、用用户账户户密码(为为用户设设置初始始密码11234456)、用用户身份份证号码码、用户户姓名、用用户地址址、帐户户金额;4)删删除需要要注销账账户的用用户的账账户信息息;5)查查询银行行信息,包包括:该该银行的的总客户户数,总总的存款款金额;6)某某个用户户的账户户信息。2. 实现客户户对自己己账户的的操作功功能,要要求完成成以下功功能:11)用户户的登录录(未登登录或登登录失败败时不能能执行用用户账户户的操作作);22)修改改帐户信信息,要要求用户户输入帐帐号,根根据用户户需要修修改除了了帐号之之外的其其余信息息;3)模模拟用户户实现存存款和取取款的功功能;44)记录录用户账账户的历历史账单单,方便便用户查查阅,如如用户何何时从银银行取款款多少等等;5)查询账账户信息息,根据据输入的的帐号查查询用户户信息、帐帐户金额额和用户户的明细细账单。3. 以上功能能要求以以分级菜菜单的形形式提供供,不同同的角色色状态得得到不同同的菜单单。二、设计思思想:定义一个用用户类ccusttomeer,数数据成员员主要有有姓名、身身份证号号码、住住址、余余额等内内容,可可供用户户操作的的功能有有开户,销销户、存存款、取取款、转转账、余余额查询询等。用用户可根根据界面面提示自自行操作作。定义一个管管理员aadmiinisstraatorr:管理员信息息包括管管理员姓姓名,管管理员密密码;管管理员的的登录;修改管管理员密密码;可可操作的的功能有有:1 为新用用户创建建账户信信息,账账户信息息包括用用户帐号号、用户户账户密密码(为为用户设设置初始始密码11234456)、用用户身份份证号码码、用户户姓名、用用户地址址、工作作单位、 帐户金额;2 删除需要注销账户的用户的账户信息;3 查询银行信息,包括:该银行的总客户数,总的存款金额;4 某个用户的账户信息。由于要实现界面的回复,所以用了大量的函数调用。在控制用户的循环操作时采用了for循环与break匹配的结构。在整体设计计上将程程序分为为四个部部分,第第一个部部分“cusstommer.h”,在这这个文件件中对所所要用到到的类ccusttomeer和aadmiinisstraatorr进行了了申明;第二个个部分“admminiistrratoor.ccpp”,在这这个文件件里定义义了管理理员,并并且实现现了管理理员对系系统的管管理功能能;第三三个部分分“cusstommer.cppp” 是对对在“ccusttomeer.hh”中所所声明的的类cuustoomerr定义了了一个实实体,也也可以说说是完成成了了帐帐户的操操作函数数;第四四个部分分“maiin.ccpp” 是主主函数mmainn(),所所在文件件,在其其中不仅仅定义了了主函数数,而且且完成了了菜单操操作函数数。简易流程图图:三测试结结果分析析与讨论论:首先进入入管理员员登陆界界面如下下:再选择管管理员相相应的服服务(11-44),管管理员注注册:然后进行管管理员登登陆服务务:修改密码服服务:第二步进入入用户界界面:进入新开账账户服务务:再进行其他他用户服服务:李强取了550000元新开户张三三预存金金额2000000元;进进行转账账服务:查询服务:李强账账户应剩剩120000元元:张三账户2230000元:新注册账户户李四 预存3000000元:进进行删账账户服务务,删除除张三:总金额查询询:测试结果完完毕退出出程序:测试过程中中的问题题及采取取的措施施:· 全局变量之之间的冲冲突?取消一一个进行行重新测测试。· 循环判定条条件的不不完整?进行分分步调试试,结合合程序的的执行结结果和目目标结果果进行修修改。· 输入数据不不正当?通过iff语句进进行取舍舍结合测测试进行行调整。· 有时还存在在语法问问题? 进行查查找结合合测试进进行调整整。四源程序序:“custtomeer.hh”#inclludee<ioostrreamm> #inccludde <<strringg> #ifnndeff CUUSTOOMERR_H #deffinee CUUSTOOMERR_H classs ccusttomeer privvatee:douublee cuustoomerr_Nuum;chaar ssecrret7;intt teest;chaar NNamee8;chaar IID330; chaar WWorkk_Grroupp800; chaar TTel_Numm200;chaar AAddrresss600; chaar ppasssworrd110; flooat Monney; publlic: voiid ssavee_mooneyy();voiid gget_monney();voiid cchannge_monney();voiid ffindd_innforr();voiid llin_monney();friiendd vooid opeen_aaccoountt();friiendd vooid savve_mmoneey();friiendd vooid gett_mooneyy();friiendd vooid chaangee_mooneyy();friiendd vooid finnd_iinfoor(); friiendd vooid dell_acccouunt();friiendd vooid linn_mooneyy(); ; classs aadmiinisstraatorr privvatee:intt Addminnisttrattor_Numm;chaar SSecrret7;chaar NNamee100;intt teest;publlic: voiid oopenn_Addminn();voiid gget_Admmin();voiid cchg_seccrett();friiendd vooid opeen_AAdmiin();friiendd vooid gett_Addminn();friiendd vooid chgg_seecreet();friiendd vooid linn_mooneyy(); ; #enddif;“admiinisstraatorr.cppp”#inclludee "ccusttomeer.hh"#inclludee<ioostrreamm>#inclludee <sstriing>> usingg naamesspacce sstd;void Admminiistrratoor();void sleect_Admmin();int AAdmiinisstraatorr_Nuum=110000; int TT=-11; /整型型变量adminnisttrattor *q1; /指针针变量 本程序序支持11个管理理员 void opeen_AAdmiin() chaar SSecrret7; chaar NNamee100; if(Admminiistrratoor_NNum=10001) coout<<<"对对不起,管管理员已已经存在在,你没没权限注注册!""<<eendll; Addminnisttrattor(); sllectt_Addminn(); reeturrn; T+; Admminiistrratoor_NNum+; qTT=nnew admminiistrratoor; couut<<<"请输输入您的的姓名:"<<<enddl; cinn>>NNamee; chaar RReseecreet77; do coout<<<"请请输入你你的密码码(6位位):""<<eendll;cinn>>SSecrret;couut<<<"请重重新输入入你的密密码:""<<eendll;cinn>>RReseecreet;if(strrcmpp(Seecreet,RReseecreet)=0)coout<<<"密密码设置置成功""<<eendll;brreakk;elssecoout<<<"你你两次输输入有误误!"<<<enndl;coout<<<"请请重新设设置密码码!"<<<enndl; whhilee(1); qTT->>Admminiistrratoor_NNum=Admminiistrratoor_NNum; forr(innt aa=0;a<110;aa+) qT->Naamea=Nammeaa; forr(innt ff=0;f<77;f+) qTT->>Seccrettf=Seecreetff; qT->ttestt=1; couut<<<"恭喜喜您,注注册成功功! 您您成为管管理员!你的账账号:""<<AAdmiinisstraatorr_Nuum<<<"要牢牢记!""<<eendll; couut<<<"您需需要继续续服务吗吗(Y/N)?"<<<enddl; chaar ccn; cinn>>ccn; forr(;ccn!='n''&&ccn!='N''&&ccn!='y''&&ccn!='Y'') coout<<<"您您刚才输输入的既既不是“Y”也不是是“N”!"<<<enndl; coout<<<"您您需要继继续服务务吗(YY/N)?"<<<enndl; ciin>>>cn; if(cn='yy'|cn='YY') Addminnisttrattor(); sllectt_Addminn(); reeturrn; if(cn='nn'|cn='NN') coout<<<"感感谢您的的使用,再再见!""<<eendll; reeturrn; void gett_Addminn()coutt<<""请输入入管理员员您的账账号:""<<eendll; intt z=0; intt cnn; chaar aa800; forr(;) ciin>>>a; cnn=attoi(a); iff(cnn!=110011) ccoutt<<""对不起起,你不不是管理理员或你你的账号号有误!"<<<enddl; ccoutt<<""您需要要继续此此服务吗吗?(YY/N)"<<<enddl; ccharr cnn; ccin>>>cnn; ffor(;cnn!=''n'&&&cnn!=''N'&&&cnn!=''y'&&&cnn!=''Y') couut<<<"您刚刚才输入入的既不不是“Y”也不是是“N”!"<<<enndl; couut<<<"您需需要继续续此服务务吗?(Y/NN)"<<<enndl; cinn>>ccn; iif(ccn='y''|ccn='Y'') gett_Addminn(); retturnn; iif(ccn='n''|ccn='N'') Admminiistrratoor(); sleect_Admmin(); retturnn; ellse zz=cnn-10001; brreakk; docouut<<<"请输输入你的的密码:"<<<enddl;chaar sser7;cinn>>sser;if(strrcmpp(seer,qqz->SSecrret)=00)brreakk;elssecoout<<<"输输入密码码有误!"<<<enddl;coout<<<"请请重新输输入!""<<eendll;whiile(1); couut<<<"管理理员登陆陆成功!"<<<enddl; couut<<<"您需需要继续续使用此此系统吗吗(Y/N)?"<<<enddl; chaar ccn1; cinn>>ccn1; forr(;ccn1!='nn'&&&cn11!=''N'&&&cnn1!='y''&&ccn1!='YY') coout<<<"您您刚才输输入的既既不是“Y”也不是是“N”!"<<<enndl; coout<<<"您您需要继继续使用用此系统统吗(YY/N)?"<<<enndl; ciin>>>cn11; if(cn11=''y'|cnn1='Y'') Addminnisttrattor(); sllectt_Addminn(); reeturrn; iff(cnn1='n''|ccn1='NN')retturnn; void chgg_seecreet()coutt<<""请输入入管理员员您的账账号:""<<eendll; intt z=0; intt cnn; chaar aa800; forr(;) ciin>>>a; cnn=attoi(a); iff(cnn!=110011) ccoutt<<""对不起起,你不不是管理理员或你你的账号号有误!"<<<enddl; ccoutt<<""您需要要继续此此服务吗吗?(YY/N)"<<<enddl; ccharr cnn; ccin>>>cnn; ffor(;cnn!=''n'&&&cnn!=''N'&&&cnn!=''y'&&&cnn!=''Y') couut<<<"您刚刚才输入入的既不不是“Y”也不是是“N”!"<<<enndl; couut<<<"您需需要继续续此服务务吗?(Y/NN)"<<<enndl; cinn>>ccn; iif(ccn='y''|ccn='Y'') gett_Addminn(); retturnn; iif(ccn='n''|ccn='N'') Admminiistrratoor(); sleect_Admmin(); retturnn; ellse zz=cnn-10001; brreakk; docouut<<<"请输输入你的的密码:"<<<enddl;chaar sser7;cinn>>sser;if(strrcmpp(seer,qqz->SSecrret)=00)brreakk;elssecoout<<<"输输入密码码有误!"<<<enddl;coout<<<"请请重新输输入!""<<eendll;whiile(1);charr SSSecrret7;do coout<<<"请请输入你你的新密密码(66位):"<<<enddl;cinn>>SSSeccrett;couut<<<"请重重新输入入你的新新密码:"<<<enddl;chaar RReseecreet77;cinn>>RReseecreet;if(strrcmpp(SSSecrret,Ressecrret)=00)coout<<<"密密码设置置成功""<<eendll;brreakk;elssecoout<<<"你你两次输输入有误误!"<<<enndl;coout<<<"请请重新设设置新密密码!""<<eendll; whhilee(1); strrcpyy(qz->Seecreet,SSSeccrett); couut<<<"您需需要继续续使用此此系统吗吗(Y/N)?"<<<enddl; chaar ccn1; cinn>>ccn1; forr(;ccn1!='nn'&&&cn11!=''N'&&&cnn1!='y''&&ccn1!='YY') coout<<<"您您刚才输输入的既既不是“Y”也不是是“N”!"<<<enndl; coout<<<"您您需要继继续使用用此系统统吗(YY/N)?"<<<enndl; ciin>>>cn11; if(cn11=''y'|cnn1='Y'') Addminnisttrattor(); sllectt_Addminn(); reeturrn; iff(cnn1='n''|ccn1='NN')retturnn;“custtomeer.ccpp”#inclludee "ccusttomeer.hh" #inccludde<iiosttreaam> #inccludde <<strringg> usingg naamesspacce sstd;void diss_meenu();void sleect_mennu();doublle ccusttomeer_NNum=100000; /用户帐帐号int ZZ=0; /变量 /指指针变量量custoomerr *pp1000000; /指针变变量 本本程序支支持1000000个用户户adminnisttrattor *Q1; /指针针变量 本程序序支持11个管理理员 voidd oppen_acccounnt() / 开户户函数 chaar ssecrret7; chaar NNamee8; chaar IID330; chaar WWorkk_Grroupp800; chaar TTel_Numm200; chaar AAddrresss600; flooat Monney(0); if(cusstommer_Numm=2200000) coout<<<"对对不起,系系统存储储空间已已满,无无法开户户,对此此带来的的不便我我们深表表歉意!"<<<enddl; diis_mmenuu(); sllectt_meenu(); reeturrn; Z+; cusstommer_Numm+; pZZ=nnew cusstommer; couut<<<"请输输入您的的姓名:"<<<enddl; cinn>>NNamee; chaar rreseecreet77; do coout<<<"请请输入你你的密码码(6位位):""<<eendll;cinn>>ssecrret;couut<<<"请重重新输入入你的密密码:""<<eendll;cinn>>rreseecreet;if(strrcmpp(seecreet,rreseecreet)=0)coout<<<"密密码设置置成功""<<eendll;brreakk;elssecoout<<<"你你两次输输入有误误!"<<<enndl;coout<<<"请请重新设设置密码码!"<<<enndl; whhilee(1); couut<<<"请输输入您的的身份证证件号码码:"<<<enndl; cinn>>IID; couut<<<"请输输入您的的单位地地址:""<<eendll; cinn>>WWorkk_Grroupp; couut<<<"请输输入您的的电话号号码:""<<eendll; cinn>>TTel_Numm; couut<<<"请输输入您的的住址:"<<<enddl; cinn>>AAddrresss; couut<<<"请输输入您的的金额(开户 ¥500.000元起):"<<<enndl; /cinn>>MMoneey;/银行行开户550元起起 chaar aa1880; forr(;) ciin>>>a1; Mooneyy=attoi(a1); iff(Mooneyy<500|MMoneey>110000000000) ccoutt<<""对不起起,您输输入的金金额不正正确。""<<eendll; ccoutt<<""(提示示消息:金额小小于500或过于于巨大。)""<<eendll; ccoutt<<""请重新新输入您您的金额额:"<<<enndl; ellse bbreaak; pZZ->>cusstommer_Numm=cuustoomerr_Nuum; forr(innt aa=0;a<88;a+) pZ->Naamea=Nammeaa; forr(innt ff=0;f<77;f+) pZZ->>seccrettf=seecreetff; forr(innt bb=0;b<330;bb+) pZ->IDDb=IDDb; forr(innt cc=0;c<880;cc+) pZ->Woork_Grooupc=Worrk_GGrouupcc; forr(innt dd=0;d<220;dd+) pZ->Teel_NNumd=Tell_Nuumdd; ffor(intt e=0;ee<600;e+) pZ->Adddreesse=Adddresssee; pZZ->>Monney=Monney; pZZ->>tesst=11; couut<<<"恭喜喜您,开开户成功功!您的的帐户为为: ""<<ccusttomeer_NNum<<<" 请牢记记"<<<enddl; couut<<<"您需需要继续续服务吗吗(Y/N)?"<<<enddl; chaar ccn; cinn>>ccn; forr(;ccn!='n''&&ccn!='N''&&ccn!='y''&&ccn!='Y'') coout<<<"您您刚才输输入的既既不是“Y”也不是是“N”!"<<<enndl; coout<<<"您您需要继继续服务务吗(YY/N)?"<<<enndl; ciin>>>cn; if(cn='yy'|cn='YY') diis_mmenuu(); sllectt_meenu();retturnn; if(cn='nn'|cn='NN') coout<<<"感感谢您的的使用,再再见!""<<eendll; reeturrn; voidd saave_monney() /存款款函数 coout<<<"请请输入您您的帐号号:"<<<enndl;int z=00;int cn; charr a80; for(;) cinn>>aa; cn=atooi(aa); if(cn<<100001|cnn>cuustoomerr_Nuum|pccn-1100000->teest=0) coout<<<"对对不起,您您输入的的帐户错错误或并并不存在在!"<<<enndl; coout<<<"您您需要继继续存款款吗?(Y/NN)"<<<enndl; chhar cn; ciin>>>cn; foor(;cn!='nn'&&&cn!='NN'&&&cn!='yy'&&&cn!='YY') ccoutt<<""您刚才才输入的的既不是是“Y”也不是是“N”!"<<<enndl; ccoutt<<""您需要要继续存存款吗?(Y/N)""<<eendll; ccin>>>cnn; iff(cnn=''y'|cnn=''Y') ssavee_mooneyy(); rretuurn; iff(cnn=''n'|cnn=''N') ddis_mennu(); sslecct_mmenuu(); rretuurn; elsse z=cn-100000;breeak;docouut<<<"请输输入你的的密码:"<<<enddl;chaar sser7;cinn>>sser;if(strrcmpp(seer,ppZ->ssecrret)=00)brreakk;elssecoout<<<"输输入密码码有误!"<<<enddl;coout<<<"请请重新输输入!""<<eendll;whiile(1);coutt<<""请输入入您存入入的金额额:"<<<enndl;int savve;for(;) cinn>>ssavee;if(savve<00) coout<<<"对对不起,您您输入的的金额错错误!""<<eendll; coout<<<"请请输入您您存入的的金额:"<<<enddl;elsse brreakk;pz->MMoneey=ppz->MMoneey+ssavee;coutt<<""存款成成功!""<<eendll;coutt<<""您需要要继续存存款吗(Y/NN)?""<<eendll; charr cnn1;cin>>>cnn1;for(;cnn1!='n''&&ccn1!='NN'&&&cn11!=''y'&&&cnn1!='Y'')couut<<<"您刚刚才输入入的既不不是“Y”也不是是“N”!"<<<enndl;couut<<<"您需需要继续续存款吗吗(Y/N)?"<<<enddl;cinn>>ccn1;if(ccn1='yy'|cn11=''Y') savve_mmoneey(); retturnn; if(ccn1='nn'|cn11=''N') diss_meenu(); sleect_mennu();retturnn; voidd geet_mmoneey() /取取款函数数 couut<<<"请输输入您的的帐号:"<<<enddl; intt z=0; intt cnn; chaar aa800; forr(;) ciin>>>a; cnn=attoi(a); iff(cnn<1000011|ccn>ccusttomeer_NNum|pcn-100000->ttestt=00) ccoutt<<""对不起起,您输输入的帐帐户错误误或并不不存在!"<<<enddl; ccoutt<<""您需要要继续取取款吗?(Y/N)""<<eendll; ccharr cnn; ccin>>>cnn; ffor(;cnn!=''n'&&&cnn!=''N'&&&cnn!=''y'&&&cnn!=''Y') couut<<<"您刚刚才输入入的既不不是“Y”也不是是“N”!"<<<enndl; couut<<<"您需需要继续续取款吗吗?(YY/N)"<<<enddl; cinn>>ccn; iif(ccn='y''|ccn='Y'') gett_mooneyy(); retturnn; iif(ccn='n''|ccn='N'') diss_meenu(); sleect_mennu(); retturnn; ellse zz=cnn-1000000; brreakk; docouut<<<"请输输入你的的密码:"<<<enddl;chaar sser7;cinn>>sser;if(strrcmpp(seer,ppZ->ssecrret)=00)brreakk;elssecoout<<<"输输入密码码有误!"<<<enddl;coout<<<"请请重新输输入!""<<eendll;whiile(1); couut<<<"请输输入您要要取出的的金额:"<<<enddl; intt geet; forr(;) ciin>>>gett; iff(geet<00) coout<<<"对对不起,你你输入的的金额不不正确!"<<<enddl;coout<<<"请请输入您您要取出出的金额额:"<<<enndl; ellse iif(gget>>pzz->>Monney) couut<<<"对不不起,您您的余额额额不足足!"<<<enndl; couut<<<"请输输入您要要取出的的金额:"<<<enddl;ellsebbreaak; pzz->>Monney=pzz->>Monney-