c++银行账户管理课程设计.docx
《c++银行账户管理课程设计.docx》由会员分享,可在线阅读,更多相关《c++银行账户管理课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
c++银行账户管理课程设计
C++银行账户管理
课程设计报告
学院:
计算机工程学院班级:
09级计算机科学与技术1班
学生姓名:
学号:
2009404010125
设计地点(单位):
A5-101
设计题目:
银行账户管理程序
完成日期:
2011年12月25日
指导教师评语:
____________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________
教师签名:
__________________
一、设计思想……………………………………………………03
二、模块设计与分析……………………………………………03
三、程序设计介绍………………………………………………04
四、框架结构图…………………………………………………04
五、程序代码……………………………………………………05
六、测试数据……………………………………………………14
七、数据调试……………………………………………………14
八、课程设计总结………………………………………………16
九、课程设计教材及主要参考资料……………………………16
一、设计思想
定义一个用户类customer和一个银行类YH,程序运行时,可以由用户选择进行开户、登录、取款、存款、修改密码、转账、销户操作,用户销户后账号被回收,并且该账号可以继续分配给其它账户,不允许用户透支,根据姓名或账号可以进行用户的信息查询,所有的账户信息应存放到一个文件中,可以随时的访问和更新。
二、模块设计与分析
1.登录页面:
输入帐号和密码,根据用户输入的帐号和密码,到后台文件查询,若正确则登录成功,并保存卡好信息已备后用。
若帐号存在和密码不匹配或无该帐号已经注销,提示该帐号已存在或已注销。
2.主界面页面:
主要导航栏有存款、取款、账户信息、注销、注销、返回上一步。
3.开户页面:
提供开户界面,由用户输入新账户的信息,将该信息保存到文件中,并将开户金额作为该卡的第一次存款记录存人文件。
4.存钱页面:
从登录界面得到帐号,并提供数据输入界面,等待用户的输入存款金额,同时将存钱的金额显示在页面上。
5.取款页面:
从登录界面得到帐号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上。
6.账户信息页面:
从登录界面得到帐号,把本人显示到界面中。
7.转账页面:
从登录界面得到帐号,输入要转入的帐号,在输入金额,显示在页面上,如果金额超过余额将操作失败。
8.注销页面:
从关闭文件,状态为注销,最后关闭整个系统。
三、程序设计介绍
系统由2个类构成,YH(银行类)和Consumer(客户类),Consumer(客户类)是YH(银行类)的公有继承类。
YH(银行类)中有实现登陆系统,开户,销户,转账,退出系统等功能函数,Consumer(客户类)中有实现存钱,取钱,修改个人账号密码,显示个人账号信息等功能函数。
因为Consumer(客户类)是YH(银行类)的公有继承类,所以,一个用户只需创建一个Consumer(客户类)对象,当用户进行开户,销户等操作时,可以直接调用YH(银行类)的成员函数。
银行类中的函数:
voidset_account();//银行开户功能
voiddel_account();//注销账户功能
voidtransfer(int);//转账功能
voidenter_account();//进入用户个人信息功能
voidaddmoney(int,float);//存款功能
voidexitYH();//退出系统
四、框架结构图
五、程序代码
#include
#include
#include
usingnamespacestd;
classconsumer;
classYH//银行类
{
public:
voidset_account();//银行开户功能
voiddel_account();//注销账户功能
voidtransfer(int);//转账功能
voidenter_account();//进入用户个人信息功能
voidaddmoney(int,float);//存款功能
voidexitYH();//退出系统
voidfunctionshow();
voidsave();
voidload();//功能界面
protected:
consumer*account[20];
staticintacnum;//账户数
};
classconsumer:
publicYH//用户类,继承银行类的属性
{
public:
friendclassYH;
consumer(intid,stringName,stringPassWord,floatm)
{
ID=id;name=Name;money=m;passwd=PassWord;
}
consumer(){ID=0;name='0';money=0;passwd='0';}
intget_id(){returnID;}
voidsavemoney();//取钱
stringget_passwd(){returnpasswd;}//取得密码
voiddisplay();
voidfetchmoney();//取钱
voidchange_passwd();
voidadd_money(float);
voiddec_money(float);
floatget_money();//卡卡转帐
private:
intID;//开户帐号
stringpasswd;//用户密码
stringname;//用户姓名
floatmoney;//开户金额
};
voidYH:
:
save()
{ofstreamofile("bankdat.dat",ios:
:
out);
ofstreamoutfile("bankdat.dat",ios:
:
out);
intn=0;
outfile<for(n=0;n{outfile<ID<<"";
outfile<money<<"";
outfile<name<<"";
outfile<passwd<<"";
}
outfile.close();
}
/*读入用户信息功能实现*/
voidYH:
:
load()
{ifstreaminfile("bankdat.dat",ios:
:
in);
if(!
infile)
{cerr<<"读取错误,无资料中!
"<return;
}
intn=0;
intid,m;
stringnam,passw;
infile>>acnum;
for(n=0;n{infile>>id;
infile>>m;
infile>>nam;
infile>>passw;account[n]->passwd;
consumer*acc=newconsumer(id,nam,passw,m);
account[n]=acc;
}
infile.close();
cout<<"读取资料正常!
"<}
/*转账功能实现*/
voidYH:
:
transfer(intx)
{intid;
cout<<"请输入帐号:
";
cin>>id;
intflag=1;
inti=0;
while((i{
if(id==account[i]->get_id())flag=0;elsei++;
}
if(flag)
{
cout<<"帐号不存在!
"<return;
}
floatb;
cout<";
cin>>b;
while(b<=0)
{
cout<<"请输入正确的数字!
"<cout<<"→";
cin>>b;
}
if(account[x]->get_money()
!
"<else{account[x]->dec_money(b);account[i]->add_money(b);}
return;
}
/*账户金额计算*/
voidconsumer:
:
add_money(floatx)
{money=x+money;}
voidconsumer:
:
dec_money(floatx)
{money=money-x;}
voidYH:
:
addmoney(intx,floaty)
{account[x]->money=account[x]->money-y;
}
floatconsumer:
:
get_money()
{returnmoney;}
voidmain()
{YHyh;
yh.functionshow();
}
/*主界面显示*/
voidYH:
:
functionshow()
{
intn;
do
{system("cls");load();
cout<"<cout<<"㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣"<cout<<"㊣㊣"<cout<<"㊣1.开户㊣"<cout<<"㊣㊣"<cout<<"㊣2.账户登录㊣"<cout<<"㊣㊣"<cout<<"㊣3.账户注销㊣"<cout<<"㊣㊣"<cout<<"㊣4.退出系统㊣"<cout<<"㊣㊣"<cout<<"㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣"<cout<<"→";
cin>>n;
while(n<1||n>4)
{
cout<<"操作错误,请输入正确的操作序号!
"<cout<<"→";
cin>>n;
}
switch(n)
{
case1:
set_account();//开户
break;
case2:
enter_account();//登录
break;
case3:
del_account();//注销
break;
case4:
exitYH();//退出
break;
}
cin.get();
}
while(true);
}