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