c语言ATM机案例

发布时间 2023-11-17 20:07:38作者: 捞月亮的渔夫
 1 #include<stdio.h>
 2 int main()
 3 {
 4     //password初始密码,input输入的密码 money取款金额,balance卡余额 ,select选项,x表示输入密码的次数(错误的机会只有三次)
 5     int password = 1101, input, money, balance=300;
 6     //select表示选择的选项
 7     int select, x,i ; 
 8     int isFlag = 1; //进行循环判断
 9     //进行循环(保持窗口界面一直显示,这里是当密码输错时,进行的循环,直到最后三次完,进行吞卡即退出程序)
10     for ( i = 1; i <=3; i++)
11     {
12         printf("请输入密码....");
13         scanf_s("%d", &input);
14         //进行登录密码验证判断
15         if (input == password)
16         {
17             //进行循环(这里的循环是提示信息界面的循环)
18             do
19             {
20                 //当密码登录成功是..用于打印提示信息的界面
21                 printf("账户登录成功......\n");
22                 printf("=======ATM========\n");
23                 printf("1.取款\n");
24                 printf("2.存款\n");
25                 printf("3.查余额\n");
26                 printf("4.退出\n");
27                 printf("请选择以上选项(1-4)");
28                 scanf_s("%d", &select);
29                 switch (select) {
30                 case 1:
31                     printf("请输入取款的金额....\n");
32                     scanf_s("%d", &money);
33                     //取款金额需要判断,必须大于0且小于卡中的余额
34                     if (money > 0 && money <= balance)
35                     {
36                         printf("成功取款,金额=%d\n", money);
37                         balance -= money;
38                     }
39                     else
40                     {
41                         printf("余额不足......\n");
42                     }
43                     break;
44                 case 2:
45                     printf("请输入存款的金额....");
46                     scanf_s("%d", &money);
47                     //存款也需要判断,存款金额须大于0
48                     if (money > 0)
49                     {
50                         printf("成功存款,存款金额=%d", money);
51                         balance += money;
52                     }
53                     else
54                     {
55                         printf("您输入的金额有误....");
56                     }
57                     break;
58                 case 3:
59                     printf("当前账户余额=%d", balance);
60                     break;
61                 case 4: 
62                     isFlag = 0; //这里的变量很重要,由于一开始设置=1,当选择4时,就是执行该行代码,然后退出循环
63                     printf("请带好您的随身物品,欢迎您下次光临......");
64                     break;
65                 }
66             } while (isFlag);
67         }
68         //当密码输错时,进行判断,由于只有三次机会
69         else if (i <= 2)
70         {
71             x = 3 - i;
72             printf("输入的密码错误,请重新输入...\n");
73             printf("你还有%d", x);
74             printf("次输入密码的机会");
75 
76         }
77         //三次机会都用完时,直接退出程序
78         else
79         {    
80             printf("您输入的密码错误,次数已经使用完,卡已经被吞,请到人工前台咨询...");
81         }
82     
83     }
84     return 0;
85 
86 }