课程设计(论文)任务书
软件工程学院桥梁专业 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 -
五、设计心得(小结) ............... - 15 -
一、课程设计任务概述
设计一简易的银行储蓄系统,能承担用户的开户、销户、存款和取款业务。要求使用结构体或对象存储账户信息,系统要求系统以菜单方式工作,主要
功能有:
(1)开户(输入姓名、身份证号,如不存在,则新开账户)
(2)销户(如有余额,先取款,再销户)
(3)取款(输入取款金额,账户余额不足时提示重新输入,取款成功后显示账户余额)
(4)存款(输入存款金额,存款成功后显示账户余额)
(5)查询(输入帐号,查询该帐号所有信息)
二、算法设计思想及流程图
2设计思路
首先,我设计了两个类,一个是Account类,旗下有Saving(),Withdraw()和ShouMe ()3个函数。另一个是Bank类,有开户函数Append(),销户函数Delete()和查询函数Query()。
开户函数运用了指针变量,首先设置了一个大小为100的存储空间,运用指针比较方便。通过地址的变化,指向不同的值。每增加一个户,则accNum加1.
存款函数,设置了Balance=Balance+number语句。
取款函数,如果帐号余额不足,则给予提示并不予取款。最后执行Balance=Balance-number。最后显示账户余额。
销户函数,首先判断帐号是否存在。如果能获取ID号,则此账户存在,就不要输出“此账户不存在”了。再把此帐号以后的账户都往前移一个,最后销户成功。
查询函数,先判断账户是否存在,我在查询函数里又设置了存款、取款函数,可以进行存款、取款业务。
在主函数中,设置一个Bank类,设置一个界面,有开户、销户、查询等业务。输入想要的业务,完毕后再返回主界面。
三、程序清单
#include
#include
class Account //Account类
{ public:
Account();
Account(int ID,char na[30],double Balance);
void Saving();
double Withdraw();
void ShowMe();
int getID();
private:
int ID;
char name[30];
double Balance;
};
class Bank //Bank类
{ public:
Bank();
void Append();
void Delete();
void Query();
private:
Account *account[100];
int accNum;
double Balance;
};
Account::Account()
{
Balance=0.0;
}
Account::Account(int id,char na[30],double Bal) {
ID=id;
strcpy(name,na);
Balance=Bal;
}
void Account::Saving() //存款
{ int number;
cout<<"请输入存款金额:";
cin>>number;
Balance=Balance+number;
cout<<"现在您的账户余额为:"< } double Account::Withdraw() //取款 { int number; cout<<"请输入取款金额:"; cin>>number; if(Balance { cout<<"对不起,您的账户余额不足"< cout<<"现在您的账户余额为"< return Balance; } void Account::ShowMe() //显示信息 { cout<<"账户ID:"< cout<<"名字:"< cout<<"余额:"< } int Account::getID() //获取ID { return ID;} Bank::Bank() { for(int i=0;i<100;i++) account[i]=NULL; accNum=0; } void Bank::Append() //开户 { int ID; char na[30]; cout<<"请输入账户ID:"; cin>>ID; cout<<"请输入账户名字:"; cin>>na; Account *acc=new Account(ID,na,0); account[accNum]=acc; cout<<"开户成功!"< cout<<"您的信息:"; cout<<"账户ID:"< accNum=accNum+1; } void Bank::Delete() //销户 { int ID; cout<<"请输入您想销户的ID:"; cin>>ID; int j; int k=1,i=0; while((i { if(ID==account[i]->getID()) k=0; } if(k) { cout<<"此帐号不存在!"< cout<<"您的账户有余额,请先取出!"< cout< for(j=i;j { account[j]=account[j+1];} accNum--; cout<<"销户成功!"< } void Bank::Query() //查询 { int ID; char yn; cout<<"请输入想要查询账户的ID:"; cin>>ID; int k=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(); int choice=0; cout<<"1:存款"< cout<<"2:取款"< cout<<"3:返回"< cout<<"请输入您的选择"; cin>>choice; switch(choice) { case 1:account[i]->Saving();break; case 2:account[i]->Withdraw();break; case 3:break; } } void main() { Bank bank; char yn; int choice=0; while (1) { cout<<"******欢迎来到银行系统!******"< cout<<" ******2:销户******"< cout<<" ******3:查询******"< cout<<" ******4:退出******"< cout<<"请输入您的选择:"; cin>>choice; switch(choice) { case 1:bank.Append();break; case 2:bank.Delete();break; case 3:bank.Query();break; case 4:break; } cout< cout<<"是否继续?(Y/N)"; cin>>yn; if (yn!='y') break; } }