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[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();
}
  • 20
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
#include<iostream> #include<string> using namespace std; class Consumer { private: long Accnumber; string conname; double Balance; long password; public: Consumer(); void login(); int Query(); int transfer(); int withdraw(); int update();//修改密码 void choose(); }; Consumer::Consumer() { Accnumber=1030070128; conname="林杰东"; Balance=10000.00; password=123456; } void Consumer::login() { long password0; int i=0; cout<<"**********欢迎登入林杰东银行**********"<<endl; cout<<endl; cout<<endl; cout<<endl; cout<<"请输入您的6位密码(错误输入不得超过3次):"; cout<<endl; cout<<endl; cout<<endl; cout<<endl; cout<<"**********欢迎登入林杰东银行**********"<<endl; while(i<3) { cout<<"密码:"; cin>>password0; i++; if(password0!=password) { cout<<"对不起,您的输入有误,请重新输入!!!"<<endl; if(i==3) { cout<<"您的错误输入已满3次,请取出您的银行卡,以免被吞卡!!!"<<endl; login(); break; } } else { cout<<"登入成功!!!"<<endl; break;} } } int Consumer::Query() { cout<<"您的用户名:"; cout<<conname<<endl; cout<<"您的账号:"; cout<<Accnumber<<endl; cout<<"您的当前余额:"; cout<<Balance<<endl; cout<<"密码:"; cout<<password<<endl; return 1; } int Consumer::transfer() { long Accnumber1,Accnumber2; double money; cout<<"请输入您要转入的账号:"; cin>>Accnumber1; if(Accnumber1==Accnumber) { cout<<"对不起,您要转入的账号是当前银行卡的账号,无法转账!!!请重新输入其他账号!!!"<<endl; return transfer(); } else { cout<<"请重新输入您要转入的账号:"; cin>>Accnumber2; if(Accnumber1==Accnumber2 ) { cout<<"请输入您要转账的金额:"; cin>>money; cout<<endl; if(Balance>=money) { Balance=Balance-money; cout<<"转账成功!!!"<<endl; cout<<"您的当前余额:"; return Balance; } else { cout<<"对不起,您当前余额不足,请重新转账!!!"<<endl; return transfer(); } } else { cout<<"您两次输入的账号有误,请重新输入!!!"<<endl; return transfer(); } } } int Consumer::update() { long password1; long password2; long password3; cout<<"请输入您的6位原密码:"; cin>>password1; if(password1!=password) { cout<<"对不起,您的输入有误,请重新输入!!!"<<endl; return update(); } else { cout<<"请输入您的6位新密码:"; cin>>password2; cout<<"请重新输入您的6位新密码:"; cin>>password3; if(password2==password3) { password=password3; cout<<"恭喜您,您的密码修改成功!!!"<<endl; cout<<"您的新密码:"; return password; } else { cout<<"对不起,您的两次输入有误,请重新输入!!!"<<endl; return update(); } } } int Consumer::withdraw() { double number; cout<<"输入要取的钱数:"; cin>>number; if(Balance<number) { cout<<"你的账号余额不足 "<<number<<"."<<endl; cout<<"取款失败!"<<endl; return withdraw(); } else { cout<<"取款成功!!!"<<endl; Balance=Balance-number; cout<<"您的当前账号余额为:"; return Balance; } } void Consumer::choose() { cout<<"1.查 询"<<endl; cout<<"2.转 账"<<endl; cout<<"3.修改密码"<<endl; cout<<"4.取 款"<<endl; cout<<"0.退出系统"<<endl; } class ATM { public: Consumer c; int menu(); }; int ATM::menu() { c.login(); int choice=0; while(choice!=5) { cout<<"**********欢迎登入林杰东银行**********"<<endl; c.choose(); cout<<"**********欢迎登入林杰东银行**********"<<endl; cout<<"请输入您的选择:"; cin>>choice; switch(choice) { case 1: cout<<c.Query()<<endl; break; case 2: cout<<c.transfer()<<endl; break; case 3: cout<<c.update()<<endl; break; case 4: cout<<c.withdraw()<<endl; break; case 0: cout<<"请取出您的银行卡,欢迎下次使用!!!"<<endl; return 0; break; default: cout <<"输入错误!请重新输入!\n\n"; break; } } } int main() { ATM atm; atm.menu(); return 0; }
好的,以下是一个简单的 C++ ATM 界面程序的代码示例: ```cpp #include <iostream> #include <string> using namespace std; int main() { // 假设银行卡号为 "123456",密码为 "1234" string cardNo = "123456"; string password = "1234"; string inputCardNo, inputPassword; int balance = 10000; cout << "欢迎使用 ATM ,请插入银行卡:" << endl; cin >> inputCardNo; if (inputCardNo != cardNo) { cout << "银行卡号输入错误!" << endl; return 0; } cout << "请输入密码:" << endl; cin >> inputPassword; if (inputPassword != password) { cout << "密码输入错误!" << endl; return 0; } cout << "登录成功!" << endl; cout << "请选择操作:" << endl; cout << "1. 查询余额" << endl; cout << "2. 取款" << endl; cout << "3. 存款" << endl; int option; cin >> option; switch (option) { case 1: cout << "您的余额为:" << balance << endl; break; case 2: int amount; cout << "请输入取款金额:" << endl; cin >> amount; if (amount > balance) { cout << "余额不足!" << endl; } else { balance -= amount; cout << "取款成功!" << endl; cout << "当前余额为:" << balance << endl; } break; case 3: int deposit; cout << "请输入存款金额:" << endl; cin >> deposit; balance += deposit; cout << "存款成功!" << endl; cout << "当前余额为:" << balance << endl; break; default: cout << "无效选项!" << endl; break; } cout << "谢谢使用!" << endl; return 0; } ``` 这个程序模拟了一个简单的 ATM 操作,包括登录、查询余额、取款和存款等操作,你可以根据需要进行修改。注意,这只是一个简单的示例程序,实际情况中需要更加完善和安全的实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值