5、ATM柜员机模拟程序
要求:设计一个程序,当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:
查询余额:初始余额为10000元
ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
ATM存款:不能出现负存款。
修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
#include<iostream>
using namespace std;
int chaxun(int a3)
{
int b;
b=a3;
cout<<"您的余额为:"<<b;
return a3;
}
int qvkuan(int a3)
{
int a,b,c=1;
cout<<"请输入您要提取的现金,数值为100的倍数:"<<endl;
while(c)
{
cin>>a;
if(5000-a>=0)
if(a%100==0)
{
b=a3-a;
c=0;
}
else
{
cout<<"对不起,您的输入有误,请重新输入:"<<endl;
c=1;
}
else
cout<<"对不起,超过取款上限。"<<endl;
}
if(b<0)
cout<<"对不起 ,您的余额不足。";
else
{
cout<<"请您收好现金,卡内余额为:"<<b;
a3=a3-a;
}
return a3;
}
int gaimi(int a2)
{
int b,c=1,d,e=1;
while(e)
{
cout<<"请输入您的旧密码:";
cin>>d;
if(d==a2)
e=0;
else
{
e=1;
cout<<"您输入的密码错误,请重新输入:"<<endl;
}
}
while(c)
{
cout<<"请输入您的六位数新密码:";
cin>>a2;
cout<<"请确认您的六位数新密码:";
cin>>b;
if(a2==b)
{
if(b>100000&&b<999999&&b/(b/100000)!=111111)
{
c=0;
cout<<"密码修改成功。";
}
else
{
cout<<"您输入的密码不符合要求,请重新输入:"<<endl;
c=1;
}
}
else
{
c=1;
cout<<"您两次输入的密码不一致,请重新输入:"<<endl;
}
}
return a2;
}
void qvka()
{
cout<<"温馨提示:"<<endl
<<"请您保管好自己的银行卡,谢谢,再见。"<<endl;
}
int cunkuan(int a3)
{
int k;
cout<<"请输入您要存的金额:";
cin>>k;
if(k<0)
{
cout<<"对不起,输入无效,请重新输入:"<<endl;
}
else
{
cout<<"您好,您已经存入了"<<k<<"元。"<<endl;
a3=a3+k;
}
cout<<"卡内余额为:"<<a3;
return a3;
}
int main()
{
int b=1,c,k,l;
int a1=123456,a2=123456,a3=10000;
cout<<"欢迎使用自动柜员机"<<endl;
while(b==1)
{
cout<<"请输入您的账号:";
cin>>k;
cout<<"请输入您的密码:";
cin>>l;
if(k==a1&&l==a2)
{
b=0;
cout<<"您的账户余额为:"<<a3;
}
else
{
b=1;
cout<<"对不起,您输入的账号或者密码有误,请重新输入:"<<endl;
}
}
do
{
cout<<endl<<endl<<"请选择您要的服务项目:"<<endl;
cout<<"1.查询余额"<<endl
<<"2.取款"<<endl
<<"3.修改密码"<<endl
<<"4.存款"<<endl
<<"5.取卡"<<endl;
cin>>c;
switch(c)
{
case 1:
chaxun(a3);
break;
case 2:
a3=qvkuan(a3);
break;
case 3:
a2=gaimi(a2);
break;
case 4:
a3=cunkuan(a3);
break;
case 5:
qvka();
break;
}
}while(c!=5);
return 0;
}