#include "stdio.h"
#include "user.h"
//系统登陆界面
void main()
{
FILE * fp=NULL;
user Show;
user TempS;
char DataFile[10]="yonghu";//存储家庭成员信息的文件名
int i;
char relogin; //是否重新登录
int success=0; //登录成功的标志
//////////////////////////////////////////////////////////////////////////////////
fp=fopen(DataFile,"r");
if(fp==NULL)//如果当前文件不存在,初始化根用户名为boot,密码为111,权限为管理员
{
printf("this the first time you use the system!\n");
printf("user name is:boot password:111\n");
fp=fopen(DataFile,"a");//以追加方式打开文件
TempS.Number=0;
strcpy(TempS.Name,"boot");
TempS.power=1;
strcpy(TempS.ps,"111");
fwrite(&TempS,sizeof(user),1,fp);
fclose(fp);
}
else
fclose(fp);
///////////////////////////////////////////////////////////////////////////////////
printf("#===================================================#\n");
printf("# Welcome to the Family Management System #\n");
printf("#===================================================#\n");
again:
printf("Please enter the user name:");
scanf("%s",TempS.Name);//输入用户名
TempS.Name[19]='\0';
printf("Please enter the password:");
fflush(stdin);
//输入密码
for(i=0;i<7;i++)
{
TempS.ps[i]=getch();
TempS.ps[i+1]='\0';//字符要以'\0'结尾
if(TempS.ps[i]=='\b')
{
i--;
TempS.ps[i]='\0';//清除前一个字会
i--;//接收前一个字符
printf("\b ");
printf("\b");
continue;
}
if(TempS.ps[i]=='\r')
{
TempS.ps[i]='\0';
break;
}
printf("*");
}
///////////////////////////////////////////////////////////////////////////////
fp=fopen(DataFile,"rt");
if(fp==NULL) // 打开文件失败时提示
{
printf("\nOpen file %s fail!End with any key\n",DataFile);
perror("Open file fail");
getch();
return;
}
//读取用户信息与输入信息比较
while(fread(&Show,sizeof(user),1,fp)!=(int)NULL)
{
if(strcmp(TempS.Name,Show.Name)==0&&strcmp(TempS.ps,Show.ps)==0)
{
printf("\nlogin successful!\n");
success=1;
break;
}
}
fclose(fp);
if(success==1) //登录成功
{
if(Show.power==1)
{
Admin(Show);//家长(管理员)功能的界面
}
else
{
Guest(Show);//普通用户功能界面
}
}
//未登录成功
else
{
fflush(stdin);//清楚输入缓冲区中的字符
printf("\nError user name or password!input again(y/n):");
relogin=getchar();
if(relogin=='y'||relogin=='Y')
{
goto again;
}
else
{
printf("End program!\n");
getch();
exit(0);
}
}
}