简易模拟ATM机

这篇博客介绍了如何使用编程语言构建一个简单的ATM机模拟器,包括存款、取款、查询余额等基本功能。通过代码实现,展示了交易处理和账户管理的核心逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码如下:

#include<vector>
#include<iostream>
#include<ctime>
#include<iterator>//直接使用万能头文件#include<bits/stdc++.h>
using namespace std;
struct tim{
    string caozuo1;
    int year,month,day,hour,minute,second;
    double money1,money2;
};//定义的时间结构体,存交易记录

class Account{
string na;
string hao;
double money;
vector<tim>time11;
public:
Account(string no,string name,double amount);
Account();
void huaqian();
void cunqian();
void getjl();
double getamount();
~Account();
};
Account::Account(string name,string no,double amount)
{
    na=name;
    hao=no;
    money=amount;
}//初始化列表

Account::Account()
{
    na="name";
    hao="1234";
    money=0;
}

Account::~Account()
{

    cout<<"您的账户余额为:"<<getamount()<<endl;
    cout<<"请全部取出";
    huaqian();
}//析构函数
void Account::huaqian()
{
    double money;
    cout<<"输入取钱金额:";
    cin>>money;
    if(money>0&&(this->money>=money))
    {
        this->money-=money;
        time_t rawtime;
        struct tm *ptminf;
        time(&rawtime);
        ptminf=localtime(&rawtime);
        tim t;
        t.caozuo1="取钱";
        t.year=ptminf->tm_year+1900;
        t.month=ptminf->tm_mon+1;
        t.day=ptminf->tm_mday;
        t.hour=ptminf->tm_hour;
        t.minute=ptminf->tm_min;
        t.second=ptminf->tm_sec;
        t.money1=money;
        t.money2=this->money;
        time11.push_back(t);
    }
    else
    {
        cout<<"余额不足"<<endl;;
    }
}//取钱的操作

void Account::cunqian()
{
    double money;
    cout<<"输入存款金额:";
    cin>>money;
    if(money>0)
    {
        this->money+=money;
        time_t rawtime;
        struct tm *ptminfo;
        time(&rawtime);
        ptminfo=localtime(&rawtime);
        tim t;
        t.caozuo1="存钱";
        t.year=ptminfo->tm_year+1900;
        t.month=ptminfo->tm_mon+1;
        t.day=ptminfo->tm_mday;
        t.hour=ptminfo->tm_hour;
        t.minute=ptminfo->tm_min;
        t.second=ptminfo->tm_sec;
        t.money1=money;
        t.money2=this->money;
        time11.push_back(t);
    }
    else
    {
        cout<<"输入正确的金额";
    }
}//存钱的操作

void Account::getjl()
{
    vector<tim>::iterator oi;
    for(oi=time11.begin();oi!=time11.end();oi++)
    {
        cout<<oi->caozuo1<<":"<<oi->money1<<"\t"<<"余额:"<<oi->money2<<"\t"<<oi->year<<"-"<<oi->month<<"-"<<oi->day<<" "<<oi->hour<<":"<<oi->minute<<":"<<oi->second<<endl;
    }
}//输出记录

double Account::getamount()
{
    return this->money;
}//查询余额
int main()
{
    string name;
    string noo;
    int caozuo;
    double qian;
    cout<<"姓名:";
    cin>>name;
    cout<<"账号:";
    cin>>noo;
    cout<<"预存款金额:";
    cin>>qian;
    Account xin(name,noo,qian);
    cout<<"1-存钱 2-取钱 3-查询余额 4-查询记录 5-结束操作"<<endl<<endl;

    cout<<"请输入数字:";
    while(cin>>caozuo)
    {
        if(caozuo==5)
        {
            break;
        }
        else if(caozuo==1)
        {
            xin.cunqian();
        }
        else if(caozuo==2)
        {
            xin.huaqian();
        }
        else if(caozuo==3)
        {
            cout<<"您的账户余额为:"<<xin.getamount()<<endl;
        }
        else if(caozuo==4)
        {
            xin.getjl();
            cout<<endl;
        }
        else
        {
            cout<<"请输入正确的数字"<<endl;;
        }
        cout<<"请输入数字:";
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值