《c++课程设计报告(13页).doc》由会员分享,可在线阅读,更多相关《c++课程设计报告(13页).doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-c+课程设计报告-第 13 页C+程序设计课程设计说明书题 目银行储蓄系统学 号姓 名指导教师 刘丽新日 期2014.12一、 内蒙古科技大学课程设计任务书课程名称面向对象程序设计A课程设计设计题目银行储蓄管理的设计指导教师周李勇时间2013-2014秋学期 第17、18周一、教学要求1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握2. 掌握C+语言编程和程序调试的基本技能3. 利用C+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C+语言解决实际问题的能力二、设计资料及参数用C+设计一个系统,能提供下列服务:(1) 录入帐号信息,格式为:帐号姓名密码身份证
2、日期余额利率操作人090800213435李四12345615020119880808008882011-11-2210.30.0037操作包括存款取款,利息结算。(2) 登录功能。输入帐号和密码进行登录。(3) 存款功能。登录某个帐号后,输入存款金额,更新账户的余额。(4) 取款功能。登录后,输入取款金额,当余额大于取款金额时,执行取款操作,(5) 利息结算。、根据存款的利率和存款时间金额计算利息并登入账户。(6) 查询。查询某个时间段内的账户操作记录。三、设计要求及成果根据系统功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计
3、系统的类层次;(3)完成类层次中各个类的描述(包括属性和方法);(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)提交课程设计报告:完成系统总结报告以及系统使用说明书二、 目录一、 内蒙古科技大学课程设计任务书2二、 目录3第1章 需求分析4第2章 总体设计4第3章 模块分析5 3.1 client类5第4章 详细设计64.1 工程视图64.2 类图视图64.3 主程序流程图74.3 主要算法的流程图7第5章 测试8第6章 总结9附录:程序代码10第1章 需求分析二、设计资料及参数用C+设计一个系统,能提供下列服务:(7) 录入帐号信息,格式为:帐号姓名密码身份
4、证日期余额利率操作人090800213435李四12345615020119880808008882011-11-2210.30.0037操作包括存款取款,利息结算。(8) 登录功能。输入帐号和密码进行登录。(9) 存款功能。登录某个帐号后,输入存款金额,更新账户的余额。(10) 取款功能。登录后,输入取款金额,当余额大于取款金额时,执行取款操作,(11) 利息结算。、根据存款的利率和存款时间金额计算利息并登入账户。(12) 查询。查询某个时间段内的账户操作记录。第2章 总体设计1.用结构框图表示各个功能之间的关系。2. 将框图中系统的各个功能用文字详细的描述。注册开户: 对未进行开户的人员进
5、行开户,并保存。登陆界面:对已开户人员进行登陆,从而进行下一步操作。存钱界面:输入存款金额并对以前剩余金额进行计算。取钱界面:取钱后在原金额的基础上进行减法计算。查询余额:查询现在账户内所剩余金额。 模块分析3.1 client类 制定用户的成员数据类型,进行登陆于保存功能并实现用户的各种功能。代码为:client:client(int l); string getID() return ID; string getname() return name; string getadress() return adress; string getphnumber() return phnumber
6、; string getcode() return code; string getmType() return mType; string getcType() return cType; double getbalance() return balance;第3章 详细设计3.1 工程视图说明有几个源代码文件,可以截取工程文件视图表示3.2 类图视图每个文件包含哪些类和函数,可以截图说明 3.3 主程序流程图 银行储蓄管理系统 登入 开户 退出 存款 查询余额 取款 修改密码 填写个人 信息3.3 主要算法的流程图第4章 测试运行测试: 图4.1 主菜单登陆测试: 图4.2 登陆账户存款测
7、试: 图4.3账户存款 取款测试: 图4.4账户取款查询余额测试: 图4.5查询余额修改密码测试:第5章 总结 通过这次c+课程设计,使我学到面向对象的程序设计思想用到具体的工作和学习中,加深对类与对象的理解,是将计算机课程与实际问题相连接的关键步骤。通过课程设计提高了自己分析问题,运用所学知识解决实际问题的能力,并培养了基本的程序设计技能。 这次的课程设计,让我用一个相对比较集中的时间去练习,特别是自己的动手能力,因为这次课程设计覆盖面比较广泛。经过了这次设计,让我找到了学习上的漏洞,一些课程设计上以前没有弄懂的知识,都在这次的课程设计上有所提高。附录:程序代码#include#includ
8、e#include#include using namespace std;void mainminue();class clientpublic: client();/构造函数 client:client(int l); string getID()/获取身份证号 return ID; string getname()/获取真实姓名 return name; string getadress()/获取地址 return adress; string getphnumber()/获取电话号码 return phnumber; string getcode()/获取密码 return code;
9、 string getmType()/获取货币种类 return mType; string getcType()/获取账户种类 return cType; double getbalance()/获取账户余额 return balance; int getlim() return lim; void setbalance(double m) balance=m; void setmType(string s) mType=s; void setcode(string c) code=c; void write(ofstream& s) sIDendl; snameendl; sadresse
10、ndl; sphnumberendl; scodeendl; scTypeendl; smTypeendl; sbalanceendl; slimendlID; sname; sadress; sphnumber; scode; scType; smType; sbalance; slim; void display() string temp; if(cType=cur) temp=活期存款; else if(cType=ter) temp=定期存款; else temp=信用卡账户; cout账户类型 余额 存款年限 endl; couttemp balance lim endl;priv
11、ate: string ID,name,adress,phnumber,code; string cType,mType; double balance;/账户余额 int lim;/存款年限client:client() ID=; name=; adress=; phnumber=; code=; cType=; mType=; balance=0; lim=0;client:client(int l) /client client_zx; string code_1; int flag=0,lim1=0,clientcount,change; string id,na,ad,ph,cT=,
12、mT=; double ba=0; lim=l; balance=0; mType=人民币; coutID; coutname; coutadress; coutphnumber; do system(cls); flag=0; cout请选择您要创建的账户种类:endl; cout1,活期存款账户endl; cout2,定期存款账户endl; cout3,信用卡账户change; if(change!=3&change!=1&change!=2) coutchoice is wrong! endl; getchar(); system(pause); system(cls); flag=1;
13、 else ifstream instream(zx.in); vector client1(100); for(int i=0;i100;i+) client1i.read(instream); if(instream.fail()!=0) break; instream.close(); clientcount=i; switch(change) case 1:cType=cur;break; case 2:cType=ter;break; case 3:cType=cre;break; for(i=0;iclientcount;i+) if(client1i.getID()=ID&cli
14、ent1i.getcType()=cType) cout账户类型已创建,按任意键返回重新创建; getchar(); flag=1; break; while(flag); do system(cls); coutcode; coutcode_1; if(code=code_1) cout账户创建成功,按任意键返回主菜单endl; getchar(); /system(cls); ofstream outputstream(zx.in,ios:app); write(outputstream); outputstream.close(); mainminue(); else cout密码输入不
15、一致,请按任意键重新输入!; getchar(); while(code!=code_1);/主函数int main() void mainminue(); mainminue();/调用主菜单函数 return 0;/主菜单函数void mainminue() int choice; void creater(); void loading(); do system(cls); cout欢迎使用银行管理系统:endl; cout1:创建账户endl; cout2:登入账户endl; cout0:退出choice; if(choice!=0&choice!=1&choice!=2) coutc
16、hoice is wrong! endl; getchar(); system(cls); /mainminue(); else switch(choice) case 1:creater();break; case 2:loading();break; case 0:break; while(choice!=0);/创建账户void creater() client client_zx(0);void loading() int i,j,clientcount,flag=0,choice,s=0,c1,geter,m; string c_id,ct,code_a,mType; char ch
17、; void bancher(); ifstream instream(zx.in); vector client1(100); for(i=0;i100;i+) client1i.read(instream); if(instream.fail()!=0) break; instream.close(); clientcount=i; cout请输入身份证号c_id; for(i=0;iclientcount;i+) if(client1i.getID()=c_id) flag=1;break; if(!flag) system(cls); cout您尚未创建任何账户,是否创建?; cout
18、1,yes; coutchoice; switch(choice) case 1:creater();break; case 2:break; else vector zx(3); for(i=0,j=0;i3&jclientcount;j+) if(client1j.getID()=c_id) zxi+=client1j; j=i; vector elseclient(100-j); for(i=0,m=0;(m(100-j)&(i100);i+) if(client1i.getID()!=c_id) elseclientm+=client1i; ofstream output(zx.in,
19、ios:app); for(i=0;im;i+) elseclienti.write(output); output.close(); do system(cls); cout请选择你要登入的账户类型; cout1,活期存款账户endl; cout2,定期存款帐户endl; cout3,信用卡账户c1; while(c1!=1&c1!=2&c1!=3); switch(c1) case 1:ct=cur;break; case 2:ct=ter;break; case 3:ct=cre;break; for(i=0;ij;i+) if(zxi.getcType()=ct) flag=0;bre
20、ak; if(flag) cout您尚未创建此种账户类型!; else do coutcode_a; for(i=0;ij;i+) if(zxi.getcode()=code_a) flag=1;break; if(!flag) cout密码错误:请重新输入:; s=1; else cout登陆成功!endl; getchar(); do do system(pause); system(cls); cout1,取款endl; cout2,存款endl; cout3,查询余额endl; cout4,同ID下其它账户信息endl; cout5,修改密码endl; cout6,返回主菜单c1; w
21、hile(c1!=1&c1!=2&c1!=3&c1!=4&c1!=5&c1!=6); if(c1=1) /取款 cout请输入取款金额:geter; if(zxi.getcType()=cur)&(geter=zxi.getbalance() cout请取钱=(geter-10000) cout请取钱endl; getchar(); zxi.setbalance(zxi.getbalance()-geter); else if(zxi.getcType()=ter)&(geter=zxi.getbalance()&(zxi.getlim()=0) cout请取钱endl; getchar();
22、 zxi.setbalance(zxi.getbalance()-geter); else if(zxi.getcType()=cur) cout账户余额不足endl; else if(zxi.getcType()=cre) cout账户透支过度endl; else cout定期存款用户未到期endl; getchar(); else if(c1=2) /存款 do system(cls); cout请选择货币类型endl; cout1,人民币endl; cout2,美元endl; ch=getchar(); while(ch!=1&ch!=2); switch(ch) case 1:mTyp
23、e=人民币;break; case 2:mType=美元;break; zxi.setmType(mType); cout请输入存款额度:geter; zxi.setbalance(zxi.getbalance()+geter); cout存款成功!按任意键返回=0) cout账户余额为zxi.getbalance()mTypeendl; else cout账户已透支-zxi.getbalance()mTypeendl; getchar(); else if(c1=4) /查询同ID下其它账户信息 for(i=0;ij;i+) zxi.display(); else if(c1=5) /修改密码 do system(cls); cout请输入密码:code_a; cout请再次输入密码:c_id; while(c_id!=code_a); zxi.setcode(c_id); cout修改成功,按任意键返回endl; getchar(); else mainminue(); while(c1!=6); while(s=1); ofstream outputer(zx.in,ios:app); for(i=0;ij;i+) zxi.write(outputer); outputer.close();
限制150内