c语言写登录界面 账号密码登录错误三次 管理员登录 员工登录两个

如题所述

输入2,回车

输入账密,回车,再回车回到主界面

输入1,回车

错误测试,回车

正确测试,回车

接下来连续错误测试,再登入的时候

代码:

#include<stdio.h>
#include <stdlib.h>

#define MAXL 100
#define MAX_ERROR_TIME 3

int errorTime = 0;

int getLen(char s[]) {
int l = 0;
for (l = 0; s[l] != '\0'; l++);
return l;
}

void spaceRow() {
printf("|");
for (int i = 2; i < MAXL; ++i)printf(" ");
printf("|\n");
}

void borderRow() {
for (int i = 0; i < MAXL; ++i)printf("-");
printf("\n");
}

void fill(int row) {
if (row < 4) {
for (int i = 0; i <= (5 - row) >>1; ++i)
spaceRow();
}
else  spaceRow();
}

void show(char* s[],int row) {
borderRow();
fill(row);

for (int i = 0; i < row; ++i) {
int len = getLen(s[i]), mid = (MAXL - len) >> 2;
printf("|");
for (int j = 1; j < mid; ++j)printf(" ");
printf("%s", s[i]);
for (int j = 0; j < MAXL - mid - len - 1; ++j)printf(" ");
printf("|\n");
}

fill(row);
borderRow();
}

int cmp(char a[], char b[]) {
for (int i = 0; a[i] != '\0'&&b[i] != '\0'; i++)
if (a[i] != b[i])return 0;
return 1;
}

void Index() {
char* a[3];
a[0] = "1.登录   ";
a[1] = "2.注册   ";
a[2] = "3.退出   ";
show(a, 3);
}

bool log() {
system("cls");
if (errorTime >= MAX_ERROR_TIME) {
printf("错误次数达到3次,无法登入\n");
return 0;
}
printf("请输入账号:");
char user[1024], psw[1024], uc[1024], pc[1024];
scanf("%s", user);
printf("请输入密码:");
scanf("%s", psw);

FILE* u = fopen("UserName.txt", "r");
FILE* p = fopen("PassWord.txt", "r");

while (fgets(uc, 1024, u)) {
fgets(pc, 1024, p);
if (cmp(uc, user) && cmp(psw, pc)) { fclose(u); fclose(p); return 1;}
if (feof(u))break;
}
fclose(u);
fclose(p);
return 0;
}

bool reg() {
system("cls");
char str[1024];
printf("请输入账号(为-1则退出注册):");
scanf("%s", str);
if (str[0] == '-' && str[1] == '1' &&str[2] == '\0')return false;
FILE* fp = fopen("UserName.txt", "a+");
fputs(str, fp);
fputs("\n", fp);
fclose(fp);
printf("请输入密码:");
scanf("%s", str);
fp = fopen("PassWord.txt", "a+");
fputs(str, fp);
fputs("\n", fp);
fclose(fp);
return true;
}

int main() {
int s, flag = 1;
Index();
while (flag && scanf("%d", &s)) {
switch (s) {
case 1:if (log())printf("登录成功\n");
   else { printf("登录失败\n"); errorTime++; }
   break;
case 2:
if (reg()) printf("注册成功\n");
else printf("取消注册\n");
break;
case 3:flag = 0; break;
}
printf("按任意键继续\n");
getchar();
getchar();
system("cls");
Index();
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-18
不是自己的就别看追问

我问得是这代码该怎么写

第2个回答  2018-12-18
😳
第3个回答  2018-12-18
不是你的东西,就不要看
第4个回答  2018-12-18
jjhxgjbfjjcxdhjvxgjbxfyjc#ib

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网