c++课程设计银行储蓄系统.docx
《c++课程设计银行储蓄系统.docx》由会员分享,可在线阅读,更多相关《c++课程设计银行储蓄系统.docx(18页珍藏版)》请在冰豆网上搜索。
c++课程设计银行储蓄系统
华东交通大学课程设计报告
课程设计(论文)任务书
软件工程 学 院 桥梁 专 业
3
班
1、课程设计(论文)题目 银行储蓄系统
2、课程设计(论文)工作自2011年6月13日起至2011三、课程设计(论文)地点:
软件学院软件实训中心
年6
月20
日止。
四、课程设计(论文)内容要求:
1.本课程设计的目的
(1)使学生掌握C++的基本语法以及程序编辑、运行过程;
(2)培养学生掌握程序设计的基本思路和方法;
(3)使学生掌握程序的调试方法;
(4)培养学生分析、解决问题的能力;
(5)提高学生的科技论文写作能力。
2.课程设计的任务及要求
1)基本要求:
设计一简易的银行储蓄系统,能承担用户的开户、销户、存款和取款业务。
要求使用结构体或对象存储账户信息,系统要求系统以菜单方式工作。
(1)开户(输入姓名、身份证号,如不存在,则新开账户)
(2)销户(如有余额,先取款,再销户)
(3)取款(输入取款金额,账户余额不足时提示重新输入,取款成功后显示账户余额)(4)存款(输入存款金额,存款成功后显示账户余额)
(5)查询(输入帐号,查询该帐号所有信息)
2)创新要求:
在基本要求达到后,可进行创新设计,如改善算法性能;对系统进行功能扩充。
3)课程设计论文编写要求
(1)要按照书稿的规格打印誊写课程设计报告
(2)课程设计报告书内容主要包括目录、绪论、正文、小结、参考文献、附录等
(3)课程设计报告书一律使用由学校统一印制的封面,采用黑色墨水工整书写,
并装订成册。
如采用计算机打印,应该配上封面装订成册。
4)答辩与评分标准:
(1)完成原理分析:
20分;
(2)完成设计过程:
40分;
(3)完成调试:
20分;
(4)回答问题:
20分。
5)参考文献:
(1)刘觉夫.《c++程序设计(第二版)》北京邮电大学出版社
(1)谭浩强《c++面向对象程序设计》清华大学出版社
6)课程设计进度安排
-1-
内容
华东交通大学课程设计报告
天数 10 地点
构思及收集资料组装与调试撰写报告
2
图书馆
3 实验室
2 图书馆、实验室
学生签名:
2011年6月13日
课程设计(论文)评审意见
(1)完成原理分析(20分):
优( )、良( )、中( )、一般( )、差( );
(2)设计分析 (20分):
优( )、良( )、中( )、一般( )、差( );(3)完成调试 (20分):
优( )、良( )、中( )、一般( )、差( );(4)论文撰写 (20分):
优( )、良( )、中( )、一般( )、差( );(5)回答问题 (20分):
优( )、良( )、中( )、一般( )、差( );(6)格式规范性及考勤是否降等级:
是( )、否( )
评阅人:
职称:
2011
年6
月23
日
-2-
华东交通大学课程设计报告目 录
1、课程设计任务概述..................-4-
2、算法设计思想及流程图..........-5-
3、程序清单.................................-7-
4、程序调试与运行结果............-13-
5、设计心得(小结)...............-16-
-3-
华东交通大学课程设计报告
一、课程设计任务概述
设计一简易的银行储蓄系统,能承担用户的开户、销户、存款和取款业务。
要求使用结构体或对象存储账户信息,系统要求系统以菜单方式工作,主要功能有:
(1)开户(输入姓名、身份证号,如不存在,则新开账户)
(2)销户(如有余额,先取款,再销户)
(3)取款(输入取款金额,账户余额不足时提示重新输入,取款成功后显示账户余额)
(4)存款(输入存款金额,存款成功后显示账户余额)
(5)查询(输入帐号,查询该帐号所有信息)
-4-
华东交通大学课程设计报告
二、算法设计思想及流程图
1;
存
款
2
:
取
款
3
:
退
出
-5-
华东交通大学课程设计报告
2设计思路
首先,我设计了两个类,一个是Account类,旗下有Saving(),Withdraw()和ShouMe()3个函数。
另一个是Bank类,有开户函数Append(),销户函数Delete()和查询函数Query()。
开户函数运用了指针变量,首先设置了一个大小为100的存储空间,运用指针比较方便。
通过地址的变化,指向不同的值。
每增加一个户,则accNum加1.
存款函数,设置了Balance=Balance+number语句。
取款函数,如果帐号余额不足,则给予提示并不予取款。
最后执行Balance=Balance-number。
最后显示账户余额。
销户函数,首先判断帐号是否存在。
如果能获取ID号,则此账户存在,就不要输出“此账户不存在”了。
再把此帐号以后的账户都往前移一个,最后销户成功。
查询函数,先判断账户是否存在,我在查询函数里又设置了存款、取款函数,可以进行存款、取款业务。
在主函数中,设置一个Bank类,设置一个界面,有开户、销户、查询等业务。
输入想要的业务,完毕后再返回主界面。
-6-
华东交通大学课程设计报告
三、程序清单
#include
#include
classAccount//Account类
{public:
Account();
Account(intID,charna[30],doubleBalance);
voidSaving();
doubleWithdraw();
voidShowMe();
intgetID();
private:
intID;
charname[30];
doubleBalance;
};
classBank//Bank类
{public:
Bank();
voidAppend();
voidDelete();
voidQuery();
private:
Account*account[100];
intaccNum;
doubleBalance;
};
Account:
:
Account()
{
Balance=0.0;
}
-7-
华东交通大学课程设计报告
Account:
:
Account(intid,charna[30],doubleBal)
{
ID=id;
strcpy(name,na);
Balance=Bal;
}
voidAccount:
:
Saving()//存款
{intnumber;
cout<<"请输入存款金额:
";
cin>>number;
Balance=Balance+number;
cout<<"现在您的账户余额为:
"<}
doubleAccount:
:
Withdraw()//取款
{intnumber;
cout<<"请输入取款金额:
";
cin>>number;
if(Balance{cout<<"对不起,您的账户余额不足"<cout<<"现在您的账户余额为"<}
voidAccount:
:
ShowMe()//显示信息
{
cout<<"账户ID:
"<cout<<"名字:
"<cout<<"余额:
"<}
-8-
华东交通大学课程设计报告
intAccount:
:
getID()//获取ID
{returnID;}
Bank:
:
Bank()
{
for(inti=0;i<100;i++)
account[i]=NULL;
accNum=0;
}
voidBank:
:
Append()//开户
{
intID;
charna[30];
cout<<"请输入账户ID:
";
cin>>ID;
cout<<"请输入账户名字:
";
cin>>na;
Account*acc=newAccount(ID,na,0);
account[accNum]=acc;
cout<<"开户成功!
"<cout<<"您的信息:
";
cout<<"账户ID:
"<getID();cout<<"名字:
"<accNum=accNum+1;
}
voidBank:
:
Delete()//销户
{intID;
-9-
华东交通大学课程设计报告
cout<<"请输入您想销户的ID:
";
cin>>ID;
intj;
intk=1,i=0;
while((i{if(ID==account[i]->getID())
k=0;
}
if(k)
{cout<<"此帐号不存在!
"<cout<<"您的账户有余额,请先取出!
"<Withdraw();
cout<for(j=i;j{account[j]=account[j+1];}
accNum--;
cout<<"销户成功!
"<}
voidBank:
:
Query()//查询
{intID;
charyn;
cout<<"请输入想要查询账户的ID:
";cin>>ID;
intk=1,i=0;
while((i{if(ID==account[i]->getID())
k=0;
else
i++;
}
if(k)
{cout<<"此帐号不存在!
"<cout<<"是否继续?
(Y/N)"<cin>>yn;
}
account[i]->ShowMe();
intchoice=0;
cout<<"1:
存款"<-10-
华东交通大学课程设计报告
cout<<"2:
取款"<cout<<"3:
返回"<cout<<"请输入您的选择";
cin>>choice;
switch(choice)
{case1:
account[i]->Saving();break;
case2:
account[i]->Withdraw();break;
case3:
break;
}
}
voidmain()
{Bankbank;
charyn;
intchoice=0;
while
(1)
{
cout<<"******欢迎来到银行系统!
******"<开户******"<销户******"<查询******"<退出******"<cout<<"请输入您的选择:
";
cin>>choice;
switch(choice)
{
case1:
bank.Append();break;
case2:
bank.Delete();break;
case3:
bank.Query();break;
case4:
break;
}
cout<cout<<"是否继续?
(Y/N)";
cin>>yn;
if(yn!
='y')
break;
}
-11-
华东交通大学课程设计报告
}
-12-
华东交通大学课程设计报告
四、程序调试与运行结果
<—>程序调试
调试是整个程序编写过程中十分重要也是很困难的一部分,在这个过程中用了很多时间来进行程序的调试,在调试过程中遇到的相关问题如下:
1.语法错误
1.语句的最后忘记了加上“;”,“}”等使程序发生错误。
2.把“<<”与“>>”写反,以及“cout”中少一个o,等等比较简单的语法错误,很容易分辨出来。
3.函数的返回值问题。
4.break语句运用错误。
2.逻辑错误
文件的写入与读出,刚开始对文件的操作不太明白,以致不能很好的操作。
-13-
华东交通大学课程设计报告
<二>运行结果
-14-
华东交通大学课程设计报告
-15-
华东交通大学课程设计报告
5、设计心得(小结)
这个程序虽然不大,但几乎用到了我们所学的所有知识。
乍一看题目,感觉无从下手,通过查资料,慢慢地有所了解,便试着用所学的知识去写,刚弄完时,会弹出许多错误。
做这个程序化了一个多星期的时间,主要是前期没做好准备工作。
程序用到了很多不太熟悉的知识,比如指针操作,要用到指针变量,就要翻书。
感觉不是太成功,程序不是很完善。
但通过这次课程设计,让我了解了程序的一般编排,以及程序设计的一般思想,受益匪浅。
由于是第一次做比较完整的程序,一开始会感觉无从下手。
这次课程设计为以后的写程序打下一个基础。
在做的过程中,我得到了老师和同学的帮助,才得以基本完成。
设计中用到了很多的老师讲的东西。
当我基本完成的时候,感到很高兴,看到了自己努力的成果。
由于刚接触,没有较深的了解,所以我就上网查资料,去图书馆找有关的书来看。
这让我又学习了很多知识。
总之,这次课程设计,让我学到了很多东西。
-16-