《2022年C++课程设计报告模拟银行管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年C++课程设计报告模拟银行管理系统 .pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机科学与技术学院实践教学(实验、课程设计、实习)报告课程名称 C+语言程序设计(课程设计)设计选题:模拟银行管理系统指导老师:XXX专业班级:计算机科学与技术07102班姓名:XXX学号:200717010204 同组人员:XXXXXXXXXXXXXXXXXXX完成日期:2008年 9 月附件:1.报告电子版;2.相关源代码和数据原始电子版文件说明:结论(通过、不通过)作为相关教环节考核必要依据;格式不符合要求;数据不实,不予通过。报告和电子数据必须作为实验现象重复的关键依据。指导教师评语:审查结论签名:年月日名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 19 页 -学术诚
2、信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下进行设计工作及取得的研究结果。尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果;也不包含其它教育机构使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。本人签名:日期:年月日名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 3 页/共 19 页C+
3、程序设计课程设计:模拟银行管理系统一、课题:模拟银行管理系统模拟银行的管理系统,用户登陆银行管理系统时,可以进行开户,销户,修改登录密码,存钱,取钱,转账等操作,并把用户的资料保存起来,以便于下次登陆。二、设计功能、算法、体会:系统由 2个类构成,YH(银行类)和 Consumer(客户类),Consumer(客户类)是 YH(银行类)的公有继承类。YH(银行类)中有实现登陆系统,开户,销户,转账,退出系统等功能函数,Consumer(客户类)中有实现存钱,取钱,修改个人账号密码,显示个人账号信息等功能函数。因为 Consumer(客户类)是 YH(银行类)的公有继承类,所以,一个用户只需创建
4、一个Consumer(客户类)对象,当用户进行开户,销户等操作时,可以直接调用YH(银行类)的成员函数。YH(银行类)中的成员函数:1开户功能:功能:实现在银行系统中用户开设自己的账户。基本思想:利用 Set_account()函数,用户输入自己的账号,姓名,密码,开户金额,然后进行保存,并记录用户个数加1。具体步骤:先定义几个变量,用来保存用户输入的账号,姓名,密码,开户名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 4 页/共 19 页C+程序设计课程设计:模拟银行管理系统金额,用户按照相应的提示输入相应的数据
5、,如账号是整型,姓名是字符型等。语句描述如下:1.coutendlid;3.coutendlnam;5.coutendlpassw;7.coutendlm;因为开户金额只能是大于0 的数字,所以,需要对输入的数据进行判断,以确保输入无误,当输入都正确后,用 Save()函数进行保存,并让记录用户数目的静态成员变量acnum加 1,语句描述如下:9.while(m=0)10.11.cout请输入正确的数字!m;13.14.consumer*acc=new consumer(id,nam,passw,m);15.accountacnum=acc;16.cout开户成功!endl;17.acnum+
6、;18.save();销户功能:功能:实现删除账户的操作。有开户的,那肯定也有销户的,但是销户函数比开户函数步骤简单些。因为它是把该账号所有的信息都删除,不需要对该账号的信息进行筛选。基本思想:输入要销户的账号,把该账号的所有信息删除。具体步骤:名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 5 页/共 19 页C+程序设计课程设计:模拟银行管理系统先输入要销户的账号,然后,进行查找,看该账号是否存在,不存在则返回,存在则删除该账号的所有信息,同时,记录账号数目的静态成员变量 acnum减 1,并用 save()函
7、数对修改后的数据进行保存,语句描述如下:19.int flag=1;20.int i=0;21.while(iget_id()24.25.flag=0;26.27.else 28.29.i+;30.31.32.if(flag)33.34.35.cout帐号不存在!endlendl;36.return;37.38.for(int j=i;jacnum;j+)39.40.accountj=accountj+1;41.42.accountacnum-1=NULL;43.acnum-;44.cout注销成功!endl;45.save();体会:这个销户函数步骤虽然简单,但比开户函数更有技巧性,因为它需
8、要判断要销户的账号是否存在。我是定义了一个中间变量flag,先让它等于 1,然后用 while 循环进行查找,看是否有该账号,如果账号存在,则令 flag=0,这样就可以通过 flag 的值来判断是否有相同的名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 6 页/共 19 页C+程序设计课程设计:模拟银行管理系统账号,语句描述如下:46.int flag=1;47.while(iget_id()50.51.flag=0;52.53.else 54.55.i+;56.57.58.if(flag)59.60.61.co
9、ut帐号不存在!endlendl;62.return;63.这样就可以判断账号是否存在,并显示出来。当登陆系统和转账时,同样都需要判断账号是否存在,本可以把这段代码编译成一个功能函数,专门用来判断账号是否存在,可以程序变的更简洁,但因为需要修改的地方不少,所以就没去做了,如果下次我还碰到这样的问题,那一定要采用。转账功能:功能:实现用户与用户之间进行转账的操作。基本思想:首先登陆自己的账号,然后,输入别人的账号以及转账的数目。具体步骤:创建一个 transfer()函数,当用户登陆账号后,如果进行转账操作,名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 19 页 -计算机科学与技
10、术学院课程设计、实验、实习报告专用纸第 7 页/共 19 页C+程序设计课程设计:模拟银行管理系统则调用它。进行转账时首先输入别人账号,这时需要判断输入的账号是否存在,这跟前面销户函数的一样,用while+if 来实现,然后输入你要转给别人的钱的数目,这个数目跟前面你开户输入的数目一样,不能为负数,因为不可能你转账给别人,还让别人减少钱,同时这个数目也不能大于你自己账户里金额,如果这些都符合,则进行可以转账,自己的账户减少一定的金额,别人账户增加相应的金额。语句描述如下:64.coutid;66.int flag=1;67.int i=0;68.while(iget_id()71.flag=0
11、;72.else i+;73.74.if(flag)75.76.cout帐号不存在!endlendl;77.return;78.79.float b;80.coutendlb;82.while(b=0)83.84.cout请输入正确的数字!endl;85.cout;86.cinb;87.88.if(accountx-get_money()b)89.cout对不起,金额不够!dec_money(b);93.accounti-add_money(b);名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 8 页/共 19 页
12、C+程序设计课程设计:模拟银行管理系统94.体会:这个功能函数虽然没什么难的地方,但它有一些实际问题要考虑,我们转账的时候,不可能会让别人的金额减少,不然,谁还敢去银行存钱。当我们写其他程序时,同样要牢记,函数实现的功能要与实现相符合。4用户登陆功能:基本思想:定义 enter_account()函数,当用户登陆时,调用此函数,用户输入自己的账号,密码后,并可以进行相应的操作。主要步骤:用户登陆时,输入自己的账号,这时,与前面销户函数,转账函数一样,判断账号是否存在,如果存在,则输入账号的密码,如果密码正确,则显示该账号的信息,如:用户的姓名啊,余额啊,同时还可以进行其他的操作,如取钱,存钱,
13、转账,修改密码等。描述语句如下:95.cout请选择你要进行的操作:endl1)查看信息endl 96.2)取款endl3)存款endl4)修改密码endl 97.5)转账endl6)返回n;99.switch(n)100.101.case 1:accounti-display();break;102.case 2:accounti-fetchmoney();save();break;103.case 3:accounti-savemoney();save();break;104.case 4:accounti-change_passwd();save();break;105.case 5:t
14、ransfer(i);save();break;106.case 6:return;107.名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 9 页/共 19 页C+程序设计课程设计:模拟银行管理系统体会:这个函数功能简单,但是必不可少,用户可以通过这个函数来管理自己的账号。在后面作判断时,因为只可能出现1 到 6,所以采用switch()来判断,虽然采用if,else的嵌套可以实现,但看着会觉的很复杂。开始菜单功能:功能:显示操作信息,用户可以根据显示的信息,按照提示,进行相应的操作。算法思想:用 cout 输出操
15、作信息,如输出“1)用户开户 2)账户登陆 3)帐户注销 4)退出系统”,用户根据上面显示的信息,按照提示,可以进行相应的操作,如输入1,则调用开户函数,用户并可以进行开户操作了,如果输入的不是1 到 4,则重新输入,描述语句如下:108.coutendl请你输入相应的操作序号进行操作:endl;109.cout1)用户开户endl2)账户登陆endl 110.3)帐户注销endl4)退出系统endl;111.cout;112.cinn;113.while(n4)114.115.cout请输入正确的操作序号!endl;116.cout;117.cinn;118.119.switch(n)120
16、.121.case 1:set_account();122.break;123.case 2:enter_account();名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 10 页/共 19 页 C+程序设计课程设计:模拟银行管理系统124.break;125.case 3:del_account();126.break;127.case 4:exitYH();128.break;129.体会:这个功能是整个程序的开始,通过它来调用其他功能函数进行其他的操作,本来可以把它做的更美观点的,但感觉没什么实际意思就没去
17、修改了。6读取与保存功能:功能:用来保存用户的信息以及登陆时读取用户的信息。算法思想:利用 ofstream,ifstream 输入输出流,将用户的信息保存在文件里,具体步骤:创建输入输出流ofstream,ifstream,将用户的信息保存进来,当用户登陆时,则对保存的信息进行读取,看是否有相符合的信息,实现语句如下:/保存130.ofstream outfile(bankdat.dat,ios:out);131.int n=0;132.outfileacnum;133.for(;nacnum;n+)134.135.outfileID;136.outfilemoney;137.outfile
18、name;138.outfilepasswd;139.名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 11 页/共 19 页 C+程序设计课程设计:模拟银行管理系统140.outfile.close();/读取141.ifstream infile(bankdat.dat,ios:in);142.if(!infile)143.144.cerr读取错误,无资料中!acnum;151.for(;nid;154.infilem;155.infilenam;156.infilepassw;157.accountn-pas
19、swd;158.consumer*acc=new consumer(id,nam,passw,m);159.accountn=acc;160.161.infile.close();162.cout读取资料正常!endl;体会:我很少用文件的形式来保存信息,因为自己对这一块不太懂,感觉很陌生,这一次也是参考了别人的程序才能编写完成,用了这个方法后,发现这种方法还是很有优势的,将信息保存下来后,你把VS关了,下次登陆时,还可以读取到上次的信息,因为它会在文件夹里会生成一个 dat 类型的文件,将信息保存在这个文件里。以后有机会,我一定要多试试这种方法,好好的掌握它。以上都是YH(银行类)里的功能函
20、数,它们主要是用来实现用户对银行系统的操作,而下面的Consumer(客户类)里的功能的函数,它们则主要是用来实现对自己账户的操作。名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 12 页/共 19 页 C+程序设计课程设计:模拟银行管理系统Consumer(客户类)中的成员函数:1存钱功能:功能:可以对自己的账户进行存款。算法思想:先输入存钱的数目,当然又要判断输入的数目是否为负数或者0,如果是,则重新输入。存完钱后,你有可能还需要进行操作,因此,后面再作个判断,描述语句如下:163.do 164.165.co
21、utendl你要存多少钱:c;167.while(c=0)168.169.cout请输入正确的数字!c;171.172.money=money+c;173.cout操作已成功!endl;174.cout是否要继续该项操作:(Y/N)ch;176.while(ch!=n&ch!=N&ch!=Y&ch!=y)177.178.cout是否要继续该项操作:(Y/N)ch;180.181.182.while(ch=y|ch=Y);体会:有些程序,虽然实现的功能的差不多,但有的人写的就是好,我觉的好可能就好在他考虑了一般人使用这个程序的习惯,让程序变的更人性化了,别人用起来舒服,顺手,自然感觉就好。所以,
22、我们以名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 13 页/共 19 页 C+程序设计课程设计:模拟银行管理系统后写程序的时候一定要留心观察,注意细节,尽量多站在用户角度思考问题,这样才能做的更好,更受用户欢迎。8取钱功能;功能:可以冲自己的账号进行取钱的操作。算法思想:这个函数跟前面的存钱函数差不多,先是输入你要取钱的数目,并判断输入的数目是否符合要求,不符合则重新输入。同样,输入完后,可能还需要进行该操作,因此,在后面再作个判断,描述语句如下:183.do 184.185.coutendl你要存多少钱:c
23、;187.while(c=0)188.189.cout请输入正确的数字!c;191.192.money=money+c;193.cout操作已成功!endl;194.cout是否要继续该项操作:(Y/N)ch;196.while(ch!=n&ch!=N&ch!=Y&ch!=y)197.198.cout是否要继续该项操作:(Y/N)ch;200.201.202.while(ch=y|ch=Y);203.名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 14 页/共 19 页 C+程序设计课程设计:模拟银行管理系统9修
24、改密码功能;功能:用于修改用户自己账号的登陆密码。算法思想:创建 change_passwd()函数用以修改密码,当用户输入修改密码的操作时,就可以直接调用它。因为密码一旦丢失,则不能登陆相应的账号,会造成无法挽回的损失,所以,当你在修改密码时,一般都会被要求输入 2 次,以免产生错误。这个系统也是一样,修改密码时,要求输入 2 次,如果前后输入的不同,则修改密码失败,重新输入,直到 2 次输入的密码相同,才修改密码成功。描述语句如下:204.string pwd,repwd;205.coutpwd;207.coutrepwd;209.while(pwd!=repwd)210.211.cout
25、你输入的两次密码不一样,请重新输入!endl;212.coutpwd;214.coutrepwd;216.217.passwd=pwd;218.cout密码修改成功,请牢记!1-你输入 1,并选择了开户。然后按照提示输入账号,姓名,密码等。-读取错误,无资料中!请你输入相应的操作序号进行操作:1)用户开户Consumer(客户类)savemoney()fetchmoney()change_passwd()display()名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 17 页/共 19 页 C+程序设计课程设计
26、:模拟银行管理系统2)账户登陆3)帐户注销4)退出系统请选择 1 请输入开户号:001 请输入开户人姓名:liu 请输入开户密码:123 请输入存入金额:100 开户成功!-按照上面的操作,在这个银行系统中开户成功。于是,你可以用你刚开的账号进行登陆了。选择2,然后输入自己的账号,密码。-读取资料正常!请你输入相应的操作序号进行操作:1)用户开户2)账户登陆3)帐户注销4)退出系统请选择 2 请输入帐号:001 请输入密码:123-输入完毕后,按回车。如果,账号和密码输入无误的话,则会显示这个账号的信息,表明登陆成功。-*用户姓名:liu*帐号:1*余额:100*-以上便是登陆后显示的信息,与
27、你在开户时输入的完全一致。名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 18 页/共 19 页 C+程序设计课程设计:模拟银行管理系统五、源程序:1.#include 2.#include 3.#include 4.#include 5.using namespace std;6.class consumer;7.class YH 8.9.public:10.YH();11.void set_account();/银行开户12.void del_account();/销户函数13.void transfer(i
28、nt);/转账14.void enter_account();/账号登陆函数15.void exitYH();/退出系统16.void functionshow();/开始的菜单函数17.void save();18.void load();19.protected:20.consumer*account20;21.static int acnum;/记录账户数22.;23.int YH:acnum=0;24.class consumer:public YH 25.26.public:27.friend class YH;28.consumer(int id,string Name,strin
29、g PassWord,float m)29.30.ID=id;31.name=Name;32.money=m;33.passwd=PassWord;34.35.consumer()/带默认参数的构造函数36.37.ID=0;38.name=0;39.money=0;40.名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 19 页 -计算机科学与技术学院课程设计、实验、实习报告专用纸第 19 页/共 19 页 C+程序设计课程设计:模拟银行管理系统41.int get_id();42.string get_passwd();43.void savemoney();/存钱函数44.v
30、oid display();/显示信息函数45.void fetchmoney();/取钱函数46.void change_passwd();/修改密码函数47.void add_money(float);48.void dec_money(float);49.float get_money();50.private:51.int ID;52.string passwd;53.string name;54.float money;55.;以上只是源代码的一部分。六、参考文献1 陈维兴、林小茶,“C+面向对象程序设计教程”,北京,清华大学出版社,2004.8 名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 19 页 -