第十二周项目四银行系统任务二---引入函数改善程序结构
2014-11-18 20:06
330 查看
问题及代码:
运行结果:
知识点总结:
自定义函数的应用,switch语句的应用。
学习心得:
当我刚看到这道题的时候,很头疼,觉着这个程序肯定很难写,我坐在电脑前犯愁了半个多小时,后来一想早晚都得写,然后就按照老师给的步骤一点一点的写,写了一个多小时,然后运行还都是错误,改了好长时间,直到现在,还是有我不满意的地方,就是在密码输错三次后,他先输出一句别的话,才输出“请到柜台办理密码查询后再来”这句话。
/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:郝俊宇 * 完成日期:2014年 11 月 18 日 * 版 本 号:v1.0 * * 问题描述:1、数据仍然只支持一位用户,所以用户帐号不必存储。要用全局变量存储:(1)用户密码(由于支持改密码功能,所以用变量,暂先用整型,声明时赋初值);(2)帐户余额(用浮点数表示,声明时赋初值) 2、在输入密码环节,实现有限次密码输入的限制,如果三次都没有输入正确,程序将直接退出,不允许用户继续操作。查验密码功能做成一个函数。 3、main()函数的结构将如下所示,work函数用于处理业务。 4、办理业务的函数work的结构如下:其中,各项业务分别编制一个函数完成。提示功能菜单(1.查询、2.取款、3.存款、4.转帐、5.改密、0.退出)后,由用户输入功能选择,用switch多分支完成对应的功能(有的功能依然只输出一句话提示即可)。图示给出建议(鼓励在合理范围内别出心裁): •输入1(查询),调用函数showbalance(),显示“您的余额是xxxx.xx元。” •输入2(取款),调用drawmoney(),完成取款。要求输入取款金额,若余额不够,提示不能取款,否则,帐户余额减少。取款后给出提示:“你的余额还有XXX.XX元”。在实际业务中,还涉及到计算的问题。本题暂不考虑,作为拓展建议,可以在此处考虑计息。 •输入3(存款):调用deposit(),完成存款,余额增加(过瘾吧,想存多少存多少)。存款后给出提示:“你的余额是XXX.XX元”。 •输入4(转帐):调用transferAccounts(),完成转帐,只支持转出功能。要求输入对方帐号和转帐金额,若金额充足,完成转帐,当前帐户的余额减少,对方帐户余额增加。由于本题只有一个帐号,故对方帐户增加的操作先不做了。 •输入5(改密):调用updatePassword()改变密码。要求先输入旧密码,对了以后才能改密。新密码要输入两次,只有两次完全相同时才可以完成修改。 •输入0,显示“谢谢,欢迎下次再来!”退出循环,返回调用函数。 •输入不是0-5,提示“输错了,不要急!” * 输入描述:n个数 * 程序输出: 对应的情况 */ #include <iostream> using namespace std; bool pass(); void work(); void showbalance(); void drawmoney(); void deposit(); void transferaccounts(); void updatepassword(); int password=123456; double balance=1234.56; int main() { cout<<"贺家银行欢迎您光临....."<<endl; cout<<"请输入密码:"; if(pass()) work(); else cout<<"请到柜台办理密码查询后再来。"<<endl; return 0; } bool pass() { bool pass=false; int n=0,i; do { cin>>i; n++; if(i==password) pass=true; else cout<<"请输入密码(这是第"<<n+1<<"次输入密码,三次不对将吞卡!):"; } while(i!=password&&n<3); return (pass); } void work() { cout<<"您可以办理下面的业务:"<<endl; cout<<"* 1.查询 2.取款 3.存款 4.转账 5.改密 0.退出"<<endl; cout<<"请输入(0--5):"; int i; while(cin>>i&&i!=0) { switch(i) { case 1: showbalance(); break; case 2: drawmoney(); break; case 3: deposit(); break; case 4: transferaccounts(); break; case 5: updatepassword(); break; case 0: cout<<"谢谢,欢迎下次再来!"; break; default: { cout<<"输错了,不要着急!"<<endl; cout<<"如需继续办理业务,请按1-5,结束请按0"<<endl; break; } } } return ; } void showbalance() { cout<<"您的余额是"<<balance<<"元。"<<endl; cout<<"如需继续办理业务,请按1-5,结束请按0"<<endl; } void drawmoney() { double e,d; d=balance; cout<<"请输入取款金额:"; cin>>e; if(e>d) cout<<"余额不够,不能取款!"<<endl; else balance=d-e; cout<<"你的余额还有"<<balance<<"元。"<<endl; cout<<"如需继续办理业务,请按1-5,结束请按0"<<endl; } void deposit() { double g,q; q=balance; cout<<"请输入存款金额:"; cin>>g; balance=q+g; cout<<"你的余额是"<<balance<<"元。"<<endl; cout<<"如需继续办理业务,请按1-5,结束请按0"<<endl; } void transferaccounts() { double i,j,k; k=balance; cout<<"请输入对方账号:"; cin>>i; cout<<"请输入转账金额:"; cin>>j; if(j>k) cout<<"转账失败!"<<endl; else { cout<<"转账成功!"<<endl; balance=k-j; cout<<"当前账户的余额减少,还剩"<<balance<<"元。"<<endl; cout<<"如需继续办理业务,请按1-5,结束请按0"<<endl; } } void updatepassword() { double h,i,j; cout<<"请输入旧密码:"; cin>>h; if(h==password) { cout<<"请输入新密码:"; cin>>i; cout<<"请确认新密码:"; cin>>j; if(i==j) { cout<<"密码修改成功!"<<endl; cout<<"如需继续办理业务,请按1-5,结束请按0"<<endl; } else { cout<<"密码修改失败!"<<endl; cout<<"如需继续办理业务,请按1-5,结束请按0"<<endl; } } else cout<<"旧密码不正确!请重新输入旧密码:"; }
运行结果:
知识点总结:
自定义函数的应用,switch语句的应用。
学习心得:
当我刚看到这道题的时候,很头疼,觉着这个程序肯定很难写,我坐在电脑前犯愁了半个多小时,后来一想早晚都得写,然后就按照老师给的步骤一点一点的写,写了一个多小时,然后运行还都是错误,改了好长时间,直到现在,还是有我不满意的地方,就是在密码输错三次后,他先输出一句别的话,才输出“请到柜台办理密码查询后再来”这句话。
相关文章推荐
- 第十二周项目四——银行系统(任务2:引入函数改善程序结构)
- 第12周项目5:银行系统,任务二:引入函数改善程序结构
- 第十二周项目 4 银行系统(引入函数改善程序结构)
- 第十二周 项目四:银行系统 任务三 将程序用多文件组织
- 第十二周项目四——银行系统(任务3:将程序用多文件组织)
- 第十二周项目四银行系统任务三--将程序用多文件组织
- 第十二周项目4-银行系统任务3
- 第十二周项目4-银行系统任务2
- 第十二周项目4-2,银行系统改善
- 第十二周 项目四:银行系统 任务二
- 第十二周项目4-银行系统(任务一)
- 第十二周项目四——银行系统(任务1:搭一个框架)
- 第十二周项目四 银行系统多函数
- 第12周项目5:银行系统,任务三:将程序多文件组织
- 第十二周 项目四:银行系统 任务一
- 架构,改善程序复用性的设计~第六讲 我的系统结构~将所有可以抽象的项目进行抽象(大结局)
- 第十二周项目4-银行系统任务一
- 第十二周项目4-银行系统任务4
- 第十二周项目四 银行系统 任务一 简单银行框架
- 第十二周项目四银行系统任务一——搭一个框架