当前位置:文档之家› 银行账户管理系统(c++课程设计)

银行账户管理系统(c++课程设计)

2015-2016学年第二学期面向对象程序设计(c++)大作业说明书学院名称:计算机与信息工程学院班级名称:14计算机科学与技术(对口)学生姓名:徐竹青学号:2014100108题目:银行账户管理系统指导教师:王汇彬起止日期:2016年4月3日至2016年4月20日计算机与信息工程学院目录1. 选题背景 (2)2. 设计思路 (2)2.1 设计思想 (2)2.1.1设计内容 (2)2.1.2设计要求 (2)2.2功能需求 (2)2.3软硬件运行环境及开发工具 (2)3.过程论述 (2)3.1需求分析 (2)3.1.1系统功能图 (2)3.1.2函数功能和说明 (3)3.2程序代码分析 (3)4.结果分析 (8)5. 结论 (8)参考文献 (8)1. 选题背景随着办公自动化的迅速发展,对企事业单位信息的自动化管理提出了很高的要求。

对于银行来说,由于有大量的客户信息需要处理,因此银行帐户管理系统的开发与研究有一定的实用价值。

2.设计思路2.1 设计思想2.1.1设计内容因本次课程设计是银行卡账户管理系统,所以本次主要内容有:最高管理员模式、管理员模式、用户模式、退出系统。

2.1.2设计要求定义一个用户信息类userinformation和一个管理员类manager,程序运行时,首先进入最高管理员模式,设置一下银行管理人员的密码,设置成功后可以按4返回主菜单,进入其他界面,管理员可以进行登录、开户、挂失、销户等功能,用户可以进行取款、存款、修改密码、转账、查询操作。

最后一项是退出系统功能。

2.2功能需求(1)银行管理员所需的功能:如开户、销户、挂失、解锁等。

(2)用户所需的功能:如存款、取款、查询余额、更改密码等。

(3)对本银行已有的账户金额进行统计。

(4)及时保存用户的信息,存到固定的文件里。

2.3软硬件运行环境及开发工具(1)编成语言:c++语言。

(2)开发环境:Microsoft Windows 7、Visual c++ 6.0。

3.过程论述3.1需求分析3.1.1系统功能图显示整个程序所要运行的流程。

如图3-1所示。

图3-1 功能图3.1.2函数功能和说明各函数功能表3.2程序代码分析1.最高管理模式,界面显示如图3-1所示图3-1最高管理模式图代码如下:void setlixi(double a) //设置日利率{lixi=a;c out<<"成功设置日利率!"<<endl;c out<<"利率为:"<<lixi<<"%"<<endl;}void writelixi() //保存日利率{ofstream stuf1("E:\\高层管理数据1.txt",ios::out);stuf1<<setiosflags(ios::fixed)<<setprecision(3)<<lixi<<" ";stuf1.close(); cout<<"保存成功!"<<endl;cout<<endl;}void setsui(double a) //设置固定年息{sui=a;cout<<"成功设置税率!"<<endl;cout<<"利率为:"<<sui<<"%"<<endl;}void writesui() //保存固定年息{ofstream stuf2 ("E:\\高层管理数据2.txt",ios::out);stuf2<<setiosflags(ios::fixed)<<setprecision(3)<<sui<<" ";stuf2.close(); cout<<"保存成功!"<<endl;cout<<endl;}void setmanagercode( string a) //设置管理员密码{managercode=a;cout<<"密码设置成功!"<<endl;}2.管理员模式,运行界面如下图3-2所示。

图3-2管理员模式图部分功能实现代码如下:(1)在管理员模式中,实现管理员为用户开户的功能,具体代码如下:void OpenAccount (Userinformation a) {B[number+sum]=a;sum++;cout<<"开户成功!"<<endl;cout<<endl;}(2)在管理员模式中,实现管理员为用户账户挂失的功能,具体代码如下:void HookAccount (Userinformation a){char c;int flag=0;for (int i=0; i<sum+number; i++){if (B[i].get_userNum() ==a.get_userNum()){if(B[i].get_status()=="HOOK"){cout<<"该用户已挂失!"<<endl;cout<<endl;break;}else{cout<<endl;B[i].display ();cout<<"确认-Y/取消-N: ";cin>>c;if(c=='Y'||c=='y'){flag=1;B[i].status="HOOK";cout<<"挂失成功!"<<endl;cout<<endl;}}}}i f (flag==0){cout<<"该用户不存在!"<<endl;cout<<endl;}}3.用户模式,界面运行如下图3-3所示图3-3 用户模式图部分功能代码如下:(1)为用户提供存款的功能。

具体代码实现如下:void Saving (Userinformation a,double mon,int r1){int i;f or ( i=0; i<sum+number; i++){if (B[i].get_userNum() ==erNum){ //判断是否系统中存在此用户if(B[i].get_status()=="HOOK"){ //判断用户银行卡的使用状态cout<<"对不起,用户已被冻结,无法修改!"<<endl;cout<<endl;} 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<<"成功存款:"<<mon<<endl;cout<<endl;}}}i f(i==sum+number+1){cout<<"错误该用户不存在!"<<endl;cout<<endl;}}(2)为用户提供转账的功能。

具体代码实现如下:void Transfering (Userinformation a,int r1){string usernum1;int j;int i;int mon;char c;for (i=0; i<sum+number; i++){if (B[i].get_userNum() ==erNum){if(B[i].get_status()=="HOOK"){cout<<"对不起,用户已被冻结,无法修改!"<<endl;cout<<endl;} 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);cout<<"请输入要转账的银行卡号:";cin>>usernum1;for (j=0; j<sum+number; j++){if (B[j].get_userNum() ==usernum1){cout<<"请输入要转账的金额:"<<endl;cin>>mon;if(mon>B[i].money){cout<<"您的余额不足!无法进行转账!"<<endl;cout<<endl;}else{r2=f1(B[j].year,B[j].month,B[j].day);B[j].countday=r1-r2;B[j].change_money_li(B[i].countday);B[i]. change_money(-mon);B[j]. change_money(mon);cout<<"成功从用户:"<<B[i].get_userNum()<<"转账到用户:"<<B[j].get_userNum()<<endl;cout<<"打印拼条?y/n"<<endl;cin>>c;if(c=='y'||'c==Y'){B[j].Wait();cout<<"凭条打印中,请稍后!"<<endl;cout<<"转账金额为:"<<mon;cout<<endl;}}}}if (j==sum+number+1)cout<<"该用户不存在!"<<endl;cout<<endl;}}}if(i==sum+number+1)cout<<"该用户不存在!"<<endl;cout<<endl;}4.结果分析1.测试与操作说明使用visualc++ 6.0,打开银行账户管理系统c++文件,接着纠正错误,无错误,最后执行文件。

相关主题