基于C++的ATM自动取款机设计
一、ATM自动取款机设计要求
1.实现ATM取款机的基本功能,如给用户提供开户、查询余额、取款、修改密码、吃卡、退出系统等服务,可根据实际情况添加(如缴费、转账等服务)。
2.对于用户要求输入相应的帐号和密码,如果三次出错则将卡吃掉并打印出相应凭条。若输入的取款金额超出账户余额,则提示用户输入有误并提供更正功能。
二、功能模块
1.登录模块
主要完成功能为:当用户开始使用本系统,进入登陆模块。屏幕显示菜单提示,用户可根据需要选择相应功能。具体如下:开户、用户登录、退出系统;用户登录里面还有存款、取款、查询余额、修改密码、转账等功能。
主要适用技术:登陆函数主要是使用了循环函数和dowhile函数,还有许多的成员函数OpenAccount()、SaveMoney()、TakeMoney()、Inquiry()、Changepsw()、Transfer();Menus();关键代码如下:
voidmain();主函数;
do{}while(1);//循环结构语句
switch(i);case1:default:
UserLogin();//用户登录界面函数
Menus();//用户操作函数
bank k;//默认构造函数
OpenAccount(); break;//开户
SaveMoney();break;//存款
TakeMoney();break;//取款
Inquiry();break;//查询余额
Changepsw();break;//修改密码
Transfer();break;//转账
2、存款模块
void SaveMoney()//存款函数
3、取款模块
void TakeMoney()//取款函数
4、修改密码
voidChangepsw()//修改密码函数
for(inti=1;i<=N;i++)else//循环结果语句exit(1);//结束函数
5、转账模块
void Transfer()//转账函数
6、退出系统
break;
三、源程序代码
#include <iostream>#include <string>#include <stdlib.h>#include <iomanip>using namespace std;class Bank{public:Bank()//默认构造函数,并初始化{name="xiaoming";cardID=123;IC=111111;psw=123;money=1000;}void UserLogin();//声明用户登录函数void Account();//声明开户函数void Menus();//声明用户操作函数void SaveMoney();//声明存款函数void TakeMoney();//声明取款函数void Inquiry();//声明查询函数void Transfer();//声明转账函数void Changepsw();//声明修改密码函数private:string name;double cardID;double IC;double psw;int money;};void Bank::UserLogin()//定义用户登录函数{double ID;double psw1;cout<<setw(20)<<"用户登录:"<<endl;cout<<"请输入您的卡号:"<<endl;cin>>ID;cout<<"请输入您的密码:"<<endl;cin>>psw1;if(ID==cardID&&psw1==psw){Menus();}else{cout<<"密码错误,退出!!!"<<endl;exit(1);}}void Bank::Menus()//定义用户操作函数{int a;do{cout<<"*****************************"<<endl;cout<<"* 1.存款 *"<<endl;cout<<"* 2.取款 *"<<endl;cout<<"* 3.查询余额 *"<<endl;cout<<"* 4.修改密码 *"<<endl;cout<<"* 5.转账 *"<<endl;cout<<"* 6.退出系统 *"<<endl;cout<<"*****************************"<<endl;cout<<"请输入您要办理业务的序号:";cin>>a;switch (a){case 1:SaveMoney();break;case 2:TakeMoney();break;case 3:Inquiry();break;case 4:Changepsw();break;case 5:Transfer();break;case 6:exit(0);break;default:{cout<<"你的输入有误,请输入1-6之间的整数!"<<endl;}}cout<<"##############################################"<<endl;}while(1);}void Bank::Account()//定义开户函数{cout<<"欢迎开户:"<<endl;cout<<"请输入您的姓名:"<<endl;cin>>name;cout<<"请输入身份证号码:"<<endl;cin>>IC;cout<<"请输入您的卡号:"<<endl;cin>>cardID;cout<<"请输入您的密码:"<<endl;cin>>psw;cout<<"请输入您的预存金额:"<<endl;cin>>money;cout<<"恭喜您,开户成功!"<<endl;}void Bank::SaveMoney()//定义存款函数{int money1;cout<<"欢迎您使用存款业务"<<endl;cout<<"请输入您的存款金额:"<<endl;cin>>money1;money=money+money1;cout<<"存款成功,卡上余额为:"<<money<<endl;}void Bank::TakeMoney()//定义取款函数{int money1;cout<<"欢迎您使用取款业务"<<endl;cout<<"每次取款不能超过5000元"<<endl;cout<<"请输入您取款的金额:"<<endl;cin>>money1;if(money1>5000){cout<<"每次取款不能超过5000元"<<endl;cout<<"取款金额超出账户余额,请重新输入取款金额:";cin>>money1;}if(money>=money1){money=money-money1;cout<<"取款成功,您卡上余额为:"<<money<<endl;}else{cout<<"取款金额超出账户余额,请重新输入取款金额:";cin>>money1;money=money-money1;cout<<"取款成功,您卡上余额为:"<<money<<endl;}}void Bank::Inquiry()//定义查询余额函数{cout<<"欢迎进行查询余额业务"<<endl;cout<<"卡上余额为:"<<money<<endl;}void Bank::Transfer()//定义转账函数{double ID2;int money1;cout<<"欢迎使用转账业务"<<endl;cout<<"每次转账不能超过5000元"<<endl;cout<<"请输入您要转账的卡号:"<<endl;cin>>ID2;cout<<"请输入您要转账的金额:"<<endl;cin>>money1;if(money1>5000){cout<<"每次转账金额不能超过5000元"<<endl;cout<<"转账金额超出账户余额,请重新输入转账金额:"<<endl;cin>>money1;}if(money>=money1){money=money-money1;cout<<"转账成功,您卡上余额为:"<<money<<endl;}else{cout<<"金额超出账户余额,请重新输入转账金额:";cin>>money1;money=money-money1;cout<<"转账成功,您卡上余额为:"<<money<<endl;}}void Bank::Changepsw()//定义修改密码定义{double ID;double psw1;double psw2;cout<<"欢迎使用修改密码业务"<<endl;cout<<"请输入您的卡号:"<<endl;cin>>ID;cout<<"请输入您的密码:"<<endl;cin>>psw1;if(ID==cardID&&psw1==psw){cout<<"请输入您的原始密码:"<<endl;cin>>psw1;cout<<"请输入您的新密码:"<<endl;cin>>psw2;psw=psw2;cout<<"修改密码成功!"<<endl;}else{cout<<"您的卡号或密码错误!"<<endl;cout<<"请重新输入您的原始密码:"<<endl;cin>>psw1;if(psw1==psw){cout<<"请输入您的新密码:"<<endl;cin>>psw2;cout<<"确认新密码:请输入新密码:"<<endl;cin>>psw2;psw=psw2;cout<<"修改密码成功!"<<endl;}else{cout<<"温馨提示:密码错误!!!"<<endl;exit(1);}}}int main(){int i;Bank obj;do{cout<<"欢迎进入人民银行"<<endl;cout<<"请选择您要办理的手续:"<<endl;cout<<"*****************************"<<endl;cout<<"* 1.开户 *"<<endl;cout<<"* 2.用户登录 *"<<endl;cout<<"* 3.退出系统 *"<<endl;cout<<"*****************************"<<endl;cout<<"请输入您要办理业务的序号:";cin>>i;if(3==i){break;}switch(i){case 1:obj.Account();break;case 2:obj.UserLogin();break;default:{cout<<"您的输入有误,请输入1-3之间的整数!"<<endl;}}}while(1);return 0;}
基于C++的ATM自动取款机设计相关推荐
- 基于面向对象的ATM自动取款机(未完善)
利用Java代码实现银行的 查询 存储 取款 转账 等功能 首先需要创建如下结构: 用户信息 package com.gyx;import java.util.ArrayList; import ja ...
- C语言ATM自动取款机系统项目的设计与开发
文章目录 基于C语言的ATM自动取款机系统项目设计与开发 一.ATM自动取款机系统功能分析与介绍 二.开发ATM自动取款机系统的工具以及创建项目的过程 2.1.本项目使用Visual Studio 2 ...
- 银行ATM自动取款机模拟程序C语言——课程设计实习
绪论 ATM即自动取款机的意识,ATM是最普遍的自助银行设备,可以提供最基本的银行服务之一,即出钞交易,有些全功能的产品还可以提供信封存款业务.在ATM自动取款机上也可以进行账户查询和改密的业务.作为 ...
- 软件测试面试题:请设计一个关于ATM自动取款机的测试用例?
请设计一个关于ATM自动取款机的测试用例? 1)功能a)ATM所识别卡的类型:b)密码验证(身份登陆.是否为掩码.输入错误密码时是否提示,连续三次错误吞卡等):c)取款功能:i.金额多少的限制,单次最 ...
- 通过Java设计与实现ATM自动取款机系统
设计一个ATM自动取款机系统. 要求如下:实现欢迎界面.登录.存款.取款.查询.修改密码功能. /** *@author Ben1002 *@version jdk1.8.0_131 */ packa ...
- 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个 ATM 自动取款机
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 将计算机网络相互连接在一起称为"网络互联",在其基础上连接覆盖全世界的"网络互联" ...
- 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个ATM自动取款机
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 将计算机网络相互连接在一起称为"网络互联",在其基础上连接覆盖全世界的"网络互联" ...
- 模拟atm取款机 php,C语言模拟ATM自动取款机系统
C语言实验报告 题目名称:C语言模拟ATM自动取款机系统 一:问题描述: C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输 ...
- Java语言实现 ATM 自动取款机系统
ATM自动取款机 实现 ATM 自动取款机系统,本系统有如下功能: 1.登陆 用户通过输入卡号和密码登陆本系统,如果输入错误,提示错误并重新输入,连续三次错误吞卡. 2.取款 系统 ...
最新文章
- OC中的NSArray和NSMutableArray、NSDictionary和NSMutableDictionary用法
- 【 C 】const 进一步解读(由switch引出)
- boost::core::is_same用法测试实例
- ITK:使用分水岭Watershed方法对图像进行分割
- 重磅!深度学习的顶级会议ICLR 2020 数据图文详解
- 未来计算机的展望800字,展望作文800字【精选】
- Git笔记(30) 重写历史
- ios 设备获取idfa_iOS获取设备ID总结
- Hadoop生态圈-Flume的组件之自定义Sink
- Code First 约定
- Deep Learning经典论文列表(Reading List)
- php flea,Fleaphp常见函数功能与用法示例
- xmind8 破解激活教程
- 如何搜索得到综述文献?
- 记C++坑:3.结构体和类对齐补齐
- bittorrent_如何匿名和加密您的BitTorrent流量
- 韦东山学习笔记——UART(串口)的使用
- MySQL安装问题总结
- 惠普微型计算机w7系统,惠普笔记本电脑一键重装系统win7
- 【嵌入式百科】003——时钟周期、指令周期、机器周期、总线周期