C++编写的ATM自动取款机模拟程序分析.docx
《C++编写的ATM自动取款机模拟程序分析.docx》由会员分享,可在线阅读,更多相关《C++编写的ATM自动取款机模拟程序分析.docx(7页珍藏版)》请在冰豆网上搜索。
![C++编写的ATM自动取款机模拟程序分析.docx](https://file1.bdocx.com/fileroot1/2022-11/26/36277a73-c301-4d33-8c6d-3424b80d6680/36277a73-c301-4d33-8c6d-3424b80d66801.gif)
C++编写的ATM自动取款机模拟程序分析
//************************************
//* *
//* function.h *
//* *
//************************************
#include
classconsumer;
classATM
//ATM取款机
{
public:
ATM(consumer&cn):
cnsm(cn)
{
}
voidwelcome();
//登陆界面
boolcheck_passwd(charn[],charpwd[]);
//核对密码
voidchange_passwd();
//修改密码
voidfetchmoney();
//取款
voidinformation();
//查询信息
voidexitATM();
//退出系统
voidfunctionshow();
//功能界面
voidlock();
//锁机
private:
inttimes;
//记录密码输入次数
consumer&cnsm;
};
classconsumer
//用户
{
public:
friendclassATM;
consumer(charName[],charNum[],
floatMoney,charPassword[]);
protected:
char*get_name();
//取得姓名
char*get_num();
//取得卡号
char*get_passwd();
//取得密码
floatget_money();
//取得余额
voidset_passwd(charpwd[]);
//设置密码
voidset_money(floatm);
//取钱
private:
charpasswd[8];
//用户密码
charname[20];
//用户姓名
charnum[20];
floatmoney;
};
//************************************
//* *
//* consumer类的成员&&函数 *
//* *
//************************************
#include"function.h"
#include
consumer:
:
consumer(charName[],
charNum[],floatMoney,charPassword[])
{
strcpy(name,Name);
strcpy(num,Num);
money=Money;
strcpy(passwd,Password);
}
floatconsumer:
:
get_money()
{
returnmoney;
}
char*consumer:
:
get_name()
{
returnname;
}
char*consumer:
:
get_num()
{
returnnum;
}
char*consumer:
:
get_passwd()
{
returnpasswd;
}
voidconsumer:
:
set_money(floatm)
{
money-=m;
}
voidconsumer:
:
set_passwd(charpwd[])
{
strcpy(passwd,pwd);
}
//************************************
//* *
//* ATM类的成员&&函数 *
//* *
//************************************
#include"function.h"
#include
#include
voidATM:
:
welcome()
{
times=0;
cout<<"$
欢迎使用若雪银行ATM自动取款机!
~!
"< charpwd[8],num[20],ch;
inti=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();
}
boolATM:
:
check_passwd(charnum[],
charpwd[])
{
if(strcmp(num,cnsm.get_num())==0&&strcmp
(pwd,cnsm.get_passwd())==0)
returntrue;
else
returnfalse;
}
voidATM:
:
functionshow()
{
intn;
do
{
cout< "< cout<<"1)修改密码"< <<"2)取款 "< <<"3)查询余额"< <<"4)退出系统"< cout<<"$>\\";
cin>>n;
while(n<1||n>4)
{
cout<<"请输入正确的操作序号!
"< cout<<"$>\\";
cin>>n;
}
switch(n)
{
case1:
change_passwd();
break;
case2:
fetchmoney();
break;
case3:
information();
break;
case4:
exitATM();
break;
}
}while(true);
}
voidATM:
:
change_passwd()
{
charpwd[8],repwd[8];
times=0;
do
{
cout<";
cin>>pwd;
if(!
check_passwd(cnsm.get_num(),pwd))
times++;
else
break;
}while(times<3);
if(times==3)
lock();
intt=0;
do
{
cout<<"请输入新密码:
";
cin>>pwd;
cout<<"请再输入一次新密码:
";
cin>>repwd;
if((t=strcmp(pwd,repwd))!
=0)
cout<<"你输入的两次密码不一样,
请重新输入!
"< }while(t!
=0);
cnsm.set_passwd(pwd);
cout<<"密码修改成功,请牢记!
"<}
voidATM:
:
fetchmoney()
{
floatm;
charch;
do
{
cout<"
<<"\n$>\\"< cin>>m;
while(m<=0)
{
cout<<"请输入正确的数字!
"< cout<<"$>\\";
cin>>m;
}
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');
}
voidATM:
:
information()
{
cout<<"**********************************"< cout<<"*"< cout<<"* 用户姓名:
"< cout<<"* 卡号:
"< cout<<"* 余额:
"< cout<<"**********************************"<}
voidATM:
:
lock()
{
cout< 你的卡已经被没收!
"< exit
(1);
}
voidATM:
:
exitATM()
{
cout< 欢迎下次光临!
"< cout<<"请取卡……"< exit(0);
}
//************************************
//* *
//* ATM.cpp *
//* *
//************************************
#include
#include"function.h"
voidmain()
{
consumerc1("jim","12345",5200.3f,"123");
//先构造一个用户
ATMatm(c1);
atm.welcome();
}