主要实现功能:预设了一个登陆程序三次登陆失败,开始倒计时跟智能手机一样锁屏尝试解锁次数对应不同的锁屏时间,登陆成功进行猜数字游戏。
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include <windows.h>
#define TOP 100
#define USERNAME "小小明"
#define PASSWD "123456"
#define NUM 32
#pragma warning(disable:4996)
void Menu() {
printf("********************\n");
printf("****1.开始游戏******\n");
printf("****2.退出游戏******\n");
printf("********************\n");
}
void Game() {
int num = rand() % TOP + 1;//随机数种子模100 也就是0~99 再加1也就是1~100里面的数字
int x = 0;
while (1) {
printf("游戏开始请输入你猜的值-> ");
scanf("%d", &x);
if (x > num) {
printf("猜大了!\n");
}
else if (x < num) {
printf("猜小了!\n");
}
else {
printf("猜对了\n");
break;
}
}
}
void CutDown(int times) {//实现倒计时
while (times) {
printf("你的系统已经被锁住,剩余------>%2dS\r", times);
times--;
Sleep(1000);
}
printf("\n");
}
void Lock(int a) {
switch (a) {
case 1:
CutDown(30);
break;
case 2:
CutDown(60);
break;
case 3:
CutDown(120);
break;
default:
break;
}
}
int Login() {
int count = 3;
int lock_count = 0;
char name[NUM];
char pswd[NUM];
do {
name[0] = '\0';
pswd[0] = '\0';
printf("请输入用户名-> ");
scanf("%s", name);
printf("请输入你的密码->");
scanf("%s", pswd);
if (0 == strcmp(name, USERNAME) && 0 == strcmp(pswd, PASSWD)) {
return 1;
}
count--;
if (count <= 0) {
lock_count++;
Lock(lock_count);
count = 3;
}
else {
printf("认证失败,你还有%d次机会!\n", count);
}
} while (1);
return 0;
}
int main()
{
int a = Login();
if (a) {
printf("你好呀 %s !\n", USERNAME);
}
int choice = 0;
int flag = 0;
Menu();
printf("请用户输入选择->");
MyThis:
scanf("%d", &choice);
while (!flag) {
switch (choice) {
case 1:
Game();
flag = 1;
break;
case 2:
flag = 1;
break;
default:
printf("输入非法!重新选择!\n");
goto MyThis;
}
}
printf("再见");
return 0;
}