c++课程设计……银行储蓄系统(10页).doc
-c+课程设计银行储蓄系统-第 - 9 - 页课程设计(论文)任务书 软件工程 学院桥梁 专业 3 班 一、课程设计(论文)题目银行储蓄系统 二、课程设计(论文)工作自 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+程序设计(第二版) 北京邮电大学出版社 (2) 谭浩强 c+面向对象程序设计 清华大学出版社6)课程设计进度安排内容 天数10地点构思及收集资料 2图书馆组装与调试 3实验室撰写报告 2图书馆、实验室学生签名: 2011 年 6 月 13 日课程设计(论文)评审意见(1)完成原理分析(20分):优()、良()、中()、一般()、差(); (2)设计分析(20分):优()、良()、中()、一般()、差(); (3)完成调试(20分):优()、良()、中()、一般()、差();(4)论文撰写(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是()、否()评阅人: 职称: 2011 年 6 月 23 日目录一、课程设计任务概述- 4-二、算法设计思想及流程图- 5-三、程序清单- 7 -四、程序调试与运行结果- 13-五、设计心得(小结)- 16 -一、课程设计任务概述设计一简易的银行储蓄系统,能承担用户的开户、销户、存款和取款业务。要求使用结构体或对象存储账户信息,系统要求系统以菜单方式工作,主要功能有: (1)开户(输入姓名、身份证号,如不存在,则新开账户)(2) 销户(如有余额,先取款,再销户)(3) 取款(输入取款金额,账户余额不足时提示重新输入,取款成功后显示账户余额)(4) 存款(输入存款金额,存款成功后显示账户余额)(5)查询(输入帐号,查询该帐号所有信息)二、算法设计思想及流程图 银行储蓄系统3:退出2:取款1;存款4:退出3:查询2:销户1:开户2设计思路首先,我设计了两个类,一个是Account类,旗下有Saving(),Withdraw()和ShouMe()3个函数。另一个是Bank类,有开户函数Append(),销户函数Delete()和查询函数Query()。开户函数运用了指针变量,首先设置了一个大小为100的存储空间,运用指针比较方便。通过地址的变化,指向不同的值。每增加一个户,则accNum加1.存款函数,设置了Balance=Balance+number语句。取款函数,如果帐号余额不足,则给予提示并不予取款。最后执行Balance=Balance-number。最后显示账户余额。销户函数,首先判断帐号是否存在。如果能获取ID号,则此账户存在,就不要输出“此账户不存在”了。再把此帐号以后的账户都往前移一个,最后销户成功。查询函数,先判断账户是否存在,我在查询函数里又设置了存款、取款函数,可以进行存款、取款业务。在主函数中,设置一个Bank类,设置一个界面,有开户、销户、查询等业务。输入想要的业务,完毕后再返回主界面。三、程序清单#include<string.h>#include<iostream.h>class Account /Account类 public: Account(); Account(int ID,char na30,double Balance);void Saving();double Withdraw();void ShowMe();int getID(); private: int ID; char name30;double Balance;class Bank /Bank类 public: Bank(); void Append();void Delete();void Query(); private:Account *account100;int accNum;double Balance;Account:Account()Balance=0.0;Account:Account(int id,char na30,double Bal) ID=id;strcpy(name,na); Balance=Bal;void Account:Saving() /存款 int number; cout<<"请输入存款金额:"cin>>number;Balance=Balance+number;cout<<"现在您的账户余额为:"<<Balance<<endl;double Account:Withdraw() /取款 int number; cout<<"请输入取款金额:"cin>>number;if(Balance<number) cout<<"对不起,您的账户余额不足"<<number;Balance=Balance-number;cout<<"现在您的账户余额为"<<Balance<<endl;return Balance;void Account:ShowMe() /显示信息cout<<"账户ID:"<<ID<<endl; cout<<"名字:"<<name<<endl;cout<<"余额:"<<Balance<<endl;int Account:getID() /获取ID return ID;Bank:Bank()for(int i=0;i<100;i+) accounti=NULL; accNum=0;void Bank:Append() /开户int ID; char na30; cout<<"请输入账户ID:"cin>>ID;cout<<"请输入账户名字:"cin>>na;Account *acc=new Account(ID,na,0);accountaccNum=acc; cout<<"开户成功!"<<endl;cout<<"您的信息:" cout<<"账户ID:"<<accountaccNum->getID(); cout<<"名字:"<<na; accNum=accNum+1;void Bank:Delete() /销户 int ID; cout<<"请输入您想销户的ID:" cin>>ID; int j; int k=1,i=0; while(i<accNum)&&k) if(ID=accounti->getID() k=0; if(k) cout<<"此帐号不存在!"<<endl; cout<<"您的账户有余额,请先取出!"<<endl; accounti->Withdraw(); cout<<endl; for(j=i;j<accNum;j+) accountj=accountj+1; accNum-; cout<<"销户成功!"<<endl;void Bank:Query() /查询 int ID; char yn; cout<<"请输入想要查询账户的ID:" cin>>ID; int k=1,i=0; while(i<accNum)&&k) if(ID=accounti->getID() k=0; else i+; if(k) cout<<"此帐号不存在!"<<endl; cout<<"是否继续?(Y/N)"<<endl; cin>>yn; accounti->ShowMe(); int choice=0; cout<<"1:存款"<<endl; cout<<"2:取款"<<endl; cout<<"3:返回"<<endl; cout<<"请输入您的选择" cin>>choice; switch(choice) case 1:accounti->Saving();break; case 2:accounti->Withdraw();break; case 3:break;void main() Bank bank; char yn; int choice=0; while (1) cout<<"*欢迎来到银行系统!*"<<endl; cout<<" *1:开户*"<<endl; cout<<" *2:销户*"<<endl; cout<<" *3:查询*"<<endl; cout<<" *4:退出*"<<endl; cout<<"请输入您的选择:" cin>>choice; switch(choice) case 1:bank.Append();break; case 2:bank.Delete();break; case 3:bank.Query();break; case 4:break; cout<<endl; cout<<"是否继续?(Y/N)" cin>>yn; if (yn!='y') break;四、程序调试与运行结果<>程序调试调试是整个程序编写过程中十分重要也是很困难的一部分,在这个过程中用了很多时间来进行程序的调试,在调试过程中遇到的相关问题如下:一 语法错误“;”,“”等使程序发生错误。“<<”与“>>”写反,以及“cout”中少一个o,等等比较简单的语法错误,很容易分辨出来。 3.函数的返回值问题。 4.break语句运用错误。二. 逻辑错误 文件的写入与读出,刚开始对文件的操作不太明白,以致不能很好的操作。<二>运行结果五、 设计心得(小结) 这个程序虽然不大,但几乎用到了我们所学的所有知识。乍一看题目,感觉无从下手,通过查资料,慢慢地有所了解,便试着用所学的知识去写,刚弄完时,会弹出许多错误。做这个程序化了一个多星期的时间,主要是前期没做好准备工作。程序用到了很多不太熟悉的知识,比如指针操作,要用到指针变量,就要翻书。感觉不是太成功,程序不是很完善。但通过这次课程设计,让我了解了程序的一般编排,以及程序设计的一般思想,受益匪浅。由于是第一次做比较完整的程序,一开始会感觉无从下手。这次课程设计为以后的写程序打下一个基础。在做的过程中,我得到了老师和同学的帮助,才得以基本完成。设计中用到了很多的老师讲的东西。当我基本完成的时候,感到很高兴,看到了自己努力的成果。由于刚接触,没有较深的了解,所以我就上网查资料,去图书馆找有关的书来看。这让我又学习了很多知识。总之,这次课程设计,让我学到了很多东西。