/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院
* All rightsreserved.
* 作 者:樊露露
* 完成日期:2012年11月24日
* 版 本 号: v1.0
* 输入描述:无
* 问题描述: 调用函数编程银行系统
* 程序输出: 银行各种业务
* 问题分析:
*/
#include<iostream>
using namespace std;
int account1=123;//账号
int pwd1=123456;//密码
int currentAccount;//用全局变量保存当前登录的用户
double balance1=10000;//账号内的钱
int checkStatus();//登录账户
void work();//处理业务
void deposit();//存款
void drawmoney();//取款
void transferAccounts();//转账
void updatePassword();//修改密码
void showbalance();//查询余额
int main()
{
int status;
char ch;
cout<<"中国银行欢迎您!"<<endl;
while(1) //支持用户多次登录办理业务
{
status=checkStatus();
if(1==status)
work();
else if(2==status)
cout<<"欢迎下次光临……"<<endl;
else
cout<<"吞卡,请联系就近网点解决……"<<endl;
cout<<"=====要退出系统,请按键Q,其他键继续下一位用户登录======"<<endl;
fflush( stdin ); //清空输入缓冲区,否则getchar()自动获得
ch=getchar();
if(ch=='q'||ch=='Q')break;
}
return 0;
}
int checkStatus()//登录账户
{
int iStatus=3;
int iPass,num=1;
char goOn;
cout<<"请输入账号:";
cin>>currentAccount;
do
{
if(num==1)
cout<<"请输入密码";
else
{
cout<<"温情提示:这是您第"<<num<<"次输入密码,三次不对将吞卡。"<<endl;
cout<<"还要继续尝试吗(继续输入Y,退出输入N,之后回车):";
cin>>goOn;
if('Y'==goOn||'y'==goOn)
cout<<"请再次输入密码";
else
{
iStatus=2;
break;
}
}
cin>>iPass;
if(iPass==pwd1&¤tAccount==account1)
{
iStatus=1;
break;
}
++num;
}while(num<4);//密码不正确且次数在允许范围内循环
//如果在循环因为num==4为真而退出,iStatus的值还保持初始3,代表吞卡
return iStatus;
}
void deposit()//存款
{
double money;
if(currentAccount==account1) //确定帐户
{
cout << "请输入存款金额:";
cin >> money;
balance1+=money; //取款成功
cout<<"存款后,您的余额是:"<<balance1<<"元。"<<endl;
}
}
void drawmoney()//取款
{
double money;
if(currentAccount==account1) //确定帐户,目前只有一个帐户,真银行不这样,待改进
{
cout << "请输入取款金额:";
cin >> money;
if(money<=balance1)
{
balance1-=money; //取款成功
cout<<"取款后,您的余额是:"<<balance1<<"元。"<<endl;
}
else
{
cout<<"您的余额不足,取款失败。"<<endl;
}
}
}
void transferAccounts()//转账
{
double money;
int iAccount2;
if(currentAccount==account1) //确定帐户,目前只有一个帐户,真银行不这样,待改进
{
cout << "请输入转帐金额:";
cin >> money;
cout << "请输入对方帐户:";
cin >> iAccount2; //应该判断对方帐户的有效性再转账,暂时不做,待以后改进
if(money<=balance1)
{
balance1-=money;
cout<<"转账后,您的余额是:"<<balance1<<"元。"<<endl;
}
else
{
cout<<"您的余额不足,转账失败。"<<endl;
}
}
}
void showbalance()//查询余额
{
if(currentAccount==account1)
cout<<"您的当前余额是:"<<balance1<<"元"<<endl;
}
void updatePassword()//修改密码
{
int p1,p2;
if(currentAccount==account1)
{
cout << "请输入新密码:";
cin >> p1;
cout << "请确认新密码:";
cin >> p2;
if(p1==p2)//两次输入相符
{
pwd1=p1;
cout<<"密码修改成功!"<<endl;
}
else
{
cout<<"两次输入不一致,密码修改失败。"<<endl;
}
}
}
void work()//处理业务
{
char cChoice;
bool bExit = false;
do
{
cout<<endl<<"* 您可以办理下面的业务:"<<endl;
cout<<"* 1.查询"<<endl;
cout<<"* 2.取款"<<endl;
cout<<"* 3.存款"<<endl;
cout<<"* 4.转账"<<endl;
cout<<"* 5.修改密码"<<endl;
cout<<"* 0.退出"<<endl;
cout<<"* 请输入(0-4):";
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;
}
心得体会:快接近真的银行了。。加油!!!!!!!!!