zoukankan      html  css  js  c++  java
  • 2015.12.07 ATM_Function

      1 #include <stdio.h>
      2 
      3 #include <stdlib.h>
      4 
      5 #include <stdbool.h>
      6 
      7  
      8 
      9 int password = 123456;
     10 
     11 int balance = 10000;
     12 
     13 bool isLogined = false;
     14 
     15  
     16 
     17 void alert(char *content);
     18 
     19 int getValidOperation(int maxNum);
     20 
     21 void quit(int status);
     22 
     23 void query();
     24 
     25 void isContinue();
     26 
     27 bool inputPassword();
     28 
     29 void takeMoney();
     30 
     31 void changePsw();
     32 
     33  
     34 
     35  
     36 
     37 int main(int argc, const char * argv[]) {
     38 
     39     
     40 
     41     bool result;
     42 
     43     
     44 
     45     while (1) {
     46 
     47         alert("1.输入密码
    2.取款
    3.查询余额
    4.更改密码
    5.退出");
     48 
     49         int operation = INT32_MAX;
     50 
     51         operation = getValidOperation(5);
     52 
     53         switch (operation) {
     54 
     55                 //1.输入密码
     56 
     57             case 1:
     58 
     59                 result = inputPassword();
     60 
     61                 if (result == false) {
     62 
     63                     quit(EXIT_SUCCESS);
     64 
     65                 }else{
     66 
     67                     isLogined = true;
     68 
     69                 }
     70 
     71                 break;
     72 
     73                 //2.取款
     74 
     75             case 2:
     76 
     77                 takeMoney();
     78 
     79                 isContinue();
     80 
     81                 break;
     82 
     83                 
     84 
     85                 //3.查询余额
     86 
     87             case 3:
     88 
     89                 query();
     90 
     91                 isContinue();
     92 
     93                 getchar();
     94 
     95                 break;
     96 
     97                 //4.更改密码
     98 
     99             case 4:
    100 
    101                 changePsw();
    102 
    103                 break;
    104 
    105                 //5.退出
    106 
    107             case 5:
    108 
    109                 quit(EXIT_SUCCESS);
    110 
    111             default:
    112 
    113                 break;
    114 
    115         }
    116 
    117         printf("
    ");
    118 
    119         
    120 
    121     }
    122 
    123     return 0;
    124 
    125 }
    126 
    127  
    128 
    129 void alert(char *content){
    130 
    131     printf("****************
    ");
    132 
    133     printf("%s
    ", content);
    134 
    135     printf("****************
    ");
    136 
    137 }
    138 
    139  
    140 
    141 int getValidOperation(int maxNum){
    142 
    143     int operation;
    144 
    145     
    146 
    147     printf("选一个吧:");
    148 
    149     scanf("%d", &operation);
    150 
    151     
    152 
    153     while (operation < 1 || operation > maxNum) {
    154 
    155         printf("别搞笑,好好输:");
    156 
    157         getchar();
    158 
    159         scanf("%d", &operation);
    160 
    161     }
    162 
    163     return operation;
    164 
    165 }
    166 
    167  
    168 
    169 void quit(int status){
    170 
    171     alert("拔卡!拔卡!拔卡!");
    172 
    173     exit(status);
    174 
    175 }
    176 
    177  
    178 
    179  
    180 
    181 void query(){
    182 
    183     if (isLogined == false) {
    184 
    185         bool result = inputPassword();
    186 
    187         if (result == false) {
    188 
    189             quit(EXIT_SUCCESS);
    190 
    191         }else {
    192 
    193             isLogined = true;
    194 
    195         }
    196 
    197     }else{
    198 
    199     printf("****************
    ");
    200 
    201     printf("你还有¥%d
    ", balance);
    202 
    203     printf("****************
    ");
    204 
    205     }
    206 
    207 }
    208 
    209  
    210 
    211 void isContinue(){
    212 
    213     char choose;
    214 
    215     
    216 
    217     alert("继续不?(y/n):");
    218 
    219     getchar();
    220 
    221     scanf("%c", &choose);
    222 
    223     
    224 
    225     while (choose != 'y' && choose != 'n') {
    226 
    227         printf("好好输!(y/n)
    ");
    228 
    229         getchar();
    230 
    231         scanf("%c", &choose);
    232 
    233     }
    234 
    235     if (choose == 'n') {
    236 
    237         quit(EXIT_SUCCESS);
    238 
    239     }
    240 
    241 }
    242 
    243  
    244 
    245  
    246 
    247 bool inputPassword(){
    248 
    249     int inputedpassword = INT32_MAX;
    250 
    251     int totalWrongTime = 3;
    252 
    253     
    254 
    255     do {
    256 
    257         printf("%s", inputedpassword == INT32_MAX ? "密码是啥:": "别骗我!密码是啥:");
    258 
    259         getchar();
    260 
    261         scanf("%d", &inputedpassword);
    262 
    263         
    264 
    265         totalWrongTime--;
    266 
    267     } while (inputedpassword != password && totalWrongTime > 0);
    268 
    269     
    270 
    271     if (inputedpassword != password) {
    272 
    273         return false;
    274 
    275     }else{
    276 
    277         return true;
    278 
    279     }
    280 
    281 }
    282 
    283  
    284 
    285  
    286 
    287 void takeMoney(){
    288 
    289     if (isLogined == true) {
    290 
    291         int totalMoney;
    292 
    293         int num2_1;
    294 
    295         alert("1.¥100
    2.¥300
    3.¥500
    4.其他金额");
    296 
    297         num2_1 = getValidOperation(4);
    298 
    299         switch (num2_1) {
    300 
    301             case 1:
    302 
    303                 totalMoney = 100;
    304 
    305                 break;
    306 
    307             case 2:
    308 
    309                 totalMoney = 300;
    310 
    311                 break;
    312 
    313             case 3:
    314 
    315                 totalMoney = 500;
    316 
    317                 break;
    318 
    319             case 4:
    320 
    321                 printf("取多少:");
    322 
    323                 scanf("%d", &totalMoney);
    324 
    325                 break;
    326 
    327             default:
    328 
    329                 break;
    330 
    331         }
    332 
    333         if (totalMoney <= balance) {
    334 
    335             printf("
    您的余额为:¥%d
     
    ", balance -= totalMoney);
    336 
    337         }else {
    338 
    339             printf("
    穷B,钱不够!
     
    ");
    340 
    341         }
    342 
    343         
    344 
    345     }else{
    346 
    347         bool result =  inputPassword();
    348 
    349         if (result == false) {
    350 
    351             quit(EXIT_SUCCESS);
    352 
    353         }else {
    354 
    355             isLogined = true;
    356 
    357         }
    358 
    359         
    360 
    361     }
    362 
    363 }
    364 
    365  
    366 
    367  
    368 
    369  
    370 
    371 void changePsw(){
    372 
    373     if (isLogined == false) {
    374 
    375         bool result = inputPassword();
    376 
    377         if (result == false) {
    378 
    379             quit(EXIT_SUCCESS);
    380 
    381         }else {
    382 
    383             isLogined = true;
    384 
    385         }
    386 
    387     }else{
    388 
    389         printf("输入新密码:
    ");
    390 
    391         scanf("%d", &password);
    392 
    393     }
    394 
    395 }
    396 
    397  
    398 
    399  
  • 相关阅读:
    基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果(转)
    javascript中call、apply、argument、callee、caller
    Google Analytics10条有用教程(转)
    小问题
    MySQL exists的用法介绍
    warning C4005: “AF_IPX”: 宏重定义的解决办法
    /MT、/MD编译选项,以及可能引起在不同堆中申请、释放内存的问题
    _mkdir
    文件读写操作总结
    Distinct
  • 原文地址:https://www.cnblogs.com/immustard/p/5026822.html
Copyright © 2011-2022 走看看