用c++模拟ATM机
**一.题目:**用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机相关推荐
- java程序模拟atm机_Java项目实现模拟ATM机
本文实例为大家分享了Java实现模拟ATM机的具体代码,供大家参考,具体内容如下 项目名称 模拟ATM机 项目描述 简单实现ATM机功能 代码实现 测试类 public class Test { // ...
- 模拟ATM机存取款管理系统设计(C++)
模拟ATM机存取款管理系统设计 有问题欢迎私信哦 1.1问题描述: 模拟银行自动存取款机使用过程中的界面和用户交互过程,实现查询银行卡余额.取款.修改密码.退出系统等功能. 1.2基本要求(功能要求) ...
- c语言模拟自动饮料机,C语言--小程序--简单模拟ATM机
原标题:C语言--小程序--简单模拟ATM机 ATM.H #ifndef ATM_h #define ATM_h #include #include #include typedef struct _ ...
- java web atm机_Java项目实现模拟ATM机
本文实例为大家分享了Java实现模拟ATM机的具体代码,供大家参考,具体内容如下 项目名称 模拟ATM机 项目描述 简单实现ATM机功能 代码实现 测试类 public class Test { // ...
- Java模拟ATM机系统
要求: 模拟ATM机系统的登陆.显示个人信息.存取款等基本功能. 图形用户界面,要有登陆界面,主界面有菜单: 连接MySQL数据库:服务器端存放用户账户信息: 实现存.取款,查询余额.显示个人信息等功 ...
- java web atm机_java笔记——模拟ATM机例子
模拟ATM机,实现用户登录.查询.取款.存款和退出. 假定一个银行卡账户,程序执行的时候提示用户输入账号,然后输入密码,如果输入内容不符合规范,则程序会给出相应提示,连续3次输入有误,则退出系统.登录 ...
- c语言做出的atm机怎样运行,c语言模拟ATM机界面
问题描述: 相信大家都在ATM机上取过钱吧,本博客将模拟ATM机的界面以及实现简易的功能(账户密码修改,账户余额查询,取款,存款) 鉴于水平有限,如有不足之处,请多多指教 头文件:ATM.H #ifn ...
- 模拟ATM机存取款管理系统C语言课程设计
模拟ATM机存取款管理系统(只列出了大体的框架,需要源码的朋友请私信联系.) 1.问题描述 模拟银行的自动取款机使用过程中的界面和用户交互过程.实现查询银行卡余额.取款.修改密码.退出系统等功能. 2 ...
- java模拟atm_Java第一课——模拟ATM机
Java第一课--模拟ATM机 开学第一节Java课,跟之前老师强调的一样--上课简单说了两句就直接开始了考试. 总结一下第一次做Java遇到的问题: 第一个是老师一直在强调要先考虑整体的思路,先把整 ...
最新文章
- 分享Kali Linux 2016.2第47周镜像
- Google发布了Tensorflow Lite,用于移动电话的神经网络库
- 如何设置窗口立即刷新显示
- LightGBM参数的贝叶斯搜索(有boost_from_average参数设置)
- java中0l 1_Java基础笔记1 - osc_0ltyoebk的个人空间 - OSCHINA - 中文开源技术交流社区...
- python日志输出 超量 停止_linux 内存分配参数导致的 buffer_pool 分配不出来的问题排查...
- android 半边圆角背景,Android UI(一)Layout 背景局部Shape圆角设计
- 后端如何收取多个文件_前段文件分片后后端怎么接收
- 协鑫集成携中国成套工程在核灾区建立1GW光伏电站
- SQL_EXEC_ID分析(转帖)
- 如何经营一家培训机构?
- Quartus 13.0安装教程
- 中彩分析家 打字软件
- 译码器(24译码器,38译码器)笔记
- Spring5 系统架构
- java课设超市收银系统_超市收银系统java课程设计.doc
- 运筹说 第32期 | 对偶理论与灵敏度分析—灵敏度分析
- kux2mp4(优酷kux转换为mp4软件) v2021
- EMC Isilon(OneFS)数据恢复案例详解
- 计算机动画可分为二维和三维动画,二维动画与三维动画设计的区分
热门文章
- rkwatchgod 看门狗配置,rockchip
- AOS虚拟内存布局、进程线程
- CSDN、Jupyter notebook、有道云笔记和Typora四者通用的Markdown语法
- 【Swing入门教程】一步一步做Netbeans(1):类Netbeans的主界面
- 最新酒桌小游戏喝酒小程序源码_带流量主源码下载
- 一文告诉你,“沉浸式夜游”为何不得不做?沉浸式夜游该如何做?
- TP5 给已关注微信公众号的用户推送消息
- 1024,大家好好(*^▽^*) 2019/10/24
- 【学习笔记】关于苹果Safari浏览器不支持sessionStorage的问题
- 2021 Jiangsu Collegiate Programming Contest部分题解