/*
*Copyright (c) 2014, 烟台大学计算机学院
*All rights reserved.
*文件名称:week12-project4-2.cpp
*作者:高赞
*完成日期:2014年 11 月 14 日
*版本号:v1.0
*
*问题描述:对模拟银行系统的进一步完善,增加密码次数限制和重复确认等功能
*/
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
void stars();
void showbalance ();
double drawmoney(double);
int pass (int);
double deposit(double);
double transferaccounts(double);
string updatepassword(string);
string PASSWORD="gaozan0902";定义字符串变量作为密码;需要增加改密功能,不再用const
double balance=10000;
int main()
{
int n=0,choose;
cout << "欢迎光临!" << endl
<< "请输入密码:";
n=pass(n);
if (n==2)
{
cout << "对不起,您的银行卡已被冻结,请持相关身份证件到银行柜台解冻..." << endl;
exit(0);//尝试运用一下exit函数终止程序,需包含头文件#include <stdlib.h>
}
while (1)//设置一个死循环,程序里用break终止
{
cout << endl
<< "*您可以办理以下业务:" << endl
<< "*1.查询" << endl
<< "*2.取款" << endl
<< "*3.存款" << endl
<< "*4.转账" << endl
<< "*5.改密" << endl
<< "*0.退出" << endl
<< "请输入(0-5):" ;
cin >> choose;
if (choose==0)
{
cout << "谢谢使用,欢迎您下次再来!" << endl;
break;//此处跳出循环
}
switch (choose)
{
case 1:
showbalance();//输出余额
break;
case 2:
balance=drawmoney(balance);//取款并从余额中扣除相应金额
break;
case 3:
balance=deposit(balance);//存款并加上相应金额
break;
case 4:
balance= transferaccounts(balance);//转账并扣除相应金额
break;
case 5:
PASSWORD=updatepassword(PASSWORD);//更改PASSWORD
break;
default:
cout << "输入不符合要求,请重新输入!" << endl;
}
cout << "系统正在返回..." << endl;
stars();//每次运行程序分隔开来
cout << endl;
}
return 0;
}
void stars()
{
for (int n=1; n<=20; ++n)
cout << "*";
}
void showbalance()
{
cout << "您当前的余额是" << balance << "元。" << endl;
}
int pass(int n)
{
string userpassword="0";
cin >> userpassword;
while (PASSWORD!=userpassword && n<2)
{
++n;
cout << "第" << n << "次输入密码错误!" << endl
<< "若三次密码错误 系统将冻结您的银行卡!" << endl
<< "请输入密码:";
cin >> userpassword;
}
return n;
}
double drawmoney(double n)
{
double m;
cout << "请输入取款余额:";
cin >> m;
if((n-m)>=0)
{
n-=m;
cout << "取款成功,您当前的余额是" << n << "元。" << endl;
}
else cout << "余额不足,取款失败!" << endl;
return n;
}
double deposit(double n)
{
double m;
cout << "欢迎存款,请输入您要存款的金额:";
cin >> m;
n+=m;
cout << "存款成功,您当前的余额是" << n << "元。" << endl;
return n;
}
double transferaccounts(double n)
{
string i1,i2;
double m;
cout << "请输入转账余额:";
cin >> m;
cout << "请输入对方的账户:";
cin >> i1;
cout << "请再一次确认对方账户:";//增加对方账户确认功能
cin >> i2;
if (i1==i2)
{
if((n-m)>=0)
{
n-=m;
cout << "转账成功,您当前的余额是" << n << "元。" << endl;
}
else
cout << "余额不足,转账失败!" << endl;
}
else cout << "两次输入的对方账户不一致,转账失败!" << endl;
return n;
}
string updatepassword(string PASSWORD)
{
string oldpassword,newpassword1,newpassword2;
cout << "请输入旧密码:";
cin >> oldpassword;
if (PASSWORD==oldpassword)
{
cout << "请输入新密码:";
cin >> newpassword1;
cout << "请确认新密码:"; //密码重复确认
cin >> newpassword2;
if (newpassword1==newpassword2)
{
PASSWORD=newpassword1;
cout << "密码修改成功!" << endl;
}
else cout << "两次输入密码不一样,更改失败!" << endl;
}
else cout << "密码错误,更改失败!" << endl;
return PASSWORD;
}
运算结果:
总结心得:
㊣ 一个人花了一整天时间终于完成了这个项目。。。
㊣每次程序都要反复执行,把能想到的东西都作死地试一遍,才能发现隐藏的BUG和未完善的功能。。。㊣如果发现还有什么BUG,请 ↓ 回复我。。。 (╯▽╰)