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 }