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

主要考察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. 使用 DML语句,对 “锦图网” 数据进行操作,聚合函数练习

    查看本章节 查看作业目录 需求说明: 根据客户 ID 统计订单数.订单总金额.最高订单金额.最低订单金额和每份订单平均金额,并按订单总金额升序显示 根据客户统计订单总订购人次数> 5 的统计信息 ...

  2. 编写Java程序,应用客户端和服务端通过 Eclipse 控制台的输入和显示实现简易的聊天功能

    查看本章节 查看作业目录 需求说明: 应用客户端和服务端通过 Eclipse 控制台的输入和显示实现简易的聊天功能 实现思路: 创建 Java 项目,在项目中创建服务端类 ChatServerThre ...

  3. 【】JSON语法RFC4627

    Network Working Group D. Crockford Request for Comments: 4627 JSON.org Category: Informational July ...

  4. Redis真的又小又快又持久吗

    一本正经 面试官:小伙子,谈谈对Redis的看法. 我:啊,看法呀,坐着看还是躺着看.Redis很小?很快?但很持久? 面试官:一本正经的说,我怀疑你在开车,不仅开开车还搞颜色. 我:... 面试官: ...

  5. Python中单下划线与双下划线用法总结

    看mentor的脚本时,遇到self._item.callspec.getparam('')语句,理解起来比较困难,找到一篇文章,记录的比较详细,特别记录一下,以备复习. 附链接地址:http://w ...

  6. MapReduce和Hive学习文档链接学习顺序

    1.<CentOS6.5下安装Hadoop-2.7.3(图解教程)> https://www.toutiao.com/i6627365258090512909/ 2.<CentOS6 ...

  7. IntelliJ IDEA最新破解方法

    IntelliJ IDEA最新破解方法 首先说下,本人使用idea版本是2021.2.3. 一.下载IDEA(推荐从官网下载) 官网地址:https://www.jetbrains.com/idea/ ...

  8. ajax的核心

    <script> // ajax 简称(a 代表异步 j 代表javascript a 代表 and x 代表xml--是一种带有标签的数据格式,被json取代了) //ajax 是异步对 ...

  9. 关于C++11共享数据带来的死锁问题的提出与解决

    举个例子,如果有一份资源,假如为list<int>资源,假设有两个线程要对该资源进行压入弹出操作,如果不进行锁的话,那么如果两个线程同时操作,那么必然乱套,得到的结果肯定不是我们想要的结果 ...

  10. gin初识

    Gin 是一个用 Go (Golang) 编写的 web 框架. 它是一个类似于 martini 但拥有更好性能的 API 框架, 由于 httprouter,速度提高了近 40 倍. 如果你是性能和 ...