这个虽然很简单,但是我还是弄了一会儿,可见有多菜。练习算。

主要考察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存取款界面的更多相关文章

  1. 银行ATM存取款系统(C语言实现)

    这里使用的运行工具是DEV C++.老铁们一定要看仔细了.是DEV C++ 仅供借鉴:这个是大一时期写的.大四的时候整理了一下(本人C语言学的也不太好).肯定很多不足和存在漏洞的地方.仅供借鉴.仅供借 ...

  2. Go语言的函数07---闭包练习(ATM存取款)

    package main import "fmt" /* @ATM(闭包练习) ·写一个Atm(函数),返回存款,取款两个内层函数 ·存款,取款两个函数,都以一个金额为参数,返回存 ...

  3. java 使用线程做一个简单的ATM存取款实例.(转)

    线程 Thread 类,和 Runable 接口 比较两者的特点和应用领域. 可以,直接继承线程Thread类.该方法编写简单,可以直接操作线程,适用于单重继承情况,因而不能在继承其他类 实现Runn ...

  4. java并发编程——通过ReentrantLock,Condition实现银行存取款

         java.util.concurrent.locks包为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器.该框架允许更灵活地使用锁和条件,但以更难用的语法为代价. Lock 接口 ...

  5. C语言实现的简单银行存取款程序 请输入如下数字命令

    #include <stdio.h> int main(void) { //提供变量 cmd balance(余额) deposit(存款) withdraw(取款) //利用while做 ...

  6. 语言模拟ATM自动取款机系统

    C语言实验报告       题目名称:C语言模拟ATM自动取款机系统 C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入: ...

  7. ATM跨行取款的清算方式

    ATM跨行取款和POS机是类似的,因为没有商户参与,所以不需要收单清算,过程更为简单. 回到文章最开头的例子:你拿着一张工行卡去建行的ATM取了100元,这个跨行业务在CNAPS体系中的过程如下: 你 ...

  8. 影响Scala语言设计的因素列表

    Scala语言设计概述 Scala的设计受许多编程语言和研究思想的影响.事实上,仅很少的Scala的特点是全新的:大多数都已经被以另外的形式用在其他语言中了.Scala的革新主要来源于它是如何构造并放 ...

  9. Python 小案例实战 —— 简易银行存取款查询系统

    Python 小案例实战 -- 简易银行存取款查询系统 涉及知识点 包的调用 字典.列表的混合运用 列表元素索引.追加 基本的循环与分支结构 源码 import sys import time ban ...

随机推荐

  1. 2.spring系列之404异常的捕获

    回顾 我在之前发布了一篇spring统一返回的文章,最后提到是无法捕获404异常的,这里我们先来测试一下 @RestController public class TestController { @ ...

  2. 使用docker或者docker-compose部署Zookeeper集群

    之前有介绍过Zookeeper的安装部署(Zookeeper基础教程(二):Zookeeper安装),但是那里我是基于独立的虚拟机来实现部署的,这种部署方式适合线上集群部署.后来有几次想用一下Zook ...

  3. CSS基础-3 文字知识

    文字知识 一.浏览器文字默认大小为16px; 行高默认大小为18px; 行高 = 文字大小 + 文字上边距 + 文字下边距 或者是 行高 = 两条基线之间的距离                    ...

  4. Linux根目录缺少x权限,产生的两个错误

    错误一:root用户执行systemctl命令报误 [root@node1 ~]# systemctl restart sshd * (pkttyagent:10364): WARNING *: Un ...

  5. vim - 显示不可见字符(:set list)

    默认情况下,vim是不会显示space,tabs,newlines,trailing space,wrapped lines等不可见字符的.我们可以使用以下命令打开list选项,来显示非可见字符: : ...

  6. VM搭建Hadoop环境遇到的问题

    原文链接:https://www.toutiao.com/i6482644128860471822/ 一.Slave2中sshd服务一直处于启动失败状态 查看配置文件 c 发现配置文件末尾slave2 ...

  7. Maven自定义jar包名

    一.默认命名 <finalName>${project.artifactId}-${project.version}</finalName> 二.自定义包名 <build ...

  8. ArcGIS把导入的shp按渔网区块分割成更小的文件

    前言 前端地图的开发需要导入城市的3D建筑白模,如果直接导入整个城市的json,文件大小高达76M,浏览器会直接崩溃,所以需要用ArcGIS分割成更小的文件后再给前端导入展示. ArcGIS版本:10 ...

  9. css3中transition属性详解

    css3中通过transition属性可以实现一些简单的动画过渡效果~ 1.语法 transition: property duration timing-function delay; transi ...

  10. FFT 傅里叶万岁

    FFT --- Fast Foulier Transformation 以 $O(n \log n)$ 的速度计算 $\forall k=1,2,\dots,n, c[k]=\sum\limits_{ ...