当前位置:文档之家› ATM机C++代码

ATM机C++代码

ATM机C++代码
ATM机C++代码

#include

#include

#include

class consumer;

class ATM

// A TM取款机

{

public:

friend class consumer;

ATM(consumer& cn):cnsm(cn) {

}

void welcome();

// 登陆界面

bool check_passwd(char n[],char pwd[]); // 核对密码

void change_passwd();

// 修改密码

void fetchmoney();

// 取款

void information();

// 查询信息

void exitA TM();

// 退出系统

void functionshow();

// 功能界面

void lock();

// 锁机

void move_money();

// 转账

private:

int times;

// 记录密码输入次数

consumer& cnsm;

};

class consumer

// 用户

{

public:

friend class A TM;

consumer(char Name[],char Num[],

float Money,char Password[]);

protected:

char* get_name();

// 取得姓名

char* get_kahao();

// 取得卡号

char* get_passwd();

// 取得密码

float get_money();

// 取得余额

void set_passwd(char pwd[]);

// 设置密码

void set_money(float m);

// 取钱

void move_money();

//转账

private:

char passwd[10];

// 用户密码

char name[20];

// 用户姓名

char kahao[20]; //用户卡号

float money;//用户余额

};

consumer::consumer(char Name[],char Kahao[],float Money,char Password[])//构造函数,建立账户{

strcpy(name,Name);

strcpy(kahao,Kahao);

money=Money;

strcpy(passwd,Password);

}

float consumer::get_money()// 取得余额

{

return money;

}

char* consumer::get_name()// 取得姓名

{

return name;

}

char* consumer::get_kahao()// 取得卡号

return kahao;

}

char* consumer::get_passwd()// 取得密码

{

return passwd;

}

void consumer::set_money(float m)// 取钱

{

money-=m;

}

void consumer::set_passwd(char pwd[])// 设置密码

{

strcpy(passwd,pwd);

}

void A TM::welcome() // 登陆界面

{

times=0;

cout<<"*欢迎使用江苏师范大学银行A TM自动取款机*"<

char pwd[10],num[20],ch;

int i=0;

do

{

i=0;

cout<

do

{

cin.get(ch);

num[i++]=ch;

}while(ch!='\n');

num[i-1]='\0';

i=0;

cout<<"请输入密码:";

do

{

cin.get(ch);

pwd[i++]=ch;

}while(ch!='\n');

pwd[i-1]='\0';

if(!check_passwd(num,pwd))

{

cout<<"你输入的卡号或密码有误, 请重新输入"<

times++;

}

else

{

functionshow();

}

}while(times<3);

lock();

}

bool A TM::check_passwd(char num[],

char pwd[])

{

if(strcmp(num,cnsm.get_kahao())==0&&strcmp

(pwd,cnsm.get_passwd())==0)

return true;

else

return false;

}

void A TM::functionshow()

{

int n;

do

{

cout<

cout<<"1) 修改密码"<

<<"2) 取款"<

<<"3) 转账"<

<<"4) 查询余额"<

<<"5) 退出系统"<

cout<<"请选择:";

cin>>n;

while(n<1||n>5)

{

cout<<"请输入正确的操作序号!"<

cout<<"输入正确的序号:";

cin>>n;

}

switch(n)

{

case 1: change_passwd();

break;

case 2: fetchmoney();

break;

case 3: move_money();

break;

case 4: information();

break;

case 5: exitA TM();

break;

}

}while(true);

}

void A TM::change_passwd()

{

char pwd[10],repwd[10];

times=0;

do

{

cout<

cin>>pwd;

if(!check_passwd(cnsm.get_kahao(),pwd)) times++;

else

break;

}while(times<3);

if(times==3)

lock();

int k=0;

int t=0;

do

{

k=0;

cout<<"请输入新密码:";

int g=0;

int v=1;

g=strlen(pwd);

if(g<6)

{ k=1;

cout<<"密码不能小于6位"<

}

for(int i=0;i

{

if(pwd[i]==pwd[i+1])

v=v+1;

}

if(v==g)

{

k=1;

cout<<"对不起,不允许出现完全相同的情况"<

}

if(g>6&&v!=g)

{

cout<<"请再输入一次新密码:";

cin>>repwd;

if((t=strcmp(pwd,repwd))!=0)

{

cout<<"你输入的两次密码不一样,请重新输入!"<

}

}

}while(t!=0||k==1);

cnsm.set_passwd(pwd);

cout<<"密码修改成功,请牢记!"<

}

void A TM::fetchmoney()

{

float m;

char ch;

do

{

cout<

while(m<=0)

{

cout<<"请输入正确的数字!"<

cout<<"请选择:";

cin>>m;

}

if(m>5000)

{

cout<<"对不起,每次最多取5000元"<

}

else

{

if((int)m%100!=0)

{

cout<<"对不起,取款金额为100的倍数"<

}

else

{

if(cnsm.get_money()-m<0)

{

cout<<"对不起,你的余额不足!"<

}

else

{

cout<

cnsm.set_money(m);

}

}

}

cout<<"是否要继续该项操作:(Y/N) " <

cout<<"请选择:";

cin>>ch;

while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y')

{

cout<<"请选择:";

cin>>ch;

}

}while(ch=='y'||ch=='Y');

}

void A TM::move_money()

{ consumer c2("wang ming","234567",10000.00F,"234567");

int zh;

int zzk;

system( "cls" );

cout<<"输入您的转账目标:";

cin>>zh;

cout<<"输入您的转账额度:";

cin>>zzk;

if(zh==234567)

{

if(c2.money-zzk>0){

c2.money=c2.money+zzk;

cnsm.money-=zzk;

cout<<"转账:"<

cout<<"余额:"<

}

else cout<<"转账金额超出上限"<

}

else

cout<<"转账目标出错没有找到该用户"<

// getchar();

}

void A TM::information()

{

cout<<"**********************************"<

cout<<"*"<

cout<<"* 用户姓名:"<

cout<<"* 卡号:"<

cout<<"* 余额: "<

cout<<"**********************************"<

}

void A TM::lock()

{

cout<

}

void A TM::exitATM()

{

cout<

cout<<"请取卡……"<

exit(0);

}

void main()

{

consumer c1("Li ming","123456",10000.00F,"123456"); consumer c2("wang ming","123456",10000.00F,"123456"); // 先构造一个用户

A TM atm(c1);

atm.welcome();

}

相关主题
文本预览
相关文档 最新文档