银行系统,输入密码后的4个操作

接上一篇成功写出输入密码以及判断正误之后,这是它的升级版,输入密码正确之后的4个操作

题设要求:**** 欢迎光临 ****

                     请输入密码:

   失败:密码错误 请重新输入您还有2次机会(总共三次机会,逐次递减);

   成功:密码正确,显示新的操作界面;

 

    密码正确,请选择操作:1. 取款    2. 存款    3. 更改密码   4. 退出

     具体操作:

     2. 存款。 请输入存款金额:300;     存款成功,按任意键返回;

     3. 更改密码。  请输入原始密码:1234;  请输入新密码:5678;  密码更改成功 按任意键返回

     4. 退出。    退出程序

以下是具体代码,保姆式教学:

#include <stdio.h>

int main(int argc, const char * argv[]) {
//定义初始变量
    int password = 1234;
    int inputPswd = 0;
    int totalMoney = 2000;
    int time = 3;
    int choice = 0;
//提示用户操作
    printf("*******欢迎光临!*******\n");
    printf("请输入密码:\n");
    scanf("%d",&inputPswd);

    while (1) {
        if (inputPswd == password) {
            printf("密码正确,请选择操作:\n");
            printf("1. 取款\n2. 存款\n3. 更改密码\n4. 退出\n");
            scanf("%d",&choice);
            if (choice < 0 || choice > 4){       //确保输入的编号为合法编号,也就是1——4之间的数
                printf("请输入正确的编号!\n");
            }
            
        int cunkuan = 0;
        if (choice == 2) {              //存款选项
            printf("请输入存款金额:\n");
            scanf("%d",&cunkuan);
            totalMoney += cunkuan;         //等同于totalMoney = totalMoney + cunkuan
            printf("显示余额:%d\n",totalMoney);
            printf("存款成功,按任意键返回上一页\n");
            getchar();
            getchar();            //有scanf时要加两个get char();
        }

            if (choice == 3) {      //更改密码选项
                printf("请输入原始密码:\n");
                scanf("%d",&password);
                printf("请输入新密码:\n");
                scanf("%d",&inputPswd);
                printf("密码更改成功,按任意键返回上一页!\n");
                getchar();
                getchar();
            }

            if (choice == 4) {     //退出选项
                printf("退出\n");
                getchar();
            }

        }else {       // 输入密码错误时的操作
            time--;
            if (time == 0) {
                printf("次数已用完,结束此次操作.\n");
                break;
            }
            printf("密码错误,请重新输入密码,您还%d次机会\n",time);
            scanf("%d",&inputPswd);
            
        }
        
    }
    
    
    return 0;
}

 

这段代码除了可以用 if语句,还可以用 switch语句来实现。下面为这几个选择操作用switch写的一小段代码:

  //判断用户的选择
        //int char
        switch (choice){
            case 1:
                //取款
                break;

            case 2:
                //存款
                printf("请输入存款金额:");
                int money;
                scanf("%d", &money);
                totalMoney += money;
       printf("存款成功 余额:%d 按回车键返回:",totalMoney);
                getchar();
                getchar();
                break;

            case 3:
                //更改密码
                printf("请输入原始密码:");
                while (1) {
                    scanf("%d", &inputPwd); 
                 //比较密码是否正确
                    if (inputPwd == password) {
                        printf("请输入新密码:");
                        scanf("%d", &password);
                        printf("更改密码成功 按回车键返回");
                        getchar();
                        getchar();
                        break;
                    } else {
                        printf("输入密码错误 请重新输入:");
                    }
                }
                break;
            case 4:
                //退出
                exit(EXIT_SUCCESS);
                break;
            default:
                break;
        }

注意:switch语句中

  1.  case后面是冒号
  2. 每个case语句中一定要加break;
  3. 最好将switch语句中的数据类型变为 int型或者 char型;
if——else 语句与 switch语句的区别:
1. 两者本质的区别是 if-else语句更适合于对区间(范围)的判断,而switch语句更适合于对离散值的判断
2. 示例
    判断60到80之间的学生有哪些适合用if-else语句,因为[65,85]是区间;
    而判断一个学生的班级是一班、二班还是三班适合用switch语句,因为一班、二班、三班是离散值
3 扩展
    if-else语句可以替换所有的 switch语句(因为if-else语句只需对每个离散值分别做判断即可),
但switch语句不能用来替换 if——else语句(因为区间里值的个数是无限的并且switch所接受的值只能是整型或枚举型,
所以不能用case来一一列举)。

要是有不同意见欢迎私信或者评论指出,本人小白一只,接受诚心的批评指正,但不接受挑刺,谢谢!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值