#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:;
}
}
原题: