




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、南昌航空大学C+语言课程设计题目:银行账户管理系统班级: 班学号: 姓名: 刘杨 日期: 2016年4月15日 一 题目介绍 银行账户管理程序 问题描述 设计计一个银行账户管理程序,账户的信息有账号(唯一)、姓名、余额、身份证号码、电话号码等,允许用户进行如下操作:开户、销户、存款、取款、转账、查询,一个用户可以有多个户头,账户的数值没有上限,保存为文件。基本要求 程序运行时,可以由用户选择进行何种操作。 输入:程常运行后,屏幕上显示一个文字菜单(根据序号选定相应的操作项目)当用户选定操作项目所对应的序号时,根据应用程序的提示信息,从键盘上输入相应的数据。输出:1.应用程序正常运行后,要在屏幕
2、上显示一个文字菜单2.要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容,格式及结束方式等 。二 系统分析本程序定义了一个银行类Bank,用户可根据界面提示自行操作。由于要实现界面的回复,所以用了大量的函数调用,在控制用户的循环操作时采用了大量的for循环、do while语句、if else语句、return语句、switch语句等。程序大体分为九个方面:1* 定义一个银行类Bank,数据成员主要有姓名、身份证号码、账号、电话号码、余额、密码等内容,可供用户操作的功能有首页,开户、存款、取款、转账、销户、查询等。2* 构造首页函数,显示银行系统的操作选择界面,具体包括开户、销
3、户、存款、取款、转账、查询、退出等七个部分,帮助客户清晰的看到需要进行服务的内容,以便按照提示进行选择。在选择是运用了do while 语句限定了只能按06之间的数字进行选择,按其他的键均不起作用。3* 构造开户函数,按照提示输入相关信息进行账户的创建,该系统根据不同的客户可创建多个账户,运用for循环语句和if判断语句保证每个用户和账号都不重复(即唯一)。如果账号重复,系统会提示账号已经存在请重新创建,并且把开户的结果保存在文件中。4* 构造存款函数,主要运用for循环语句和if判断语句,用户输入账号进行存款,如果账号不存在系统会提示账号不存在,然后提示重新输入账号或者先进行开户再进行存款。
4、若账号正确系统提示输入所存金额,则存款成功,同时信息会保存在文件中。5* 构造取款函数,主要运用for循环语句和if else判断语句,输入银行账号和密码,若账号正确密码错误会显示密码错误,然后重新输入密码。若密码和账号都正确则可以进行取款服务,若密码和账号都错误,则系统会提示该账户不存在。并且把信息保存在文件中。6* 构造转账函数,主要运用for循环语句和if else判断语句及return语句等,只要正确输入转出、转入账户的密码和账号就可实现将一个账户所存的钱转给另一个账户,但若转账金额大于所存金额系统会提示余额不足,若密码和账户有一个出错则转账服务无法完成,并且把相关信息存在文件中。7*
5、 构造销户函数,主要运用for循环语句和if else判断语句及return语句等, 若输入的密码和账户信息均正确则系统会把所有的创建信息删除,若有一个不正确则销户服务完成不了。8* 构造查询函数,主要运用for循环语句和if else判断语句及return语句等,只要正确输入信息就可以从页面上看到用户的账户号 、姓名 、余额等,若输入不正确则会提示账户不存在或密码错误。9* 主函数部分,运用switch语句分7种情况进行函数调运,在主页中选择不同的服务,则进行调用上述的函数。程序流程图为:开 始 首页界面中选择要服务的类型 Bank:shouye()Bank:shouye() Bank:sh
6、ouye() 开户(Bank:kaihu(Bank bank))同时可以开许多账户销户Bank:xiaohu(Bank bank)转账(Bank:zhuanzhang(Bank bank))存款(Bank:cunkuan(Bank bank))取款Bank:qukuan(Bank bank)查询Bank:chaxun(Bank bank)退出系统结 束三 程序代码 #include#include#include#include#includeclass Bank public:static int num; int shouye();/首页void kaihu(Bank bank);/开户
7、void cunkuan(Bank bank);/存款 void qukuan(Bank bank);/取款 void zhuanzhang(Bank bank);/转帐void xiaohu(Bank bank);/销户 void chaxun(Bank bank);/查询 private: char name20;/姓名char ID20; /身份证 long count;/账号int number;/电话号码char mima20; /密码int money; /余额;/构造首页函数显示选择界面int Bank:num=0;int Bank:shouye() char i;dosyste
8、m(cls); couttt$*$ endl tt$ $ endl tt$ 银行账户管理系统 $ endltt$ $ endl tt$ $ endl tt$ 1. 开户. 4. 转帐. $ endl tt$ $ endl tt$ 2. 存款. 5. 销户. $ endl tt$ $ endl tt$ 3. 取款. 6. 查询. $ endl tt$ 0. 退出 $ endl tt$*$ endl endl i;while(i-06);return i-0;/构造开户函数void Bank:kaihu(Bank bank)int j;char mima120;ofstream os(账户.txt
9、,ios:app);banknum.money=0;cout请输入创建姓名;cout请输入身份证号banknum.ID;cout请输入创建账号banknum.count;cout请输入电话号码banknum.number;cout请输入密码banknum.mima;cout请再次输入密码mima1; if(strcmp(mima1,banknum.mima)!=0) cout密码前后输入不一致,请重新输入endl; return; for(j=0;jnum;j+)if(banknum.count=bankj.count)cout账号已存在,请从新输入账号kaihu(ba
10、nk);cout账户创建成功,请牢记你的密码和账号!endl;os姓名 账号 余额endl; banknum.count banknum.moneyendl;os.close();num+;/构造存款函数void Bank:cunkuan(Bank bank) long count; int money=0;cout请输入银行账号count;for(int i=0;inum;i+)if(count=banki.count)cout请输入所存金额money;banki.money+=money;cout存款成功!endl;ofstream os(账户.txt);for
11、(int j=0;jnum;j+) banki.count banki.mimaendl;return;cout此账户不存在,请先进行开户endl;/构造取款函数void Bank:qukuan(Bank bank) long count; int money=0;char mima20;cout请输入银行账号count;cout请输入密码mima;for(int i=0;inum;i+)if(strcmp(mima,banki.mima)!=0)&(count=banki.count)cout密码错误,请重新输入mima;if(strcmp(mima,banki.m
12、ima)=0)&(count=banki.count)cout请输入取款金额money;banki.money-=money;cout取款成功!endl;ofstream os(账户.txt);for(int j=0;jnum;j+) banki.count banki.mimaendl;return;elseif(strcmp(mima,banki.mima)=0)&(count=banki.count)cout请输入取款金额money;banki.money-=money;cout取款成功!endl;ofstream os(账户.txt);for(int j=0;
13、jnum;j+) banki.count banki.mimaendl;return; cout此账户不存在,请先进行开户endl;/构造转账函数void Bank:zhuanzhang(Bank bank) long count1,count2;int money;coutcount1;cout请输入密码mima;for(int i=0;inum;i+) if(strcmp(mima,banki.mima)=0)&(count=banki.count)cout请输入转账的用户账号count2;for(int j=0;jnum;j+) if(count2=bankj.
14、count) coutmoney; if(banki.money-money0) cout对不起,您的账户上余额不足endl; return; banki.money-=money; bankj.money+=money; cout转账成功!endl; ofstream os(账户.txt); for(int k=0;knum;k+) banki.count banki.mimaendl; return;cout该用户不存在endl;return;cout您输入的账户不存在或密码错误endl;/构造销户函数void Bank:xiaohu(Bank bank) int
15、 i,j;long count;char mima20;cout请输入银行账号count;cout请输入密码mima;for(i=0;inum;i+)if(strcmp(mima,banki.mima)=0)&(count=banki.count)int c;cout您确定要注销此户(Y/N)?c;if(c=n|c=N)return;elsefor(j=i;jnum-1;j+) strcpy(,bankj+1.name); strcpy(bankj.ID,bankj+1.ID); strcpy(bankj.mima,bankj+1.mima); bankj.count=ba
16、nkj+1.count; bankj.money=bankj+1.money; bankj.number=bankj+1.number;num-;coutnttt账户注销成功!endl;ofstream os(账户.txt); for(i=0;inum;i+) banki.count banki.mimaendl;system(pause);return; cout您输入的账户不存在或密码错误endl;/构造查询函数void Bank:chaxun(Bank bank) int i;long count;char mima20;cout请输入银行账号count;cou
17、t请输入密码mima;for(i=0;inum;i+)if(strcmp(mima,banki.mima)=0)&(count=banki.count)cout姓名endl;cout账号banki.countendl;cout余额banki.moneyendl;return;cout您输入的账户不存在或密码错误shouye() case 0: cout谢谢使用!kaihu(bank) ; system(pause); break; case 2: bank-cunkuan(bank) ; system(pause); break; case 3: bank-qukuan(b
18、ank) ; system(pause); break; case 4: bank-zhuanzhang(bank) ; system(pause); break; case 5: bank-xiaohu(bank) ; system(pause); break; case 6: bank-chaxun(bank) ; system(pause); break;四 运行结果1、首先给出用户操作界面2、用户根据提示选择相应功能1*若选择的是1(开户)就有只要多次选择1就可开多个账号若建立的账号重复系统会提示让重新建立2* 若选择的是2(存款)若银行账号不存在系统会提示让先开户3*若选择3(取款)
19、若密码错误会提示重新输入若账号不存在则取款服务完成不了4*若选择的是4(转账)若账号不存在系统会提示5*若选择的是5(销户)6*若选择的是6(查询)若查询的是已开户的只要输入信息正确就有 若查询的是已开户的只要信息正确就有若输入的信息错误就有7*若选择的是0(退出)就有五 总结通过此次课程设计,让我感触颇多,我们光靠课本上的知识是远远不够的,书上的内容仅仅是一些简单的基础知识,如果要编写大型的程序,我们必须要学习大量的其他知识,所以平时一定要养成自学的习惯。还有通过编程让我认识到好多基础知识都不扎实,有些当时上课感觉掌握了,但一到实践就查出问题了,所以以后无论学啥都要认真、都要仔细。就本程序而
20、言,虽然题目要求并未涉及用户密码,但是作为银行的模拟系统应当设置用户密码,所以我加入了密码,使系统更加的具有实用性和真实性,这是比较好的一面,但是销户后的帐户并不能直接通过类中定义的函数分配给其他的用户,程序在进行多次调用函数后在最后销户时会出错,这是需要进一步改进的一面。尽管如此,但并不影响用户的实际操作及用户的数据。 本程序全都采用通俗易懂的函数和语句构成,别人易看,操作简单、易懂,结构清晰,思路合理,但还有很多不足,在以后的学习中,一定要注意,争取在以后编程时,能够避免本程序的不足。总之,此次课程实际,让我更加熟悉了C语言和C+,体会到了编程的酸甜苦辣,感受到了计算机语言的微妙与神奇。让我学会了很多知识。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西卫生健康职业学院《金融风险分析师(FRM)专题(双语)》2023-2024学年第二学期期末试卷
- 浙江金融职业学院《供变电系统项目设计》2023-2024学年第二学期期末试卷
- 厦门工学院《计算机在林业中的应用》2023-2024学年第二学期期末试卷
- 湖南铁道职业技术学院《生物化学实验A》2023-2024学年第二学期期末试卷
- 华北理工大学轻工学院《科研写作》2023-2024学年第二学期期末试卷
- 齐鲁医药学院《中外文化比较专题》2023-2024学年第二学期期末试卷
- 重庆对外经贸学院《包装材料及应用》2023-2024学年第二学期期末试卷
- 医院科室年度工作总结
- 母亲六十岁生日宴会主持词(7篇)
- 公司前台的工作总结
- 免疫检查点抑制剂相关肺炎诊治专家共识
- 计算机网络技术基础 (项目式微课版) 课件全套 崔升广 第1-6章-计算机网络概述 - 广域网技术
- 康复治疗技术专业《康复工程技术》课程标准
- (高清版)TDT 1013-2013 土地整治项目验收规程
- 床位预约管理提高患者就诊效率减少等待时间
- 吉利围墙施工组织设计样本
- 人教版三年级上册数学应用题100题及答案
- 第6课《飞向蓝天的恐龙》两课时学习任务单部编版四年级语文下册
- 语文新课标背景下单元整体教学:六下第4单元大单元设计
- 福州地铁公司招聘考试题目
- 小学语文期末质量分析报告
评论
0/150
提交评论