?? atm.txt
字號:
// ************************************
// * *
// * function.h *
// * *
// ************************************
#include
class consumer;
class ATM
// ATM取款機
{
public:
ATM(consumer& cn):cnsm(cn)
{
}
void welcome();
// 登陸界面
bool check_passwd(char n[],char pwd[]);
// 核對密碼
void change_passwd();
// 修改密碼
void fetchmoney();
// 取款
void information();
// 查詢信息
void exitATM();
// 退出系統
void functionshow();
// 功能界面
void lock();
// 鎖機
private:
int times;
// 記錄密碼輸入次數
consumer& cnsm;
};
class consumer
// 用戶
{
public:
friend class ATM;
consumer(char Name[],char Num[],
float Money,char Password[]);
protected:
char* get_name();
// 取得姓名
char* get_num();
// 取得卡號
char* get_passwd();
// 取得密碼
float get_money();
// 取得余額
void set_passwd(char pwd[]);
// 設置密碼
void set_money(float m);
// 取錢
private:
char passwd[8];
// 用戶密碼
char name[20];
// 用戶姓名
char num[20];
float money;
};
// ************************************
// * *
// * consumer類的成員函數 *
// * *
// ************************************
#include"function.h"
#include
consumer::consumer(char Name[],
char Num[],float Money,char Password[])
{
strcpy(name,Name);
strcpy(num,Num);
money=Money;
strcpy(passwd,Password);
}
float consumer::get_money()
{
return money;
}
char* consumer::get_name()
{
return name;
}
char* consumer::get_num()
{
return num;
}
char* consumer::get_passwd()
{
return passwd;
}
void consumer::set_money(float m)
{
money-=m;
}
void consumer::set_passwd(char pwd[])
{
strcpy(passwd,pwd);
}
// ************************************
// * *
// * ATM類的成員函數 *
// * *
// ************************************
#include "function.h"
#include
#include
void ATM::welcome()
{
times=0;
cout<<"$
歡迎使用若雪銀行ATM自動取款機!~!
"<
char pwd[8],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 ATM::check_passwd(char num[],
char pwd[])
{
if(strcmp(num,cnsm.get_num())==0&&strcmp
(pwd,cnsm.get_passwd())==0)
return true;
else
return false;
}
void ATM::functionshow()
{
int n;
do
{
cout< "< cout<<"1) 修改密碼 "< <<"2) 取款 "< <<"3) 查詢余額 "< <<"4) 退出系統 "< cout<<"$ >\\";
cin>>n;
while(n<1||n>4)
{
cout<<"請輸入正確的操作序號!"< cout<<"$ >\\";
cin>>n;
}
switch(n)
{
case 1: change_passwd();
break;
case 2: fetchmoney();
break;
case 3: information();
break;
case 4: exitATM();
break;
}
}while(true);
}
void ATM::change_passwd()
{
char pwd[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();
int t=0;
do
{
cout<<"請輸入新密碼:";
cin>>pwd;
cout<<"請再輸入一次新密碼:";
cin>>repwd;
if((t=strcmp(pwd,repwd))!=0)
cout<<"你輸入的兩次密碼不一樣,
請重新輸入!"< }while(t!=0);
cnsm.set_passwd(pwd);
cout<<"密碼修改成功,請牢記!"<
}
void ATM::fetchmoney()
{
float m;
char ch;
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');
}
void ATM::information()
{
cout<<"**********************************"< cout<<"*"< cout<<"* 用戶姓名:"< cout<<"* 卡號: "< cout<<"* 余額: "< cout<<"**********************************"<
}
void ATM::lock()
{
cout< 你的卡已經被沒收! "< exit(1);
}
void ATM::exitATM()
{
cout< 歡迎下次光臨!"< cout<<"請取卡……"< exit(0);
}
// ************************************
// * *
// * ATM.cpp *
// * *
// ************************************
#include
#include"function.h"
void main()
{
consumer c1("jim","12345",5200.3f,"123");
// 先構造一個用戶
ATM atm(c1);
atm.welcome();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -