当前位置:文档之家› 用c语言写的简易注册登录系统(大一期末作品)

用c语言写的简易注册登录系统(大一期末作品)

//用c语言写的简易注册登录系统(大一期末作品)

#include
#include
#include
#include

struct nap
{
char user[128];
char key[128];
};
struct nap change[128];

typedef int JUDGE;
typedef int LOOP;

int main()
{
int reg(void);
int landing(void);
char number;
do
{
printf("\n1.Register\https://www.doczj.com/doc/1011858825.html,nding\nPlease choose the number(1 or 2):");
fflush(stdin);
scanf("%c",&number);
}while(number!='1'&&number!='2');
switch (number)
{
case '1':
reg(); break;
case '2':
landing();

}
system("pause");
return 0;
}

int reg(void)
{
int compare(char *,char *);
int increase(void);
void putIn(char *);

JUDGE turn,n=0;
char filePassword[9]={"12348888"},password[128];
char * p=password;

do
{
printf("\nPlease enter the administrator password:");
fflush(stdin);
putIn(p);
turn=compare(password,filePassword);
n++;
if(turn==0&&n<=3)
{
printf("\nWrong password!\nPlease enter again!\n");
}
else if(n>3)
{
printf("\nYou entered too many times!\n");
return 0;
}
}while(turn==0);

increase();
}


int compare(char * p,char * q)
{
while(*p!='\0'&&*q!='\0')
{
if(*p!=*q)
{
return 0;
}
else
{
p++;
q++;
}
}
if(*p==*q)
{
return 1;
}
return 0;
}

int increase(void)
{
void putIn(char *);
int catch(JUDGE);
int userLoopCompare(char *,int * h);

JUDGE i,n=0,m=0,j=1,h=0;
FILE * fp;

char tem[128],compar[128],*q=compar,* p=tem;
do
{

do
{
printf("\nPlease enter the user name:");
gets(p);
n++;
if(*p=='\0'&&n<=3)
{
printf("\nYou did not enter the user name,please enter again!\n");
}
else if(n>3)
{
printf("\nYou entered too many times!\n");
return 0;
}
}while(*p=='\0');

m=0;
p=p+strlen(tem);
*p='\n';
p++;
*p='\0';
p=tem;
catch(j);
i=userLoopCompare(p,&h);
m++;
if(i==0&&m<=3)
{
printf("\nThe user name has been registered!\nPlease enter again!\n");
}
else if(m>3)
{
printf("\nYou entered too many times!\n");
return 0;
}
}while(i==0);

p=p+strlen(tem);
if(*(p-2)=='\n')
{
p--;
}
n=0;

do
{
m=0;

do
{
m++;
printf("\nPlease enter the password:");
putIn(p);
if(*p=='\0'&&m<=3)
{
printf("\nYou did not enter the password!\nPlease enter again!\n");
}
else if(m>3)
{
printf("\nYou entered too many times!\n");
return 0;
}
}while(*p=='\0');

printf("\nPlease enter the password again:");
putIn(q);
i=compare(p,q);
if(i==1)
{
p=tem;
}
else
{
n++;
if(n<=3)
{
printf("\

nPasswords do not match!\nPlease enter again!\n");
}
else if(n>3)
{
printf("\nYou entered more times!\n");
return 0;
}
}
}while(p!=tem);

fp=fopen("d:\\nandp.txt","a+t");
fputs(tem,fp);
fputc('\n',fp);
fclose(fp);
printf("\nYou have registered it!\n");
}


int landing(void)
{
void putIn(char *);
int userLoopCompare(char *,int *);
int keyLoopCompare(char *,int);
int catch(int);

char all[128],* p=all,*q;
JUDGE i,j=2,h=0;
JUDGE turn,recieve=1,m=0;

i=catch(j);
if(i==0)
{
return 0;
}

do
{
p=all;
printf("\nPlease enter the user name:");
fflush(stdin);
gets(p);
p=p+strlen(all);
*p='\n';
q=++p;
turn=userLoopCompare(all,&h);
p=q;
m++;
printf("\nPlease enter the password:");
putIn(p);
p=all;
p=p+strlen(all);
*p='\n';
recieve=keyLoopCompare(q,h);
if(recieve==1&&m<=3)
{
printf("\nIt is unavailable!\nPlease enter again!\n");
}
else if(m>3)
{
printf("\nYou entered too many times!\n");
return 0;
}
if(turn==0&&recieve==0)
{
break;
}
}while(recieve==1);

printf("\nWelcome to our space,you have signed in!\n");
}


int catch(JUDGE j)
{
LOOP n;
FILE * fp;

if(j==2)
{
if((fp=fopen("d:\\nandp.txt","rt"))==NULL)
{
printf("\nThere is no one regist it!\n");
system("pause");
return 0;
}
}

else if(j==1)
{
fp=fopen("d:\\nandp.txt","rt");
}

for(n=0;n<128;n++)
{
fgets(&change[n].user[0],128,fp);
fgets(&change[n].key[0],128,fp);
}

fclose(fp);
return 1;
}


int userLoopCompare(char * q,int * h)
{
LOOP i=0,m=0;
char * t=q;

for(m=0;m<128;m++)
{
for(i=0;i<128;i++)
{
if(*q==change[m].user[i])
{
if(*q=='\n'&&change[m].user[i]=='\n')
{
*h=m;
return 0;
}
else
{
q++;
continue;
}
}
else
{
q=t;
break;
}
}
}
return 1;
}

int keyLoopCompare(char * q,int h)
{
LOOP i=0;
char * t=q;

for(i=0;i<128;i++)
{
if(*q==change[h].key[i])
{
if(*q=='\n'&&change[h].key[i]=='\n')
{
return 0;
}
else
{
q++;
continue;
}
}
else
{
q=t;
break;
}
}
return 1;
}



void putIn(char * p)
{
JUDGE i=0,m=0;

while(*p!='\r')
{

if(i!=0)
{
p++;
}
*p=getch();
if(*p!='\r'&&*p!='\b')
{
printf("*");
}

i++;
if(*p=='\b')
{
if(m>0)
{
putch(8);
putch(' ');
putch(8);
p--;
m--;
}
i=0;
}
else
{
m++;
}
}
*p='\0';
}


相关主题
文本预览
相关文档 最新文档