杨秀才课程设计报告.docx
《杨秀才课程设计报告.docx》由会员分享,可在线阅读,更多相关《杨秀才课程设计报告.docx(29页珍藏版)》请在冰豆网上搜索。
杨秀才课程设计报告
北华大学计算机科学技术学院
C++语言课程设计
题目:
银行账户管理系统
班级网络12-2
姓名:
杨秀才
学号:
20121703010230
指导老师:
王双立
日期:
2013年12月26日
指导老师评语:
课程设计表现成绩:
课程设计验收成绩:
课程设计报告成绩:
课程设计总成绩:
指导老师签章:
2013年12月26
目录
1.需求分析3
1.1背景:
3
1.2目的:
3
1.3功能需求:
4
1.4程序结构:
5
2.比较有特色的算法:
6
3.定义的函数和声明:
7
4.程序代码7
5.程序运行图:
19
5.1主界面:
19
5.2资料界面:
20
5.3开户界面:
20
5.4登录界面:
21
5.5取款界面:
21
5.6存款界面:
22
5.7转账界面:
22
6.总结:
22
7.存在问题:
23
课程设计
————银行储蓄管理系统
1.需求分析
1.1背景:
随着社会的不断发展,计算机越来越普及。
我们正处在一个信息时代,计算机无处不在,它进入各行各业,改变着人们的生活。
银行系统事关民之财政,重中之重,然而它的管理模式也随着时代不断进步发展,为实现人们方便省时的办理银行储蓄业务,出现了银行计算机储蓄系统。
银行储蓄系统可以为人们方便办理储蓄业务,使人们在互联网办理存款、取款、查帐等业务,以高效、安全、互联为主要特征,为储户足不出户,提供各项业务的综合办理。
1.2目的:
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的银行储蓄业务系统,实现银行的金额交易自动化的计算机系统,为银行的决策层提供准确、精细、迅速的交易金额变动信息。
题目设计要求和目的:
进一步巩固C++语言语法规则;熟练掌握程序设计的一般技巧和方法;培养解决综合性实际问题的能力。
1.3功能需求:
本系统主要任务是用计算机为用户办理各项储蓄业务,如存款、取款
对于存款,储户填写存款单,然后交给业务员键入系统,同时系统还要记录存款人姓名、性别,出生日期,身份证号码、存款类型、及密码等信息,完成后由系统打印存款单给储户。
而取款,储户填写取款单交给业务员,业务员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并打印出利息清单给储户。
对储户基本信息进行日常管理,如查询、修改、增加、删除。
该系统主要包括管理员操作、储户管理理、数据维护三部分。
“管理员操作”是指进入银行储蓄系统必须获得一个许可,由管理员输入用户名和密码,方可进入该系统,并且可以对储户操作明细进行查询。
进入系统后可添加或删除管理员,并设定银行的定期、活期利率。
“储户管理”包括添加储户(开户)、删除储户(销户)、活期(存款、取款、查询)、定期(存款、取款、查询)。
1.4程序结构:
2.比较有特色的算法:
voidYH:
:
save()
{ofstreamofile("bankdat.dat",ios:
:
out);//以输出方式打开文件
ofstreamoutfile("bankdat.dat",ios:
:
out);//以输出方式打开文件bankdat.dat接收从内存输出的数据
intn=0;
outfile<for(n=0;n{outfile<ID<<"";//把信息写入磁盘文件bankdat.dat
outfile<money<<"";
outfile<name<<"";
outfile<passwd<<"";
outfile<number<<"";
outfile<company<<"";
outfile<address<<"";
outfile<in<<"";
}
能保存原来在电脑运行的结果,记录到电脑磁盘上。
3.定义的函数和声明:
此程序由18个函数构成。
voidset_account();//银行开户功能
voiddel_account();//注销账户功能
voidtransfer(int);//转账功能
voidenter_account();//进入用户个人信息功能
voidaddmoney(int,float);//存款功能
voidexitYH();//退出系统
voidhuanying();
voidkaishi();
voidfunctionshow();
voidsave();
voidload();//功能界面
voidsavemoney();//取钱
stringget_passwd(){returnpasswd;}//取得密码
voiddisplay();
voidfetchmoney();//取钱
voidchange_passwd();
voidguanyu();
voidadd_money(float);//计算余额
voiddec_money(float);//计算余额
floatget_money();//卡卡转帐
4.程序代码:
#include
#include
#include
#include
usingnamespacestd;
classconsumer;
classYH//银行类
{
public:
voidset_account();//银行开户功能
voiddel_account();//注销账户功能
voidtransfer(int);//转账功能
voidenter_account();//进入用户个人信息功能
voidaddmoney(int,float);//存款功能
voidexitYH();//退出系统
voidhuanying();
voidkaishi();
voidfunctionshow();
voidsave();
voidload();//功能界面
protected:
consumer*account[20];
staticintacnum;//账户数
};
classconsumer:
publicYH//用户类,继承银行类的属性
{
public:
friendclassYH;
consumer(intid,stringName,intNumber,doubleIN,stringCompany,stringAddress,stringPassWord,floatm)
{
ID=id;
name=Name;
number=Number;
in=IN;
company=Company;
address=Address;
money=m;
passwd=PassWord;
}
consumer(){ID=0;name='0';number=0;in=0;company='0';address='0';money=0;passwd='0';}
intget_id(){returnID;}
voidsavemoney();//取钱
stringget_passwd(){returnpasswd;}//取得密码
voiddisplay();
voidfetchmoney();//取钱
voidchange_passwd();
voidguanyu();
voidadd_money(float);//计算余额
voiddec_money(float);//计算余额
floatget_money();//卡卡转帐
private:
intID;//开户帐号
stringpasswd;//用户密码
stringname;//用户姓名
floatmoney;//开户金额
intnumber;stringcompany;stringaddress;doublein;
};
voidYH:
:
save()
{ofstreamofile("bankdat.dat",ios:
:
out);//以输出方式打开文件
ofstreamoutfile("bankdat.dat",ios:
:
out);//以输出方式打开文件bankdat.dat接收从内存输出的数据
intn=0;
outfile<for(n=0;n{outfile<ID<<"";//把信息写入磁盘文件bankdat.dat
outfile<money<<"";
outfile<name<<"";
outfile<passwd<<"";
outfile<number<<"";
outfile<company<<"";
outfile<address<<"";
outfile<in<<"";
}
outfile.close();
}
/*读入用户信息功能实现*/
voidYH:
:
load()
{ifstreaminfile("bankdat.dat",ios:
:
in);//以输入方式打开文件
if(!
infile)
{cerr<<"读取错误,无资料中!
"<return;
}
intn=0;
intid,m;
stringnam,passw;intnumber;stringcompany;stringaddress;doublein;
infile>>acnum;
for(n=0;n{infile>>id;//从磁盘文件bankdat.dat读入信息
infile>>m;
infile>>nam;
infile>>passw;
infile>>company;
infile>>number;
infile>>address;
infile>>in;
account[n]->passwd;
consumer*acc=newconsumer(id,nam,number,in,company,address,passw,m);//每读入一个n开辟一段内存
account[n]=acc;//赋值首地址
}
infile.close();
cout<<"读取资料正常!
"<}
/*转账功能实现*/
voidYH:
:
transfer(intx)
{system("colorCF");
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()
cout<<"对不起,金额不够!
!
"<else{account[x]->dec_money(b);account[i]->add_money(b);}
cout<<"转账成功!
!
"<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;}
voidYH:
:
huanying()
{system("colorFD");
cout<cout<cout<cout<cout<cout<cout<杨钦钊★★★★★★"<cout<杨秀才★★★★★★★"<cout<张珊★★★★★★★★"<cout<cout<cout<cout<cout<system("colorDF");
system("pause");
}
voidYH:
:
kaishi()
{system("cls");
system("color56");
cout<cout<cout<cout<cout<system("pause");
}
/*主界面显示*/
voidYH:
:
functionshow()
{intn;
do
{system("cls");
system("colorBD");
load();
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();//输入流类istream的成员函数
}
while(true);
}
voidYH:
:
enter_account()
{intid;
cout<<"请输入帐号:
";
cin>>id;
intflag=1;
inti=0;//__page_break__
while((i{
if(id==account[i]->get_id())flag=0;elsei++;
}
if(flag)
{
cout<<"帐号不存在!
"<return;
}
cout<<"请输入密码:
";
stringpassw;
cin>>passw;
if(passw!
=account[i]->get_passwd())return;//返回到登录界面
account[i]->display();cin.get();cin.get();
intn;
do{
system("cls");
system("colorCE");
cout<<"请选择下列操作:
"<cout<<"◎☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆◎"<cout<<"◎◎"<cout<<"◎1.查看账户信息◎"<cout<<"◎◎"<cout<<"◎2.取款◎"<cout<<"◎◎"<cout<<"◎3.存款◎"<cout<<"◎◎"<cout<<"◎4.修改密码◎"<cout<<"◎◎"<cout<<"◎5.转账◎"<cout<<"◎◎"<cout<<"◎6.返回上一菜单◎"<cout<<"◎◎"<cout<<"◎☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆◎"<cout<<"→";
cin>>n;
switch(n)
{case1:
account[i]->display();break;
case2:
account[i]->fetchmoney();save();break;//从2-5功能,每执行一次调用一次save函数,重新写入数据
case3:
account[i]->savemoney();save();break;
case4:
account[i]->change_passwd();save();break;
case5:
transfer(i);save();break;
case6:
return;
}cin.get();cin.get();
}
while
(1);
}
voidYH:
:
set_account()
{system("color5F");
intid;
stringnam;
stringpassw;
floatm;
stringcompany;stringaddress;intnumber;doublein;
cout<<"请输入开户号:
"<cin>>id;
cout<<"请输入开户人姓名:
"<cin>>nam;
cout<<"请输入开户密码:
"<cin>>passw;
cout<<"请输入存入金额:
"<cin>>m;
cout<<"请输入开户人电话:
"<cin>>number;
cout<<"请输入开户人公司:
"<cin>>company;
cout<<"请输入开户人地址:
"<cin>>address;
cout<<"请输入开户人身份证号码:
"<cin>>in;
while(m<=0)
{
cout<<"请输入正确的数字!
"<cin>>m;
}
consumer*acc=newconsumer(id,nam,number,in,company,address,passw,m);
account[acnum]=acc;
cout<<"开户成功!
!
"<acnum++;
save();
cin.get();
return;
}
voidYH:
:
del_account()
{system("colorAC");
intid;
cout<";
cin>>id;
intflag=1;
inti=0;
while((i