c语言实现-密码锁(功能:关闭密码锁,开启密码锁,修改密码,保存系统,加密操作)

#include <stdio.h>
#include <string.h>
void binary(int a) {
    int cacul[20];
    int i=0;
    int j=0;
    int units = a%16;
    int tens = a/16;
    for (i = 0; (tens/2) != 0; i++) {
        cacul[ i ] = tens % 2;
        tens = tens/2;
    }
    cacul [ i ] = tens % 2;
    i++;
//判断不够四位左边补齐0形成四位
    for (i = i; (i % 4) != 0; i++) {
        cacul [ i ]= 0;
    }
    for (i--,j = 0; i >= 0; i--,j++) {    //要达到number[0]故进入和结束都要i--
        printf ("%d",cacul[ i ]);           //逆序输出以达到二进制
    }
    i=0;
    j=0;
    for (i = 0; (units/2) != 0; i++) {
        cacul[ i ] = units % 2;
        units = units/2;
    }
    cacul [ i ] = units % 2;
    i++;
//判断不够四位左边补齐0形成四位
    for (i = i; (i % 4) != 0; i++) {
        cacul [ i ]=0;
    }
    for (i--,j = 0; i >= 0; i--,j++) {    //要达到number[0]故进入和结束都要i--
        printf ("%d",cacul[ i ]);           //逆序输出以达到二进制
    }
}
int main() {
    int enter = 0;
    int password = 123456;
    int code = password;
    while(1) {
        if(enter==-1) {
            printf("由于关闭了密码锁现在进入界面系统\n");
            goto out;
        } else if(enter!=-1) {
            int n = 0;
            int cnt = 2;
            printf("-------------请输入密码-------------\n");            //进入系统输入密码程序
            while(cnt>-1) {
                printf("密码:");
                scanf("%d",&n);
                if(n==password) {
                    printf("密码正确!您已进入系统界面\n");
                    break;
                } else {
                    if(cnt==0) {
                        printf("密码错误!您的账号已冻结!");
                        return 0;
                    }
                    printf("密码错误!请重新输入,你还有%d次机会\n",cnt);
                    cnt--;
                }
            }
        }
out:
        ;
        printf("----------密码系统界面-------\n");                     //设置界面
        printf("------------1.设置------------\n");
        printf("请输入对应的菜单\n");
        int a=0;
        while(1) {
            scanf("%d",&a);
            if(a==1) {
                break;
            } else {
                printf("输入有误,再试一遍\n");
            }
        }
        while(1) {
            printf("----------------设置界面---------------\n");
            printf("-------------1.关闭密码锁--------------\n");
            printf("-------------2.开启密码锁--------------\n");
            printf("-------------3.修改密码----------------\n");
            printf("-------------4.保存并重启系统----------\n");
            printf("-------------5.查看加密操作后的密码----\n");
            printf("请输入对应的菜单\n");
            int type;
            scanf("%d",&type);
            int cnt = 2;
            int n = 0;
            switch(type) {
                case 1:
                    printf("----------关闭密码锁------------\n");
                    enter = -1;
                    printf("关闭密码锁设置成功\n");
                    printf("自动跳回设置界面\n\n");
                    break;
                case 2:
                    printf("----------2.开启密码锁------------\n");
                    enter = 0;
                    printf("开启密码锁成功\n");
                    printf("自动跳回设置界面\n\n");
                    break;
                case 3:
                    printf("----------3.修改密码--------------\n");
                    printf("----------请输入原密码--------\n");
                    while(cnt>-1) {
                        printf("原密码:");
                        scanf("%d",&n);
                        if(n==password) {
                            printf("密码正确!现在你可以修改密码了!\n");
                            scanf("%d",&password);
                            code = password;
                            printf("密码修改成功,现在跳回设置界面\n");
                            break;
                        } else {
                            if(cnt==0) {
                                printf("密码错误!现在跳回设置界面\n");
                                break;
                            }
                            printf("密码错误!请重新输入,你还有%d次机会\n",cnt);
                            cnt--;
                        }
                    }
                    break;
                case 4:
                    printf("----------保存并重启系统--------\n");
                    printf("保存并重启成功!现在跳回初始界面---\n");
                    goto end;
                    break;
                case 5:
                    printf("----------查看加密操作后的密码--------\n");
                    printf("以下是加密后的密码:");
                    int i=0;
                    int number[20];
                    char str[20];                                               //编码
                    sprintf(str,"%d",code);
                    int len = strlen(str);
                    for(i=0;i<len; i++) {
                        number[i] = str[i]+5;
                    }
                    i=0;
                    printf("\n");
                    for(i=0;i<len; i++) {
                        binary(number[i]);
                    }
                    printf("\n");
                    break;

            }
        }
end:;
    }
}

原题:96ec2fc5423945daab44e5301a57610d.jpg

 

 

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值