C++写ATM机

来源:互联网 发布:在淘宝上买了二手钢琴 编辑:程序博客网 时间:2024/05/19 01:31

主要通过采用友元和构造函数对定义的两个类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[8], num[20],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()) == 0) && (strcmp(num,cnsm.get_num())==0))        return true;    else        return false;}//修改密码void CATM::change_passwd(){    char passwd[8],repasswd[8];    cout << "请输入您要修改的密码:" << endl;    cin >> passwd;    cout << "请再次输入您要修改的密码:" << endl;    cin >> repasswd;    if (strcmp(passwd, repasswd) == 0)        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 > 4 || i < 1){            cout << "您输入的操作序号有误:";            cout << "请输入您要选择的操作:";            cin >> i;        }        switch (i)        {        case(1) : information(); break;        case(2) : get_money(); break;        case(3) : change_passwd(); break;        case(4) : break;        }    } while (i != 4);}

定义一个用户类,存储用户信息

//=============================声明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[20];    char num[20];    char passwd[6];    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", 1000, "195424");    CATM atm(danny);    atm.wellcome();}