任务2——引入函数改善程序结构
1、数据中,用户密码、帐户余额用全局变量存储。
2、在输入密码环节,实现有限次密码输入的限制,如果三次都没有输入正确,程序将直接退出,不允许用户继续操作。
并将查验密码功能做成一个函数。
/*
*Copyright (c) 2014,烟台大学计算机学院
*All gight reserved.
*文件名称:temp.cpp
*作者:邵帅
*完成时间:2014年11月12日
*版本号:v1.0
*/
#include<iostream>
using namespace std;
int password;
double money;
bool pass();
void work();
void exit();
void showbalance();
double drawmoney(double money);
double deposit(double money);
double transferAccounts(double money);
int updatePassword(int password);
int main()
{
password=123456;
money=10000;
cout << "麻鱼银行欢迎您的光临!" << endl;
cout << "请输入密码:";
if (pass())
{
cout<<endl;
work();
}
else
cout << "请到柜台办理密码查询后再来。" << endl;
return 0;
}
bool pass() // 输入密码函数&判断
{
int i = 1, pass;
bool passtrue = false;
do
{
cin >> pass;
if (pass == password)
{
passtrue = true;
return passtrue;
}
else
{
i++;
if (i < 4)
cout << "密码输入错误" << i-1 << "次,再输错" << 4 - i << "次将要吞卡。" << endl;
else if (i = 4)
cout << "银行卡已被吞。" << endl;
continue;
}
}
while (passtrue = false || i < 4);
}
void work()
{
int choice;
while (choice != 0)
{
cout << "* 您可以办理下面的业务:" << endl;
cout << "* 1.查询 2.取款 3.存款 4.转账 5.改密 0.退出" << endl;
cout << "* 请输入(0~5):";
cin >> choice;
switch (choice)
{
case 0:
exit();
break;
case 1:
showbalance();
break; // 查询
case 2:
money=drawmoney(money);
break; // 取款
case 3:
money=deposit(money);
break; // 存款
case 4:
money=transferAccounts(money);
break; // 转账
case 5:
password=updatePassword(password);
break; // 改密
default:
{
cout << "输入错误,请重新输入。" << endl;
continue;
}
}
}
}
void exit()
{
cout << "欢迎下次光临。" << endl;
}
void showbalance()
{
cout << "您当前的账户余额为:" << money << "元。" << endl<< endl;
work();
}
double drawmoney(double money)
{
double outmoney;
while (1)
{
cout << "请输入取款金额:";
cin >> outmoney;
if (outmoney > money)
{
cout << "对不去,余额不足。" << endl;
continue;
}
else
{
money -= outmoney;
cout << "取款后,您的余额是:" << money << "元" <<endl<<endl;
}
return money;
}
}
double deposit(double money)
{
double inmoney;
cout << "请输入存款金额:";
cin >> inmoney;
money += inmoney;
cout << "存款后,您的余额是:" << money << "元。" << endl<<endl;
return money;
}
double transferAccounts(double money)
{
double changemoney, otheraccount;
while (1)
{
cout << "请输入转账金额:";
cin >> changemoney;
cout << "请输入对方账户:";
cin >> otheraccount;
if (otheraccount > money)
{
cout << "对不去,余额不足,请重新输入。" << endl;
continue;
cout << endl;
}
else
{
money -= changemoney;
cout<<"汇款成功!"<<"您成功汇款"<<changemoney<<"元。"<<endl;
cout<<"您的余额:"<<money<<"元。"<<endl<<endl;
return money;
}
}
}
int updatePassword(int password)
{
int pass_1, pass_2;
while (1)
{
cout << "请输入旧密码:";
if (pass())
{
cout << "请输入新密码:";
cin >> pass_1;
cout << "请确认新密码:";
cin >> pass_2;
if (pass_1 == pass_2)
{
password = pass_1;
cout << "密码修改成功!" << endl<<endl;
return password;
cout << endl;
work();
}
else
{
cout << "两次密码输入不一致,请重新输入!" <<
endl;
continue;
}
}
else
{
cout << "请联系客服。" << endl;
continue;
}
}
}
运行结果:
@ Mayuko