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

主要考察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. 编写Java程序,使用 dom4j 解析上一节王者荣耀“英雄”对应的Xml文件数据内容,打印输出,具体格式

    查看本章节 查看作业目录 需求说明: 使用 dom4j 解析上一节王者荣耀"英雄"对应的Xml文件数据内容,打印输出,具体格式如图所示 实现思路: 创建ParseHeroXML用于 ...

  2. 简单的制作ssl证书,并在nginx和IIS中使用

    2020年最后一篇博文收官,提前祝各位园友新年快乐 现在的后端开发,动不动就是需要https,或者说是需要ssl证书,既然没有正版的证书,那么我们只能自己制作ssl的证书了. 说明:证书的制作采用的是 ...

  3. 数三角count(归类)

    评测方式:文本比较 题目描述 这是一个数三角的游戏.长度为1或SQRT(2)的小木棍放在一个网格上.如图所示,有水平的,垂直的或对角的.对角放置的木棍可以交叉. avatar 将木棍随意地放在网格上得 ...

  4. nginx高并发配置详解

    https://www.cnblogs.com/liqiu/p/3152206.html 1.  worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 ...

  5. Nginx 加载conf.d (内文件***.conf)

    include /usr/local/nginx/conf/conf.d/*.conf;

  6. python安装第三方库的步骤

    windows下举例:1.下载openpyxl,http://pypi.doubanio.com/simple/openpyxl/2.将下载后的文件解压放到Python文件夹下的Lib文件夹下3.cm ...

  7. Python之路 - Day4 - Python基础4 (新版)

    本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需 ...

  8. 第10组 Beta冲刺 (5/5)

    1.1基本情况 ·队名:今晚不睡觉 ·组长博客:https://www.cnblogs.com/cpandbb/p/14018671.html ·作业博客:https://edu.cnblogs.co ...

  9. asyncio异步编程

    1. 协程 协程不是计算机提供,程序员认为创造 协程(Coroutine),也可以被称为微线程,是一种用户态内的上下文切换技术,其实就是一个线程实现代码块相互切换执行.例如: def func1(): ...

  10. android入门--环境搭建

    运行环境 windows 7 下载地址 环境下载 最近开接触Android(安卓)嵌入式开发,首要问题是搭建Andoid开发环境,由于本人用的是windows7的笔记本,也就只能到Windows中搭建 ...