• 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("=========================
    ");
     41         printf("|	请选择以下数字:	|
    ");
     42         printf("|	1、取款		|
    ");
     43         printf("|	2、存款		|
    ");
     44         printf("|	3、查询余额	|
    ");
     45         printf("|	4、退出		|
    ");
     46         printf("=========================
    ");
     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("谢谢使用!
    再见!
    ");
     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,存款只能存整数!
    ");
     90     printf("请输入密码:
    ");
     91     scanf("%d",&pw);
     92 
     93     while(pw != 520)
     94     {
     95         i++;
     96         system("cls");
     97         printf("请第%d次输入密码
    ", i);
     98         scanf("%d",&pw);
     99         if(i==3)
    100         {
    101             printf("谢谢使用,密码错误次数过多,请明天再试。
    ");
    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("=========================
    ");
    124         printf("|	请选择以下数字:	|
    ");
    125         printf("|	1、取100	|
    ");
    126         printf("|	2、取200	|
    ");
    127         printf("|	3、取300	|
    ");
    128         printf("|	4、返回		|
    ");
    129         printf("=========================
    ");
    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("请稍后!,正在吐钞...
    ");
    143             printf("目前余额:%d
    ", qianshu);
    144             break;
    145 
    146             case 2:
    147             qianshu -= 200;
    148             printf("请稍后!,正在吐钞...
    ");
    149             printf("目前余额:%d
    ", qianshu);
    150             break;
    151 
    152             case 3:
    153             qianshu -= 300;
    154             printf("请稍后!,正在吐钞...
    ");
    155             printf("目前余额:%d
    ", 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("请输入存款金额:
    ");
    182         scanf("%d", &number);
    183         qianshu += number;
    184 
    185         system("cls");
    186         printf("本次存款:%d
    ", number);
    187         printf("你目前账号余额:%d
    ", qianshu);
    188 
    189         //菜单
    190         printf("=========================
    ");
    191         printf("|	请选择以下数字:	|
    ");
    192         printf("|	1、继续存款	|
    ");
    193         printf("|	2、返回		|
    ");
    194         printf("=========================
    ");
    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
    ", qianshu);
    218         printf("
    ");
    219         printf("=========================
    ");
    220         printf("|	请选择以下数字:	|
    ");
    221         printf("|	1、继续查询	|
    ");
    222         printf("|	2、返回		|
    ");
    223         printf("=========================
    ");
    224 
    225         scanf("%d", &number);
    226     }while(number != 2);
    227 }
  • 相关阅读:
    SharePoint 2010 产品六大功能模块
    转:USB主机控制器(Host Controller)--深入理解
    转:C#基础知识梳理
    SharePoint 2010 Logging Improvements
    列表不能在数据表视图中显示
    selenium driver.close()与driver.quit()区别
    启动远程主机上的项目
    linux命令:passwd修改用户密码
    no crontab for root
    10位和13位时间戳转换成时间字符串
  • 原文地址:https://www.cnblogs.com/arvintang/p/5109342.html
Copyright © 2020-2023  润新知