c++课程设计报告.docx
《c++课程设计报告.docx》由会员分享,可在线阅读,更多相关《c++课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
c++课程设计报告
《C++程序设计》
课程设计说明书
题目
银行储蓄系统
学号
姓名
指导教师
刘丽新
日期
1、
内蒙古科技大学课程设计任务书
课程名称
面向对象程序设计A课程设计
设计题目
银行储蓄管理的设计
指导教师
周李勇
时间
2013-2014秋学期第17、18周
一、教学要求
1.巩固和加深学生对C++语言课程的基本知识的理解和掌握
2.掌握C++语言编程和程序调试的基本技能
3.利用C++语言进行基本的软件设计
4.掌握书写程序设计说明文档的能力
5.提高运用C++语言解决实际问题的能力
二、设计资料及参数
用C++设计一个系统,能提供下列服务:
(1)录入帐号信息,格式为:
帐号
姓名
密码
身份证
日期
余额
利率
操作人
0435
李四
123456
800888
2011-11-2
操作包括存款取款,利息结算。
(2)登录功能。
输入帐号和密码进行登录。
(3)存款功能。
登录某个帐号后,输入存款金额,更新账户的余额。
(4)取款功能。
登录后,输入取款金额,当余额大于取款金额时,执行取款操作,
(5)利息结算。
、根据存款的利率和存款时间金额计算利息并登入账户。
(6)查询。
查询某个时间段内的账户操作记录。
三、设计要求及成果
根据系统功能要求,可以将问题解决分为以下步骤:
(1)分析系统中的各个实体之间的关系及其属性和行为;
(2)根据问题描述,设计系统的类层次;
(3)完成类层次中各个类的描述(包括属性和方法);
(4)完成类中各个成员函数的定义;
(5)完成系统的应用模块;
(6)功能调试;
(7)提交课程设计报告:
完成系统总结报告以及系统使用说明书
第1章需求分析
二、设计资料及参数
用C++设计一个系统,能提供下列服务:
(7)录入帐号信息,格式为:
帐号
姓名
密码
身份证
日期
余额
利率
操作人
0435
李四
123456
800888
2011-11-2
操作包括存款取款,利息结算。
(8)登录功能。
输入帐号和密码进行登录。
(9)存款功能。
登录某个帐号后,输入存款金额,更新账户的余额。
(10)取款功能。
登录后,输入取款金额,当余额大于取款金额时,执行取款操作,
(11)利息结算。
、根据存款的利率和存款时间金额计算利息并登入账户。
(12)查询。
查询某个时间段内的账户操作记录。
第2章总体设计
1.用结构框图表示各个功能之间的关系。
2.将框图中系统的各个功能用文字详细的描述。
注册开户:
对未进行开户的人员进行开户,并保存。
登陆界面:
对已开户人员进行登陆,从而进行下一步操作。
存钱界面:
输入存款金额并对以前剩余金额进行计算。
取钱界面:
取钱后在原金额的基础上进行减法计算。
查询余额:
查询现在账户内所剩余金额。
模块分析
client类
制定用户的成员数据类型,进行登陆于保存功能并实现用户的各种功能。
代码为:
client:
:
client(intl);
stringgetID(){
returnID;
}
stringgetname(){
returnname;
}
stringgetadress(){
returnadress;
}
stringgetphnumber(){
returnphnumber;
}
stringgetcode(){
returncode;
}
stringgetmType(){
returnmType;
}
stringgetcType(){
returncType;
}
doublegetbalance(){
returnbalance;
}
第3章详细设计
3.1工程视图
说明有几个源代码文件,可以截取工程文件视图表示
3.2类图视图
每个文件包含哪些类和函数,可以截图说明
主程序流程图
银行储蓄管理系统
登入开户退出
存款查询余额取款修改密码
填写个人
信息
3.3主要算法的流程图
第4章测试
运行测试:
图主菜单
登陆测试:
图登陆账户
存款测试:
图账户存款
取款测试:
图账户取款
查询余额测试:
图查询余额
修改密码测试:
第5章总结
通过这次c++课程设计,使我学到面向对象的程序设计思想用到具体的工作和学习中,加深对类与对象的理解,是将计算机课程与实际问题相连接的关键步骤。
通过课程设计提高了自己分析问题,运用所学知识解决实际问题的能力,并培养了基本的程序设计技能。
这次的课程设计,让我用一个相对比较集中的时间去练习,特别是自己的动手能力,因为这次课程设计覆盖面比较广泛。
经过了这次设计,让我找到了学习上的漏洞,一些课程设计上以前没有弄懂的知识,都在这次的课程设计上有所提高。
附录:
程序代码
#include
#include
#include
#include
usingnamespacestd;
voidmainminue();
classclient{
public:
client();ead(instream);
if()!
=0)
break;
}
();
clientcount=i;
switch(change){
case1:
cType="cur";break;
case2:
cType="ter";break;
case3:
cType="cre";break;
}
for(i=0;i{
if(client1[i].getID()==ID&&client1[i].getcType()==cType)
{
cout<<"账户类型已创建,按任意键返回重新创建";
getchar();
flag=1;
break;
}
}
}
}while(flag);
do{
system("cls");
cout<<"请输入密码:
";
cin>>code;
cout<<"请再次输入密码:
";
cin>>code_1;
if(code==code_1)
{
cout<<"账户创建成功,按任意键返回主菜单"<getchar();
ead(instream);
if()!
=0)
break;
}
();
clientcount=i;
cout<<"请输入身份证号"<cin>>c_id;
for(i=0;i{
if(client1[i].getID()==c_id)
{flag=1;break;}
}
if(!
flag)
{
system("cls");
cout<<"您尚未创建任何账户,是否创建?
";
cout<<"1,yes";
cout<<"2,no";
cin>>choice;
switch(choice)
{
case1:
creater();break;
case2:
break;
}
}
else
{
vectorzx(3);
for(i=0,j=0;i<3&&jif(client1[j].getID()==c_id)
zx[i++]=client1[j];
j=i;
vectorelseclient(100-j);
for(i=0,m=0;(m<(100-j))&&(i<100);i++)
if(client1[i].getID()!
=c_id)
elseclient[m++]=client1[i];
ofstreamoutput("",ios:
:
app);
for(i=0;ielseclient[i].write(output);
();
do{
system("cls");
cout<<"请选择你要登入的账户类型";
cout<<"1,活期存款账户"<cout<<"2,定期存款帐户"<cout<<"3,信用卡账户"<cin>>c1;
}while(c1!
=1&&c1!
=2&&c1!
=3);
switch(c1)
{
case1:
ct="cur";break;
case2:
ct="ter";break;
case3:
ct="cre";break;
}
for(i=0;iif(zx[i].getcType()==ct)
{flag=0;break;}
if(flag)
{
cout<<"您尚未创建此种账户类型!
";
}
else
{
do
{
cout<<"请输入密码";
cin>>code_a;
for(i=0;iif(zx[i].getcode()==code_a)
{flag=1;break;}
if(!
flag)
{
cout<<"密码错误:
请重新输入:
";
s=1;
}
else
{
cout<<"登陆成功!
"<getchar();
do{
do{
system("pause");
system("cls");
cout<<"1,取款"<cout<<"2,存款"<cout<<"3,查询余额"<cout<<"4,同ID下其它账户信息"<cout<<"5,修改密码"<cout<<"6,返回主菜单"<cin>>c1;
}while(c1!
=1&&c1!
=2&&c1!
=3&&c1!
=4&&c1!
=5&&c1!
=6);
if(c1==1)
{etcType()=="cur")&&(geter<=zx[i].getbalance()))
{
cout<<"请取钱"<getchar();
zx[i].setbalance(zx[i].getbalance()-geter);
}
elseif((zx[i].getcType()=="cre")&&(zx[i].getbalance()>=(geter-10000)))
{
cout<<"请取钱"<getchar();
zx[i].setbalance(zx[i].getbalance()-geter);
}
elseif((zx[i].getcType()=="ter")&&(geter<=zx[i].getbalance())&&(zx[i].getlim()==0))
{
cout<<"请取钱"<getchar();
zx[i].setbalance(zx[i].getbalance()-geter);
}
else
{
if(zx[i].getcType()=="cur")
cout<<"账户余额不足"<elseif(zx[i].getcType()=="cre")
cout<<"账户透支过度"<elsecout<<"定期存款用户未到期"<getchar();
}
}
elseif(c1==2)
{etmType(mType);
cout<<"请输入存款额度:
"<cin>>geter;
zx[i].setbalance(zx[i].getbalance()+geter);
cout<<"存款成功!
按任意键返回"<getchar();
}
elseif(c1==3)
{etbalance()>=0)
cout<<"账户余额为"<else
cout<<"账户已透支"<<-zx[i].getbalance()<getchar();
}
elseif(c1==4)
{isplay();
}
elseif(c1==5)
{etcode(c_id);
cout<<"修改成功,按任意键返回"<getchar();
}
elsemainminue();
}while(c1!
=6);
}
}while(s==1);
}
ofstreamoutputer("",ios:
:
app);
for(i=0;izx[i].write(outputer);
();
}
}