做拼货商城网站/网络推广竞价外包
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759
【项目5-银行系统】
这是我们要做的一个真正的项目!涉及到的技术都用过了,只不过,程序真的要长得多了。
在学习中,总是想要些成就感的。当你没有做过一些事情的时候,总是不能知道所学知识究竟能干些什么。在学习过程中,完成一个像样的项目,那是一件很酷的事情,也让我们更有激情。做好思想准备,中间可能会有些困难,但相信沉下心来还是可以完成的。
要做项目的需求最好能和大家的生活实践联系起来,我们想得到。另外,还能和我们的课程同步上。两厢结合,我们就开个银行,做个自动取款机吧。
如果没有用过自动取款机,先用你的银行卡取一次钱去吧,权当作调研。
我们首先插卡,输密码。做纯软件模拟,我们没有读卡机,好吧,认为卡已经插好了。
为了让大家一点一点地做出来,我试图分解其中的工作,我们逐渐完善,“增量式”地完成工作。你可以每做完一个任务,就发一篇博文,将这样一个成长的阶段记录下来。
任务2——引入函数改善程序结构
各项业务分别编制一个函数完成。提示功能菜单(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,提示“输错了,不要急!”
#include<iostream>
using namespace std;
int password = 123456;
double balance = 10000;bool pass();
void work();
void showbalance();
void drawmoney();
void deposit();
void transferAccounts();
void updatePassword();int main()
{cout<<"贺家银行欢迎您光临……"<<endl;if(pass())work();elsecout<<"不要着急,想好了再输入……"<<endl;return 0;
}//检验密码
//返回值:通过-true; 不通过-false
bool pass()
{bool bPass=false; //先假设不正确,直至正确后赋值为trueint iPass;int num=1;do{cout<<"请输入密码";if(num>1)cout<<"(提示:这是第"<<num<<"次输入密码,三次不对将吞卡)";cin>>iPass;num++;if(iPass==password)bPass=true;}while(!bPass&&num<4); //密码不正确且次数在允许范围内return bPass; //密码正确为true,表示通过,反之……
}//处理业务
void work()
{char cChoice;bool bExit = false;do{cout<<endl<<"* 您可以办理下面的业务:"<<endl;cout<<"* 1.查询 2.取款 3.存款 4.转账 5.改密 0.退出"<<endl;cout<<"* 请输入(0-5):";cin>>cChoice;switch(cChoice){case '1':showbalance();break;case '2':drawmoney();break;case '3':deposit();break;case '4':transferAccounts();break;case '5':updatePassword();break;case '0':cout<<"欢迎您下次来存款. "<<endl;bExit=true;}}while(!bExit);return;
}//查询余额
void showbalance()
{cout<<"您的当前余额是:"<<balance<<"元"<<endl;
}//取款
void drawmoney()
{double money;cout << "请输入取款金额:";cin >> money;//下面不计利息了,从现在起,我们的银行只提供银行卡业务,先不计息的if(money<=balance){balance-=money; //取款成功cout<<"取款后,您的余额是:"<<balance<<"元。"<<endl;}else{cout<<"您的余额不足,取款失败。"<<endl;}}
//存款
void deposit()
{double money;cout << "请输入存款金额:";cin >> money;//下面不计利息了,从现在起,我们的银行只提供银行卡业务,是定期统一计息的balance+=money; //取款成功cout<<"存款后,您的余额是:"<<balance<<"元。"<<endl;
}//转帐
void transferAccounts()
{double money;int iAccount2;cout << "请输入转帐金额:";cin >> money;cout << "请输入对方帐户:";cin >> iAccount2; //应该判断对方帐户的有效性再转账,暂时不做,待以后改进if(money<=balance){balance-=money; //取款成功//此处应该为对方帐户增加余额,暂时略cout<<"转给"<<iAccount2<<"后,您的余额是:"<<balance<<"元。"<<endl;}else{cout<<"您的余额不足,转账失败。"<<endl;}
}void updatePassword()
{int p1,p2;cout << "请输入旧密码:";cin >> p1;if(p1!=password){cout<<"旧密码输入不正确,不允许修改密码。"<<endl;}else{cout << "请输入新密码:";cin >> p1;cout << "请确认新密码:";cin >> p2;if(p1==p2)//两次输入相符{password=p1;cout<<"密码修改成功!"<<endl;}else{cout<<"两次输入不一致,密码修改失败。"<<endl;}}
}
==================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章分类目录(不定期更新) ==|
|== C++ 课堂在线专栏 贺利坚课程教学链接(分课程年级) ==|
======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======