天天看點

C++寫ATM機

主要通過采用友元和構造函數對定義的兩個類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();
}
           

繼續閱讀