#include "iostream.h"
#include "string.h"
#include "stdlib.h"
class comsumer;
class ATM
{ public:
ATM(comsumer&cn):con(cn)
{
}
void welcome();
bool check_password(char n[],char pwd[]);
void change_password();
void fetchmoney();
void quit();
void functionshow();
void information();
void lock();
private:
int time;
comsumer&con;
};
class comsumer
{
public:
friend class ATM;
comsumer(char Name[],char Num[],float Noney,char Password[]);
protected:
char*getname();
char*getnum();
float getmoney();
char*getpassword();
void setpassword(char Password[]);
void setmoney(float m);
private:
char name[10];
char num[20];
char password[20];
float money;
};
comsumer::comsumer(char Name[],char Num[],float Money,char Password[])
{
strcpy(name,Name);
strcpy(num,Num);
money=Money;
strcpy(password,Password);
}
float comsumer::getmoney()
{
return money;
}
char* comsumer::getname()
{
return name;
}
char*comsumer::getnum()
{
return num;
}
char* comsumer::getpassword()
{
return password;
}
void comsumer::setmoney(float m)
{
money-=m;
}
void comsumer::setpassword(char Password[])
{
strcpy(password,Password);
}
void ATM::welcome()
{
int time=0;
char pwd[20],num[20],ch;
cout<<"欢迎使用中国银行自动取款机"<<endl;
int i=0;
do
{ i=0;
cout<<"请输入卡号:"<< endl;
do
{cin.get(ch);
num[i++]=ch;
} while(ch!='\n');
num[i-1]='\0';
i=0;
cout<<"请输入密码:"<<endl;
do
{
cin.get(ch);
pwd[i++]=ch;
} while(ch!='\n');
pwd[i-1]='\0';
if (!check_password(num,pwd))
{cout<<"你的卡号或密码有误请重新输入:"<<endl;
time++;
}
else
functionshow();
}while(time<3);
lock();
}
bool ATM::check_password(char n[], char pwd[])
{
if(strcmp(n,con.getnum())==0&&strcmp(pwd,con.getpassword())==0)
return true;
else
return false;
}
void ATM::functionshow()
{
int n;
cout<<"请输入你要选择的操作:"<<endl;
cout<<"1.取款"<<" "<<"2.查询余额"<<endl;
cout<<" "<<endl;
cout<<"3.修改密码"<<" "<<"4.退出系统"<<endl;
cin>>n;
switch(n)
{case 1:
fetchmoney();
break;
case 2:
information();
break;
case 3:
change_password();
break;
case 4:
quit();
break;
}
}
void ATM::fetchmoney()
{
float m;
cout<<"请输入你要取的钱"<<endl;
cin>>m;
if (con.getmoney()<m)
{cout<<"余额不足"<<endl;
}
else
{
cout<<"操作成功!"<<endl;
con.setmoney(m);
}
}
void ATM::information()
{
cout<<"**********************************"<<endl;
cout<<"*"<<endl;
cout<<"* 用户姓名:"<<con.getname()<<endl;
cout<<"* 卡号: "<<con.getnum()<<endl;
cout<<"* 余额: "<<con.getmoney()<<endl;
cout<<"**********************************"<<endl;
}
void ATM::lock()
{
cout<<"对不起你已经操作超过三次了"<<endl;
exit(1);
}
void ATM:: quit()
{
exit(1);
}
void ATM::change_password()
{
char pwd[8],repwd[8];
time=0;
do
{
cout<<endl<<"请输入旧密码:";
cin>>pwd;
if(!check_password(con.getnum(),pwd))
time++;
else
break;
}while(time<3);
if(time==3)
lock();
int t=0;
do
{
cout<<"请输入新密码:";
cin>>pwd;
cout<<"请再输入一次新密码:";
cin>>repwd;
if((t=strcmp(pwd,repwd))!=0)
cout<<"你输入的两次密码不一样,请重新输入!"<<endl;
}while(t!=0);
con.setpassword(pwd);
cout<<"密码修改成功,请牢记!"<<endl;
}
void main()
{
comsumer cc("sunkang","aaa",10000,"123456");
ATM a(cc);
a.welcome();
}
评论0