c 银行账户管理课程设计.docx
《c 银行账户管理课程设计.docx》由会员分享,可在线阅读,更多相关《c 银行账户管理课程设计.docx(11页珍藏版)》请在冰豆网上搜索。
c银行账户管理课程设计
JINGCHUUNIVERSITYOFTECHNOLOGY
C++银行账户管理
课程设计报告
学院:
计算机工程学院班级:
09级计算机科学与技术1班
学生姓名:
学号:
10125
设计地点(单位):
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();
银行管理系统
存钱页面
取款页面
转账页面页面
修改密码
查看信息
登录界面
注册开户
主界页面
注销退出
开户㊣"<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();看账户信息◎"<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;
case3:
account[i]->savemoney();save();break;
case4:
account[i]->change_passwd();save();break;
case5:
transfer(i);save();break;
case6:
return;
}();();
}
while
(1);
}
voidYH:
:
set_account()
{
intid;
stringnam;
stringpassw;
floatm;
cout<";
cin>>id;
cout<";
cin>>nam;
cout<";
cin>>passw;
cout<";
cin>>m;
while(m<=0)
{
cout<<"请输入正确的数字!
"<cin>>m;
}
consumer*acc=newconsumer(id,nam,passw,m);
account[acnum]=acc;
cout<<"开户成功!
!
"<acnum++;
save();
();
return;
}
voidYH:
:
del_account()
{
intid;
cout<";
cin>>id;
intflag=1;
inti=0;
while((i{
if(id==account[i]->get_id())
{
flag=0;
}
else
{
i++;
}
}
if(flag)
{
cout<<"该帐号不存在,请重新输入!
"<return;
}
for(intj=i;j{
account[j]=account[j+1];
}
account[acnum-1]=NULL;
acnum--;
cout<<"你的账号已注销!
!
"<save();
();
return;
}
voidconsumer:
:
change_passwd()
{
stringpwd,repwd;
cout<<"请输入新密码:
";
cin>>pwd;
cout<<"请再输入一次新密码:
";
cin>>repwd;
if(pwd!
=repwd)
cout<<"你输入的两次密码不一样,按输入键返回上一层菜单!
"<else
cout<<"密码修改成功,请牢记!
"<}
voidconsumer:
:
fetchmoney()
{
floatm;
charch;
do
{
cout<"<<"¥>"<cin>>m;
while(m<=0)
{
cout<<"请输入正确的数字!
"<cout<<"→";
cin>>m;
}
if(money{
cout<<"对不起,你的余额不足!
"<}
else
{money=money-m;
cout<"
<}
cout<<"是否要继续该项操作:
(Y/N)"
<cout<<"→";
cin>>ch;
while(ch!
='n'&&ch!
='N'&&ch!
='Y'&&ch!
='y')
陆界面
2.开户界面
3.账户操作
八、课程设计总结
通过这次C++课程设计,使我学到面向对象的程序设计思想用到具体的工作和学习中,加深对类与对象的理解,是将计算机课程与实际问题相联接的关键步骤。
通过课程设计,能够提高自己的分析问题、解决问题的能力,从而运用所学知识解决实际问题的能力,并培养基本的、良好的程序设计技能。
这次的课程设计,让我用了一个相对比较集中的时间去练习我的编程,特别是自己的动手能力,因为这次的课程设计覆盖面比较广泛。
经过了这次的设计,让我找到自己学习上的漏洞,一些课程设计上的以前没有弄懂的知识,都在这次的课程设计上有所提高。
九、课程设计教材及主要参考资料
教学参考书
[1]李素若.《C++面向对象程序设计》.北京:
化学工业出版社,2008.
参考资料:
[1]郑莉,傅仕星编,《C++面向对象程序设计》,清华大学出版社,2003年9月出
[2]谭浩强编,《C++面向对象程序设计》,清华大学出版社,2005年7月出版
[3]李师贤等译,《C++精髓》,机械工业出版社,2002年8月出版
[4]DavisChapman,《学用Visual?
c++?
》,清华大学出版社,2001年7月出版
[5]郑莉,傅仕星编,C++语言面向对象程序设计习题与实验指导,清华大学出版社,2003年9月出版