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 }
时间: 2024-11-08 11:34:46

C语言设计ATM存取款界面的相关文章

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

package main import "fmt" /* @ATM(闭包练习) ·写一个Atm(函数),返回存款,取款两个内层函数 ·存款,取款两个函数,都以一个金额为参数,返回存取之后的余额 ·将各自的余额存在函数闭包中 ·比尔,马云,你任意存取之后,输出各自余额 */ func Atm(name string) (func(amount int) (ballance int), func(amount int) (ballance int)) { /* 内存函数的账户姓名 内存函数

ATM存取款程序

  这个小程序是根据ATM机工作存取款编写的,可以使用eclipse运行.在程序编写中,主要训练了异常处理, 有参构造函数.   (1)Banker类 package com.Bank; public class Banker {     double Amount;          public Banker(double amount){      Amount=amount;     }          public void GetMoney(double GMoney){     

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

C语言实验报告       题目名称:C语言模拟ATM自动取款机系统 C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入:用户输入密码,才能进入. 登陆成功界面:共有六个选项,查询余额.取款.存款.转账,修改密码,退出分别对应1,2,3,4,5,6选项,若序号输入不正确会予以提示. 选定1后,进入查询余额界面: 选定2后,进入取款界面: 选定3后,进入存款界面: 选定4后,修改密码,选定5,进入转账:选定6,退出界面:

初识Java---简单小程序:ATM存取款机

1 import java.util.Scanner; 2 3 /**ATM存取款机*/ 4 public class ATM { 5 6 public static void main(String[] args) { 7 /**初始化用户信息*/ 8 String user = "zhan";//用户名 9 String pwd = "123";//密码 10 float money = 100f ;//初始余额 11 welcome(); 12 if (log

Java基础知识综合练习_使用集合存储_高级银行系统的搭建(注册、登录、存取款、本行转账、跨行转账、销户、特殊操作参数、多个客户对象存入到银行类的集合,多个银行对象存入总测试类集合)

Java基础知识综合练习_使用集合存储_高级银行系统的搭建(注册.登录.存取款.本行转账.跨行转账.销户.特殊操作参数.多个客户对象存入到银行类的集合,多个银行对象存入总测试类集合) 1) 定义bank类 属性有银行名称和存放客户的ArrayList集合, 有开户方法. 销户方法. 存钱方法. 取钱方法. 转账方法(本行转账.跨行转账) 2) 定义customer类 属性有账户名.密码.余额 3) 定义测试类创建一个银行集合用于存放bank对象创建几个bank对象:分别叫华夏银行.工商银行.招商

[JavaScript] JavaScript 面向对象设计 (3) : 多态与界面篇

在前一篇中我们介绍了基础的 JavaScript 继承实践法,透过 Object.prototype 我们可以自由决定对象要继承自哪个对象,也可以扩充对象目前现有的属性和方法 (和 C# 的 Extension Method 有异曲同工之妙),在本篇中,我们要来介绍面向对象的另一个特性:多态 (Polymorphism). 在前一篇中我们介绍了基础的 JavaScript 继承实践法,透过 Object.prototype 我们可以自由决定对象要继承自哪个对象,也可以扩充对象目前现有的属性和方法

用户界面设计经验分享:界面设计技巧分享

如此有用的文章我已记不得是什么时候发现的了,但在看完的那一刻便想将之翻译,分享给大家自己也受用. 时间过了很久,来到了2014年,终于静下心来花了大把时间连同图片一起译成了中文.像我这样业余的翻译六级分数只够及格的程序员,不敢说做到信雅达,但求意思到位. 1 尽量使用单列而不是多列布局 单列布局能够让对全局有更好的掌控.同时用户也可以一目了然内容.而多列而已则会有分散用户注意力的风险使你的主旨无法很好表达.最好的做法是用一个有逻辑的叙述来引导用户并且在文末给出你的操作按钮. 2 放出礼品往往更具

为什么 Java 只有值传递,但 C# 既有值传递,又有引用传递,这种语言设计有哪些好处?

为什么 Java 只有值传递,但 C# 既有值传递,又有引用传递,这种语言设计有哪些好处? http://www.zhihu.com/question/20628016 Java值传递的终极解释 http://developer.51cto.com/art/201103/251163.htm

用Python语言设计GUI界面

我们大家都编写过程序,但是如果能够设计一个GUI界面,会使程序增添一个很大的亮点!今天就让我们来用目前十分流行的python语言写出一个最基本的GUI,为日后设计更加漂亮的GUI打下基础. 工具/原料 Python编译软件 PyQt设计软件 方法/步骤 1 首先,如果没有安装python和PyQt软件的请先直接搜索下载并安装.python是一个开源软件,因此都是可以在网上免费下载的,最新版本即可.下载完成后,我们先打开PyQt designer. 2 打开后,首先是一个默认的新建窗口界面,在这里