C++编写ATM
偶然看到的一段代码,代码虽然简单,但是挺有意思:
#include <iostream> #include <conio.h> //全局变量 float sum_money= 9999; float money= 0; //标记作用 int flag= 1; int mark; //打印星号 void start(void) { for(int i= 0; i<45; i++) { std::cout<<"*"; } std::cout<<"\n"; } //显示功能选项 void display_function(void) { std::cout<<"1.查询"<<std::endl; std::cout<<"2.取款"<<std::endl; std::cout<<"3.存款"<<std::endl; std::cout<<"4.转账"<<std::endl; std::cout<<"0.退出"<<std::endl; } int display_number(int num) { switch(num) { case 0: { start(); std::cout<<"谢谢,您选择0号功能:退出"<<std::endl; start(); return 0; } case 1: { start(); std::cout<<"谢谢,您选择1号功能:查询"<<std::endl; std::cout<<"您的账号有:"; std::cout<<sum_money<<"元乐币"<<std::endl; start(); return 1; } case 2: { start(); std::cout<<"谢谢,您选择2号功能:取款"<<std::endl; std::cout<<"请输入您要取的乐币:"; std::cin>>money; if(money> sum_money) { std::cout<<"您要取的乐币大于余额,此操作终结!"<<std::endl; start(); return 1; } sum_money-= money; std::cout<<"您的账户有:"; std::cout<<sum_money<<"乐币"<<std::endl; start(); return 1; } case 3: { start(); std::cout<<"谢谢,您选择3号功能:存款"<<std::endl; std::cout<<"请输入您要存的乐币:"; std::cin>>money; sum_money+= money; std::cout<<"您的账户有:"<<sum_money<<"乐币"<<std::endl; start(); return 1; } case 4: { start(); std::cout<<"谢谢,您选择4号功能:转账"<<std::endl; std::cout<<"请输入您要转的乐币:"<<std::endl; std::cin>>money; if(money> sum_money) { std::cout<<"您要转乐币大于余额,此操作被终结!"<<std::endl; start(); return 1; } sum_money-= money; std::cout<<"您账户有:"<<sum_money<<"乐币"<<std::endl; start(); return 1; } } std::cout<<"您输入的数字没有相应的功能!, 不要着急,再来一次。"<<std::endl; return 1; //当num没有匹配时返回1 } int main() { std::cout<<"************************欢迎来到乐多多一号银行***********************"<<std::endl<<std::endl; char password[7]="123456"; char keep_password[7]; //打印星号 start(); for(int j=0; j<3; j++) { std::cout<<"请输入您的密码(六位数哦):"; for(int k=0; k< 7; k++) { keep_password[k]=getch(); if(k<6) { std::cout<<"*"; } } std::cout<<"\n"; for(int i=0; i< 6; i++) { if(password[i]== keep_password[i]) { flag= 1; //第i位相同 } else { flag=0; break; } } if(j<3 && flag==0) { std::cout<<"您的密码错误"<<std::endl; } else if(j< 3) { std::cout<<"密码正确,请继续操作."<<std::endl; break; } else if(j>= 3) { std::cout<<"您已输入错误密码3次,银行卡被锁住!"<<std::endl; return -1; } } display_function(); int num; while(1) { std::cout<<"输入您选择的功能号:"; std::cin>>num; mark=display_number(num); if(mark==0) { std::cout<<"您已经退出乐多多一号银行,欢迎再次使用"<<std::endl; break; } } //打印星号 start(); return 0; }
C++编写ATM的更多相关文章
- C++编写ATM(2)
//上一个程序,密码不能被隐藏和该ATM可以让人取大于余额的乐币,这可定不行的.所以再次改了下,解决这两个问题. // ATM的初始.cpp : 定义控制台应用程序的入口点. // /******** ...
- C++编写ATM(1)
// ATM的初始.cpp : 定义控制台应用程序的入口点. // /************************************************* 运行环境: VS2008 作者 ...
- Python学习笔记-练习编写ATM+购物车(购物商城)
作业需求: 模拟实现一个ATM + 购物商城程序: 1.额度 15000或自定义 2.实现购物商城,买东西加入 购物车,调用信用卡接口结账 3.可以提现,手续费5% 4.支持多账户登录 5.支持账户间 ...
- JS基础——ATM机终端程序编写(3.0)
利用函数进行代码实现,要点:将每一项操作单独写成一个函数,在需要时进行调用,弄清参数的传递. 创建模拟账户 使用数组创建账户 let user = ["xiaohei", 1234 ...
- python函数版ATM
最近系统的学习python函数知识点,感觉在面向对象之前,函数的功能确实强大. 最近使用函数写了ATM项目,虽然需求简单但也有很多知识点需要注意,这个项目把python基础的很多知识点都用上了. 前前 ...
- C#多线程之旅~上车吧?
前言:前几天,写了一篇关于多线程使用的文章,[线程使用]用法得到不少博友的好评,博主这几天加班写文章,把剩下的高级使用给写完,期望可以得到博友的追赞吧,那么废话不多说,开始我们的C#高级用法之旅!! ...
- 第十九天 标准目录与time 模块
今日内容 1.目录规范 ***** (1)文件夹的规范写法 bin 可执行文件 conf 配置文件 core 主要业务逻辑 db 数据文件 lib 库 (公共代码 第三方模块) log 日志文件 ...
- Python之模块和包导入
Python之模块和包导入 模块导入: 1.创建名称空间,用来存放模块XX.py中定义的名字 2.基于创建的名称空间来执行XX.py. 3.创建名字XX.py指向该名称空间,XX.名字的操作,都是以X ...
- python常用模块:项目目录规范、定制程序入口、自定义模块、引用变量、time和datetime模块
今天讲课内容有两大部分: 一.文件目录规范二.定制程序入口三.使用标准目录后四.常规函数time.datetime 一.标准目录规范 之前用过的案例atm机+购物商城代码过长,在学习了模块和包以后,我 ...
随机推荐
- Ubuntu 16.04 Vim安装及配置【转】
转自:http://www.cnblogs.com/ace-wu/p/6273031.html 安装VIM 默认已经安装了VIM-tiny acewu@acewu-computer:~$ locate ...
- Nginx+uWSGI+Django环境配置
通常项目会部署在虚拟环境,虚拟环境的使用可以参考这里,点击前往 当然你也可以直接部署,这里不多说. 一.安装uWSGI 1.通过pip安装 pip install uwsgi 这里只说明了一种安装方式 ...
- python中的赋值操作和复制操作
之前一直写C#,变量之间赋值相当于拷贝,修改拷贝变量不会改变原来的值.但是在python中发现赋值操作本质是和C++中的引用类似,即指向同一块内存空间.下面通过一个例子说明: p=[0,1,2,3,4 ...
- Python中生成器和迭代器的功能介绍
生成器和迭代器的功能介绍 1. 生成器(generator) 1. 赋值生成器 1. 创建 方法:x = (variable for variable in iterable) 例如:x = (i f ...
- 利用maven install jar到项目当中
接着上面利用maven打好的jar包.把刚刚打好的包放入其他项目当中怎么办? 只需要在相同的目录下执行mvn install,maven会自动把jar放到本地仓库中. 这样,原先maven项目中缺少依 ...
- iOS支付宝,微信,银联支付集成封装调用(下)
一.越来越多的app增加第三方的功能,可能app有不同的页面但调用相同的支付方式,例如界面如下: 这两个页面都会使用第三方支付支付:(微信,支付宝,银联)如果在每一个页面都直接调用第三方支付的接口全部 ...
- [Java笔记]继承
继承只是继承框架,而数据没有继承!. 继承不改变父类数据!
- Django 跨域请求处理
参考https://blog.csdn.net/qq_27068845/article/details/73007155 http://blog.51cto.com/aaronsa/2071108 d ...
- 网络爬虫框架Scrapy简介
作者: 黄进(QQ:7149101) 一. 网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本:它是一个自动提取网页的程序,它为搜索引擎从万维 ...
- 28 自定义View侧滑栏
ScrollMenuView.java package com.qf.sxy.customview03.widget; import android.content.Context; import a ...