主要通過采用友元和構造函數對定義的兩個類consumer和ATM進行操作
定義ATM類
//********************************聲明ATM類、CATM.h************************************
#include<iostream>
#include<string.h>
using namespace std;
//定義一個ATM類,主要實作以下内容:
//1、操作界面顯示
//2、輸入密碼并校驗
//3、取款
//4、查詢餘額資訊
//5、退出系統
//6、歡迎界面
class consumer;
class CATM
{
public:
CATM(consumer& cn);
void wellcome();//打開後歡迎界面
void function();//操作界面
bool check_passwd(char passwd[],char num[]);//核對密碼
void change_passwd();//修改密碼
void get_money();//取款
void information();//查詢資訊
void exit();//退出系統
~CATM();
consumer& cnsm;
};
//================================定義CATM成員函數======================================
#include "CATM.h"
#include"consumer.h"
CATM::CATM(consumer& cn) :cnsm(cn){};//拷貝構造函數
CATM::~CATM()
{
}
//歡迎界面
void CATM::wellcome(){
cout << "歡迎使用ATM自助服務系統" << endl;
char passwd[], num[],ch;
//請輸入個人卡号:
cout << "請輸入個人卡号:" << endl;
cin >> num;//空格會分開輸入
//輸入個人密碼
cout << "請輸入個人密碼:" << endl;
cin >> passwd;
if (check_passwd(passwd, num)){
function();
}
else
cout << "你輸入的資訊不對" << endl;
}
//核對密碼
bool CATM::check_passwd(char passwd[],char num[]){
if ((strcmp(passwd,cnsm.get_passwd()) == ) && (strcmp(num,cnsm.get_num())==))
return true;
else
return false;
}
//修改密碼
void CATM::change_passwd(){
char passwd[],repasswd[];
cout << "請輸入您要修改的密碼:" << endl;
cin >> passwd;
cout << "請再次輸入您要修改的密碼:" << endl;
cin >> repasswd;
if (strcmp(passwd, repasswd) == )
cout << "密碼修改成功,請儲存好密碼";
}
//取錢
void CATM::get_money(){
float m, n;
cout << "請輸入取款金額:" << endl;
cin >> m;
n = cnsm.get_money();
if (m < n)
{
cout << "您的餘額是:" << (n - m)<<endl;
cnsm.set_money(n - m);
}
else{
cout << "您的餘額不夠" << endl;
}
}
//個人資訊顯示
void CATM::information(){
cout << "**********************" << endl;
cout << "*" << endl;
cout << "使用者姓名:" << cnsm.get_name() << endl;
cout << "卡号:" << cnsm.get_num() << endl;
cout << "餘額:" << cnsm.get_money() << endl;
cout << "****************************" << endl;
}
//功能選擇
void CATM::function()
{
int i;
do{
cout << "請輸入你選擇操作:" << endl;
cout << "****************************" << endl;
cout << "*****1、查詢資訊**********" << endl;
cout << "*****2、取錢**********" << endl;
cout << "*****3、修改密碼**********" << endl;
cout << "*****4、退出**************" << endl;
cin >> i;
while (i > || i < ){
cout << "您輸入的操作序号有誤:";
cout << "請輸入您要選擇的操作:";
cin >> i;
}
switch (i)
{
case() : information(); break;
case() : get_money(); break;
case() : change_passwd(); break;
case() : break;
}
} while (i != );
}
定義一個使用者類,存儲使用者資訊
//=============================聲明Cconsumer類========================================
#include<iostream>
#include<string.h>
using namespace std;
//定義一個使用者類
/*1、設定密碼
2、取錢
3、擷取資訊
*/
class consumer
{
public:
// friend class CATM;
consumer(char Name[], char Num[],float Money,char Passwd[]);
~consumer();
void set_passwd(char psd[]);//設定密碼
void set_money(float m);//存錢
char* get_name();//獲得姓名資訊
char* get_num();//獲得卡号資訊
float get_money();//餘額資訊
char* get_passwd();//密碼資訊
private:
char name[];
char num[];
char passwd[];
float money;
};
//=============================定義consumer成員函數====================================
#include "consumer.h"
#include"iostream"
consumer::consumer(char Name[], char Num[], float Money, char Passwd[])
{
strcpy(name, Name);
strcpy(num, Num);
money = Money;
strcpy(passwd, Passwd);
}
char * consumer::get_name(){
return name;
}
char* consumer::get_num(){
return num;
}
char* consumer::get_passwd(){
return passwd;
}
float consumer::get_money(){
return money;
}
void consumer::set_passwd(char psd[]){
strcpy(passwd, psd);
}
void consumer::set_money(float m){
money = m;
}
consumer::~consumer()
{
}
最後進行測試:
#include"consumer.h"
#include"CATM.h"
//測試
int main(){
consumer danny("zhangsan", "2111602147", , "195424");
CATM atm(danny);
atm.wellcome();
}