**一.题目:**用c++模拟ATM机.
二.分析:

实现ATM机,首先要创建两个类,一个为用户类,用来存储用户个人信息。另一个为ATM类,
用来实现各种功能。用户类中用户个人信息只有用户本人可以查看,所以全部为私有数据成
员,包括用户的密码、用户的卡号、用户余额、用户名字。ATM机类主要是实现登录、存款、
取款、余额查询、修改密码、退出系统等基本功能。登录时要核对账户和密码是否正确,若
密码错误3次,则锁卡。存款和取款是对用户余额进行操作,取款时还有可能出现余额不足
的情况。修改密码时首先要进行原密码的核对,其次要让用户输入两次新密码,以免用户因
手误输入错误。还有最重要的是要将用户类类的对象作为参数传入ATM机类里面,要实现这
个功能,就需要在ATM机类中定义一个用户类,并将用户类的一个对象作为参数传入其构造
函数中。

三.代码:

#include<iostream>
#include<string>using namespace std;class account     //定义一个用户类
{
public:account();    //构造函数string get_number();  //返回用户卡号string get_name();    //返回用户姓名int get_money();       //返回余额,不带参数int get_money(int m); //给余额赋值string get_password(); //返回密码void get_password(string p);//给密码赋值
private:int money;string number;string name;string password;
};account::account()
{cout << "欢迎使用!" << "请创建您的账户!" <<endl;cout << "请输入卡号:";cin >> number;cout << endl;cout << "请输入用户名:";cin >> name;cout << endl;cout << "请输入你的密码:";cin >> password;money = 0;cout << "创建成功!" << endl;}string account::get_number()
{return number;
}string account::get_name()
{return name;
}string account::get_password()
{return password;
}void account::get_password(string p)
{password = p;
}int account::get_money()
{return money;
}int account::get_money(int m)
{money = m;return money;
}class atm   //atm类
{
public:atm();   //构造函数atm(account a1);  //构造函数,用account类的一个对象作参数void enter();     //登录void display();   //显示功能void deposit();   //存款void withdraw();  //取款void change_password();  //修改密码void inquiry();   //查询余额void exit();      //退出系统
private:account a;
};atm::atm()
{
}atm::atm(account a1)
{a = a1;
}void atm::display()
{int n;cout << "1.登录  2.存款  3.取款  4.修改密码  5.查询余额  6.退出系统"<<endl<<"请选择:"<<endl;while(cin >> n){if(6 == n){exit();break;}                          //当n为6时退出系统,不再显示功能界面,则跳出循环switch(n){case 1: enter();break;case 2: deposit();break;case 3: withdraw();break;case 4: change_password();break;case 5: inquiry();break;default: cout << "无此操作!" << endl;break;}cout << "1.登录  2.存款  3.取款  4.修改密码  5.查询余额  6.退出系统"<<endl<<"请选择:"<<endl;}
}
void atm::enter()
{string number1;string temp;int t = 0;cout << "请输入卡号:";cin >> number1;if(a.get_number() == number1)  //判断是否存在此账户,若存在则执行下面语句{cout << "请输入密码:";cin >> temp;cout << endl;while(a.get_password() != temp){t++;if(3 == t){cout << "密码错误3次,卡已被锁!"<< endl;exit();break;}          //当密码错误3次时,锁卡,退出系统cout << "密码错误!" <<endl <<"请重新输入:";cin >> temp;    //密码错误,提示用户重新输入}if(a.get_password() == temp){cout << "登录成功!" << a.get_name() << "欢迎您!" << endl;display();}                  //密码正确则登录成功,显示功能}else{cout << "无此账户!" << endl;}            //若未找到此卡号,则无此账户
}void atm::deposit()              //存款
{int m;cout << "请输入存款数:";cin >> m;cout << endl;a.get_money(a.get_money() + m);
}void atm::withdraw()  //取款
{int m;cout << "请输入取款数:";cin >> m;if(m <= a.get_money()){a.get_money(a.get_money() - m);}else{cout << "余额不足!"<< endl;}    //当取款数大于余额时,余额不足,不操作
}void atm::change_password()  //修改密码
{string temp;string temp1;string temp2;int t = 0;cout << "请输入原密码:";cin >> temp;cout << endl;while(a.get_password() != temp){t++;if(3 == t){cout << "密码错误3次,卡已被锁!"<< endl;exit();break;}cout << "密码错误!" <<endl <<"请重新输入:";cin >> temp;}  //先确认原密码if(a.get_password() == temp){cout << "请输入新密码:";cin >> temp1;cout << "请确认密码:";cin >> temp2;if(temp1 == temp2)  //判断两次输入是否相同{a.get_password(temp1);cout << "修改密码成功!" <<endl;}else{cout << "密码错误! 请重新操作。" << endl;display();}}
}
void atm::inquiry()   //显示余额
{cout << "您的余额为:" << a.get_money() <<"元"<<endl;
}void atm::exit()  //退出系统
{cout << "感谢您的使用!"<<endl;
}int main()
{atm my_atm;my_atm.enter();return 0;
}

四.结果:


用c++模拟ATM机相关推荐

  1. java程序模拟atm机_Java项目实现模拟ATM机

    本文实例为大家分享了Java实现模拟ATM机的具体代码,供大家参考,具体内容如下 项目名称 模拟ATM机 项目描述 简单实现ATM机功能 代码实现 测试类 public class Test { // ...

  2. 模拟ATM机存取款管理系统设计(C++)

    模拟ATM机存取款管理系统设计 有问题欢迎私信哦 1.1问题描述: 模拟银行自动存取款机使用过程中的界面和用户交互过程,实现查询银行卡余额.取款.修改密码.退出系统等功能. 1.2基本要求(功能要求) ...

  3. c语言模拟自动饮料机,C语言--小程序--简单模拟ATM机

    原标题:C语言--小程序--简单模拟ATM机 ATM.H #ifndef ATM_h #define ATM_h #include #include #include typedef struct _ ...

  4. java web atm机_Java项目实现模拟ATM机

    本文实例为大家分享了Java实现模拟ATM机的具体代码,供大家参考,具体内容如下 项目名称 模拟ATM机 项目描述 简单实现ATM机功能 代码实现 测试类 public class Test { // ...

  5. Java模拟ATM机系统

    要求: 模拟ATM机系统的登陆.显示个人信息.存取款等基本功能. 图形用户界面,要有登陆界面,主界面有菜单: 连接MySQL数据库:服务器端存放用户账户信息: 实现存.取款,查询余额.显示个人信息等功 ...

  6. java web atm机_java笔记——模拟ATM机例子

    模拟ATM机,实现用户登录.查询.取款.存款和退出. 假定一个银行卡账户,程序执行的时候提示用户输入账号,然后输入密码,如果输入内容不符合规范,则程序会给出相应提示,连续3次输入有误,则退出系统.登录 ...

  7. c语言做出的atm机怎样运行,c语言模拟ATM机界面

    问题描述: 相信大家都在ATM机上取过钱吧,本博客将模拟ATM机的界面以及实现简易的功能(账户密码修改,账户余额查询,取款,存款) 鉴于水平有限,如有不足之处,请多多指教 头文件:ATM.H #ifn ...

  8. 模拟ATM机存取款管理系统C语言课程设计

    模拟ATM机存取款管理系统(只列出了大体的框架,需要源码的朋友请私信联系.) 1.问题描述 模拟银行的自动取款机使用过程中的界面和用户交互过程.实现查询银行卡余额.取款.修改密码.退出系统等功能. 2 ...

  9. java模拟atm_Java第一课——模拟ATM机

    Java第一课--模拟ATM机 开学第一节Java课,跟之前老师强调的一样--上课简单说了两句就直接开始了考试. 总结一下第一次做Java遇到的问题: 第一个是老师一直在强调要先考虑整体的思路,先把整 ...

最新文章

  1. 分享Kali Linux 2016.2第47周镜像
  2. Google发布了Tensorflow Lite,用于移动电话的神经网络库
  3. 如何设置窗口立即刷新显示
  4. LightGBM参数的贝叶斯搜索(有boost_from_average参数设置)
  5. java中0l 1_Java基础笔记1 - osc_0ltyoebk的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. python日志输出 超量 停止_linux 内存分配参数导致的 buffer_pool 分配不出来的问题排查...
  7. android 半边圆角背景,Android UI(一)Layout 背景局部Shape圆角设计
  8. 后端如何收取多个文件_前段文件分片后后端怎么接收
  9. 协鑫集成携中国成套工程在核灾区建立1GW光伏电站
  10. SQL_EXEC_ID分析(转帖)
  11. 如何经营一家培训机构?
  12. Quartus 13.0安装教程
  13. 中彩分析家 打字软件
  14. 译码器(24译码器,38译码器)笔记
  15. Spring5 系统架构
  16. java课设超市收银系统_超市收银系统java课程设计.doc
  17. 运筹说 第32期 | 对偶理论与灵敏度分析—灵敏度分析
  18. kux2mp4(优酷kux转换为mp4软件) v2021
  19. EMC Isilon(OneFS)数据恢复案例详解
  20. 计算机动画可分为二维和三维动画,二维动画与三维动画设计的区分

热门文章

  1. rkwatchgod 看门狗配置,rockchip
  2. AOS虚拟内存布局、进程线程
  3. CSDN、Jupyter notebook、有道云笔记和Typora四者通用的Markdown语法
  4. 【Swing入门教程】一步一步做Netbeans(1):类Netbeans的主界面
  5. 最新酒桌小游戏喝酒小程序源码_带流量主源码下载
  6. 一文告诉你,“沉浸式夜游”为何不得不做?沉浸式夜游该如何做?
  7. TP5 给已关注微信公众号的用户推送消息
  8. 1024,大家好好(*^▽^*) 2019/10/24
  9. 【学习笔记】关于苹果Safari浏览器不支持sessionStorage的问题
  10. 2021 Jiangsu Collegiate Programming Contest部分题解