#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct log
{
char name[10];
char key[10];
struct log * next;
};
int main()
{
int m,n=1;
FILE * pf;
struct log * head=NULL, * p=NULL,* tail=NULL,* pMove=NULL;
char i[10],j[10];
while(n!=0)
{
printf("-------学籍信息管理系统-教师端------\n");
printf("-------------1.注册-----------------\n");
printf("-------------2.登录-----------------\n");
scanf("%d",&m);
if(m==1)
{
printf("请新建用户名:");
scanf("%s",i);
if ((pf = fopen("m.txt", "r")) == NULL)
{
pf = fopen("m.txt", "w");
}
while(1)
{
if (fscanf(pf,"%s%s\n",i,j) != 2) break;
p = (struct log*)malloc(sizeof(struct log));
p->next = NULL;
strcpy(p->name,i);strcpy(p->key,j);
if (head == NULL)
head = p;
else
tail->next = p;
tail = p;
}
fclose(pf);
pMove=head;
while(pMove!=NULL&&strcmp(pMove->name,i))
{
pMove=pMove->next;
}
if(pMove==NULL)
{
printf("设 置 密 码:");
scanf("%s",j);
if ((pf=fopen("m.txt","a"))==NULL)
{
printf("文件打开失败!");
return;
}
printf("注册成功!\n");
fprintf(pf,"%s %s",i,j);
fclose(pf);
}
else if(strcmp(pMove->name,i)==0)
{
printf("该用户名已经被注册,请重新注册!\n");return;
}
else
{
printf("设 置 密 码:");
scanf("%s",j);
if ((pf=fopen("m.txt","a"))==NULL)
{
printf("文件打开失败!");
return;
}
fprintf(pf,"%s %s",i,j);
fclose(pf);
}
}
else if(m==2)
{
printf("用户名:");
scanf("%s",i);
if ((pf = fopen("m.txt", "r")) == NULL)
{
printf("文件打开失败!");return;
}
while(1)
{
if (fscanf(pf,"%s%s\n",i,j) != 2) break;
p = (struct log*)malloc(sizeof(struct log));
p->next = NULL;
strcpy(p->name,i);strcpy(p->key,j);
if (head == NULL)
head = p;
else
tail->next = p;
tail = p;
}
fclose(pf);
pMove=head;
while(pMove!=NULL&&strcmp(pMove->name,i))
{
pMove=pMove->next;
}
if(pMove!=NULL)
{
printf("密 码:");
scanf("%s",j);
pMove=head;
while(pMove!=NULL&&strcmp(pMove->key,j))
{
pMove=pMove->next;
}
printf("登录成功!\n");
}
else
printf("用户名不存在!\n");
}
else
printf("输入错误!请重新输入!\n");
}
}