C语言设计ATM存取款界面
这个虽然很简单,但是我还是弄了一会儿,可见有多菜。练习算。
主要考察switch开关语句、do...while语句,页面的跳转我用的是goto,虽然是弊端,可是还是用了,因为太菜啊。大家有好建议的欢迎提出。
好了不说了,贴源码,欢迎各位网友老师,提出批评改进意见。
1 /**
2 * Copyright (c) 1991 - 2016 Arvin Tang.
3 * All rights reserved.
4 *
5 * 文件名称:
6 * 简要描述:用C语言实现ATM界面,很丑的说
7 *
8 * 当前版本:1.0
9 * 作 者:
10 * 完成日期:2016-1-7
11 * 修订说明:
12 *
13 * 取代版本:
14 * 作 者:
15 * 完成日期:
16 * 修订说明:
17 */
18 #include <stdio.h>
19 #include <stdlib.h>
20 //
21 //clrscr();函数不是标准的C函数,只存在Tuber C中且#include <conio.h>。
22 //但是可以用system("cls");代替,且#include <stdlib.h>。
23
24 void pw(void);
25 void qu(void);
26 void cun(void);
27 void cha(void);
28
29 int qianshu = 1000;//定义卡内钱数
30
31 int main(void)
32 {
33 int number;
34
35 pw();
36 system("cls");//清除屏幕上的密码
37
38 loop:do
39 {
40 printf("=========================\n");
41 printf("|\t请选择以下数字:\t|\n");
42 printf("|\t1、取款\t\t|\n");
43 printf("|\t2、存款\t\t|\n");
44 printf("|\t3、查询余额\t|\n");
45 printf("|\t4、退出\t\t|\n");
46 printf("=========================\n");
47
48 scanf("%d",&number);
49 }while(number != 1 && number != 2 && number != 3 && number != 4);
50
51 switch(number)
52 {
53 case 1:
54 qu();
55 system("cls");
56 goto loop;
57
58 case 2:
59 cun();
60 system("cls");
61 goto loop;
62
63 case 3:
64 cha();
65 system("cls");
66 goto loop;
67
68 case 4:
69 printf("谢谢使用!\n再见!\n");
70 system("pause");
71 break;
72
73 }
74
75 return 0;
76 }
77
78 /**
79 * 函数名称:密码输入判断函数
80 * 输入参数:
81 * 输出参数:
82 * 返 回 值:
83 */
84 void pw(void)
85 {
86 int pw;//密码变量
87 int i=1;//密码次数累加量
88
89 printf("温馨提示密码:520,存款只能存整数!\n");
90 printf("请输入密码:\n");
91 scanf("%d",&pw);
92
93 while(pw != 520)
94 {
95 i++;
96 system("cls");
97 printf("请第%d次输入密码\n", i);
98 scanf("%d",&pw);
99 if(i==3)
100 {
101 printf("谢谢使用,密码错误次数过多,请明天再试。\n");
102 exit(0);//输入错误次数过多,系统退出。
103 }
104 }
105
106 }
107
108 /**
109 * 函数名称:取款
110 * 输入参数:
111 * 输出参数:
112 * 返 回 值:
113 */
114 void qu(void)
115 {
116 int number;//菜单数
117
118 do
119 {
120 system("cls");//清屏
121
122 //取款菜单
123 printf("=========================\n");
124 printf("|\t请选择以下数字:\t|\n");
125 printf("|\t1、取100\t|\n");
126 printf("|\t2、取200\t|\n");
127 printf("|\t3、取300\t|\n");
128 printf("|\t4、返回\t\t|\n");
129 printf("=========================\n");
130
131 scanf("%d", &number);
132
133 }while(number != 1 && number != 2 && number != 3 && number != 4);
134
135 //三级菜单
136 do
137 {
138 switch(number)
139 {
140 case 1:
141 qianshu -= 100;
142 printf("请稍后!,正在吐钞...\n");
143 printf("目前余额:%d\n", qianshu);
144 break;
145
146 case 2:
147 qianshu -= 200;
148 printf("请稍后!,正在吐钞...\n");
149 printf("目前余额:%d\n", qianshu);
150 break;
151
152 case 3:
153 qianshu -= 300;
154 printf("请稍后!,正在吐钞...\n");
155 printf("目前余额:%d\n", qianshu);
156 break;
157
158 case 4:
159 return;
160 }
161
162 scanf("%d", &number);
163
164 }while(number != 4);
165 }
166
167 /**
168 * 函数名称:存款
169 * 输入参数:
170 * 输出参数:
171 * 返 回 值:
172 */
173 void cun(void)
174 {
175 int number;
176
177 system("cls");
178
179 do
180 {
181 loop1:printf("请输入存款金额:\n");
182 scanf("%d", &number);
183 qianshu += number;
184
185 system("cls");
186 printf("本次存款:%d\n", number);
187 printf("你目前账号余额:%d\n", qianshu);
188
189 //菜单
190 printf("=========================\n");
191 printf("|\t请选择以下数字:\t|\n");
192 printf("|\t1、继续存款\t|\n");
193 printf("|\t2、返回\t\t|\n");
194 printf("=========================\n");
195
196 scanf("%d", &number);
197
198 if(number == 1)
199 goto loop1;
200
201 }while(number != 2);
202 }
203
204 /**
205 * 函数名称:查询
206 * 输入参数:
207 * 输出参数:
208 * 返 回 值:
209 */
210 void cha(void)
211 {
212 int number;
213 do
214 {
215 system("cls");
216
217 printf("你目前账号余额:%d\n", qianshu);
218 printf("\n");
219 printf("=========================\n");
220 printf("|\t请选择以下数字:\t|\n");
221 printf("|\t1、继续查询\t|\n");
222 printf("|\t2、返回\t\t|\n");
223 printf("=========================\n");
224
225 scanf("%d", &number);
226 }while(number != 2);
227 }
C语言设计ATM存取款界面的更多相关文章
- 银行ATM存取款系统(C语言实现)
这里使用的运行工具是DEV C++.老铁们一定要看仔细了.是DEV C++ 仅供借鉴:这个是大一时期写的.大四的时候整理了一下(本人C语言学的也不太好).肯定很多不足和存在漏洞的地方.仅供借鉴.仅供借 ...
- Go语言的函数07---闭包练习(ATM存取款)
package main import "fmt" /* @ATM(闭包练习) ·写一个Atm(函数),返回存款,取款两个内层函数 ·存款,取款两个函数,都以一个金额为参数,返回存 ...
- java 使用线程做一个简单的ATM存取款实例.(转)
线程 Thread 类,和 Runable 接口 比较两者的特点和应用领域. 可以,直接继承线程Thread类.该方法编写简单,可以直接操作线程,适用于单重继承情况,因而不能在继承其他类 实现Runn ...
- java并发编程——通过ReentrantLock,Condition实现银行存取款
java.util.concurrent.locks包为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器.该框架允许更灵活地使用锁和条件,但以更难用的语法为代价. Lock 接口 ...
- C语言实现的简单银行存取款程序 请输入如下数字命令
#include <stdio.h> int main(void) { //提供变量 cmd balance(余额) deposit(存款) withdraw(取款) //利用while做 ...
- 语言模拟ATM自动取款机系统
C语言实验报告 题目名称:C语言模拟ATM自动取款机系统 C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入: ...
- ATM跨行取款的清算方式
ATM跨行取款和POS机是类似的,因为没有商户参与,所以不需要收单清算,过程更为简单. 回到文章最开头的例子:你拿着一张工行卡去建行的ATM取了100元,这个跨行业务在CNAPS体系中的过程如下: 你 ...
- 影响Scala语言设计的因素列表
Scala语言设计概述 Scala的设计受许多编程语言和研究思想的影响.事实上,仅很少的Scala的特点是全新的:大多数都已经被以另外的形式用在其他语言中了.Scala的革新主要来源于它是如何构造并放 ...
- Python 小案例实战 —— 简易银行存取款查询系统
Python 小案例实战 -- 简易银行存取款查询系统 涉及知识点 包的调用 字典.列表的混合运用 列表元素索引.追加 基本的循环与分支结构 源码 import sys import time ban ...
随机推荐
- Cube 技术解读 | Cube 小程序技术详解
本文为<Cube 技术解读>系列第三篇文章,之前上线的<支付宝新一代动态化技术架构与选型综述>与<Cube卡片技术栈解读>欢迎大家回顾. 魔方卡片(Cube)已在「 ...
- Windows环境下使用Linux命令
1.说明 如何在Windows环境下使用Linux命令, 这是一个屡见不鲜的问题, 而且已经有很多解决方法, 下面仅推荐几个我觉得好用的工具, 这些工具可能就是我们常用的软件, 而且已经在Window ...
- 简单的制作ssl证书,并在nginx和IIS中使用
2020年最后一篇博文收官,提前祝各位园友新年快乐 现在的后端开发,动不动就是需要https,或者说是需要ssl证书,既然没有正版的证书,那么我们只能自己制作ssl的证书了. 说明:证书的制作采用的是 ...
- docker安装elasticsearch6.8.3-单机模式及可视化Kibana6.8.3
docker安装elasticsearch6.8.3-单机模式 拉取镜像 docker pull elasticsearch:6.8.3 创建容器 测试环境加上-e "discovery. ...
- spring security 关于 http.sessionManagement().maximumSessions(1);的探究
1.前言 spring security 支持对session的管理 , http.sessionManagement().maximumSessions(1);的意思的开启session管理,ses ...
- MySQL索引失效的常见场景
当然请记住,explain是一个好习惯! MySQL索引失效的常见场景 在验证下面的场景时,请准备足够多的数据量,因为数据量少时,MySQL的优化器有时会判定全表扫描无伤大雅,就不会命中索引了. 1. ...
- 【Java】简单了解网络编程
文章目录 网络编程 网络编程中有两个主要的问题 网络编程中的两个要素 通信要素一:IP和端口号 实例化InetAddress 两个常用方法 端口号 通信要素二:网络通信协议 实现TCP的网络编程 例子 ...
- RHCSA 第六天
一. 创建下列用户.组和组成员资格: 1.创建名为 sysmgrs 的组 2.创建用户 natasha 同时指定sysmgrs作为natasha的附加组 3.创建用户 harry 同时指定 sysm ...
- 《剑指offer》面试题63. 股票的最大利润
问题描述 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = ...
- [MRCTF2020]Ezaudit
[MRCTF2020]Ezaudit 知识点 1.源码泄露 2.伪随机数 3.sql注入? 题解 打开题目是个漂亮的前端,扫一下发现www.zip文件泄露,下载审计 <?php header(' ...