C语言求救!!!

编写登录程序,用户的名称和密码存放在一文件中,用户登录时输入名称和密码,由系统自动检查是否存在此用户、密码是否正确,若名称和密码均正确,则登录成功,若不正确,可以提供三次修改机会。要求:1. 为了进行登录,还要编写注册程序(输入管理员密码,正确则允许管理员增加新用户,错误则提供三次修改机会);2. 密码必须使用掩码形式。
用C语言编写......各路大侠们救救小弟吧

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

int flag;
char log[105],admin[105]={"123456"};
void print()
{
system("cls");
puts("1.Login(L)");
puts("2.Register(R)");
puts("3.Exit(E)");
if(flag)
printf("Logined User:%s\n",log);
}
void password(char pass[])
{
getchar();
char t[105],c;
int i=0;
while(1)
{
c=getch();
if(c==13)
{
t[i]=0;
strcpy(pass,t);
puts("");
return;
}
if(c==8&&i>0)
{
t[i--]=0;
putchar(c);
putchar(' ');
putchar(c);
continue;
}
if(c>=32&&c<=126)
{
t[i++]=c;
putchar('*');
}
}
}
int login()
{
char user[105],pass[105],ut[105],pt[105];
int n=0;
while(1)
{
int f=0;
FILE *in=fopen("recoder.dat","rb");
printf("User Name:");
scanf("%s",user);
printf("Password:");
password(pass);
while(!feof(in))
{
fscanf(in,"%s%s",ut,pt);
if(!strcmp(user,ut))
f=1;
if(f&&!strcmp(pass,pt))
{
fclose(in);
strcpy(log,user);
return 1;
}
else if(f)
break;
}
if(f)
puts("Wrong Password!");
else
puts("No User");
n++;
if(n>3)
{
fclose(in);
return 0;
}
}
return 0;
}
void Register()
{
int n=0;
char user[105],pass[105];
while(1)
{
printf("Admin Password:");
password(pass);
if(!strcmp(pass,admin))
break;
n++;
puts("Wrong Password!");
if(n>3)
return;
}
FILE *out=fopen("recoder.dat","ab");
printf("User Name:");
scanf("%s",user);
fprintf(out,"%s ",user);
printf("Password:");
scanf("%s",pass);
fprintf(out,"%s ",pass);
puts("sucess");
fclose(out);
}
int main()
{
while(1)
{
char op[2];
print();
scanf("%s",op);
if(op[0]=='1'||op[0]=='l'||op[0]=='L')
{
if(login())
{
puts("sucess");
flag=1;
}
}
if(op[0]=='2'||op[0]=='r'||op[0]=='R')
{
Register();
}
if(op[0]=='3'||op[0]=='e'||op[0]=='E')
return 0;
}
}
//管理员密码是123456
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

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