2015-2016学年第二学期面向对象程序设计(c++)大作业说明书学院名称:计算机与信息工程学院班级名称:14计算机科学与技术(对口)学生姓名:徐竹青学号:2014100108题目:银行账户管理系统指导教师:王汇彬起止日期:2016年4月3日至2016年4月20日计算机与信息工程学院1目录1.选题背景.....................................................................................................................................22.设计思路.....................................................................................................................................22.1设计思想...........................................................................................................................22.1.1设计内容................................................................................................................22.1.2设计要求................................................................................................................22.2功能需求............................................................................................................................22.3软硬件运行环境及开发工具............................................................................................23.过程论述.......................................................................................................................................23.1需求分析............................................................................................................................23.1.1系统功能图............................................................................................................23.1.2函数功能和说明....................................................................................................33.2程序代码分析....................................................................................................................34.结果分析.......................................................................................................................................85.结论............................................................................................................................................8参考文献...........................................................................................................................................821.选题背景随着办公自动化的迅速发展,对企事业单位信息的自动化管理提出了很高的要求。对于银行来说,由于有大量的客户信息需要处理,因此银行帐户管理系统的开发与研究有一定的实用价值。2.设计思路2.1设计思想2.1.1设计内容因本次课程设计是银行卡账户管理系统,所以本次主要内容有:最高管理员模式、管理员模式、用户模式、退出系统。2.1.2设计要求定义一个用户信息类userinformation和一个管理员类manager,程序运行时,首先进入最高管理员模式,设置一下银行管理人员的密码,设置成功后可以按4返回主菜单,进入其他界面,管理员可以进行登录、开户、挂失、销户等功能,用户可以进行取款、存款、修改密码、转账、查询操作。最后一项是退出系统功能。2.2功能需求(1)银行管理员所需的功能:如开户、销户、挂失、解锁等。(2)用户所需的功能:如存款、取款、查询余额、更改密码等。(3)对本银行已有的账户金额进行统计。(4)及时保存用户的信息,存到固定的文件里。2.3软硬件运行环境及开发工具(1)编成语言:c++语言。(2)开发环境:MicrosoftWindows7、Visualc++6.0。3.过程论述3.1需求分析3.1.1系统功能图显示整个程序所要运行的流程。如图3-1所示。3图3-1功能图3.1.2函数功能和说明各函数功能表3.2程序代码分析1.最高管理模式,界面显示如图3-1所示voiddisplay()输出用户信息voidchange_money_li()计算本息和voidchange_money()获取存款金额voidOpenAccount()开户voidCloseAccount()销户voidHookAccount(Userinformationa)用户挂失voidSaving()存款voidDrawing()取款voidTransfering()转账voidInquiring()查询voidread()创建文件E:\\银行账户管理数据.txt或从文件E:\\银行账户管理数据.txt读取信息voidwrite()将信息存入文件C:\\Users\\银行账户管理数据.txtVoidwait()返回主菜单的等待函数管理员模式用户模式退出系统银行账户管理系统开始界面最高管理模式4图3-1最高管理模式图代码如下:voidsetlixi(doublea)//设置日利率{lixi=a;cout成功设置日利率!endl;cout利率为:lixi%endl;}voidwritelixi()//保存日利率{ofstreamstuf1(E:\\高层管理数据1.txt,ios::out);stuf1setiosflags(ios::fixed)setprecision(3)lixi;stuf1.close();cout保存成功!endl;coutendl;}voidsetsui(doublea)//设置固定年息{sui=a;cout成功设置税率!endl;cout利率为:sui%endl;}voidwritesui()//保存固定年息{ofstreamstuf2(E:\\高层管理数据2.txt,ios::out);stuf2setiosflags(ios::fixed)setprecision(3)sui;stuf2.close();cout保存成功!endl;coutendl;}voidsetmanagercode(stringa)//设置管理员密码{managercode=a;cout密码设置成功!endl;}2.管理员模式,运行界面如下图3-2所示。5图3-2管理员模式图部分功能实现代码如下:(1)在管理员模式中,实现管理员为用户开户的功能,具体代码如下:voidOpenAccount(Userinformationa){B[number+sum]=a;sum++;cout开户成功!endl;coutendl;}(2)在管理员模式中,实现管理员为用户账户挂失的功能,具体代码如下:voidHookAccount(Userinformationa){charc;intflag=0;for(inti=0;isum+number;i++){if(B[i].get_userNum()==a.get_userNum()){if(B[i].get_status()==HOOK){cout该用户已挂失!endl;coutendl;break;}else{coutendl;B[i].display();cout确认-Y/取消-N:;6cinc;if(c=='Y'||c=='y'){flag=1;B[i].status=HOOK;cout挂失成功!endl;coutendl;}}}}if(flag==0){cout该用户不存在!endl;coutendl;}}3.用户模式,界面运行如下图3-3所示图3-3用户模式图部分功能代码如下:(1)为用户提供存款的功能。具体代码实现如下:voidSaving(Userinformationa,doublemon,intr1){inti;for(i=0;isum+number;i++){if(B[i].get_userNum()==a.userNum){//判断是否系统中存在此用户if(B[i].get_status()==HOOK){//判断用户银行卡的使用状态cout对不起,用户已被冻结,无法修改!endl;coutendl;}else{r2=f1(B[i].year,B[i].month,B[i].day);B[i].countday=r1-r2;B[i].change_money_li(B[i].countday);B[i].change_money(mon);cout成功存款:monendl;coutendl;}}}if(i==sum+number+1){cout错误该用户不存在!endl;coutendl;}}7(2)为用户提供转账的功能。具体代码实现如下:voidTransfering(Userinformationa,intr1){stringusernum1;intj;inti;intmon;charc;for(i=0;isum+number;i++){if(B[i].get_userNum()==a.userNum){if(B[i].get_status()==HOOK){cout对不起,用户已被冻结,无法修改!endl;coutendl;}else{r2=f1(B[i].year,B[i].month,B[i].day);B[i].countday=r1-r2;B[i].change_money_li(B[i].countday)