typedef struct
{
char user[20];
char code[20];
}USER;
void write() /*用户信息写入*/
{
if((fp=fopen(pe.user,"w"))==NULL)
{
printf("\n\t\t文件打开失败");
}
if(fwrite(&pe,sizeof(USER),1,fp)!=1)
{
printf("\n\t\t写入文件错误");
}
fclose(fp);
}
void zhuce()
{
char temp[20],txt[100],cha;
int i=0;
do
{
printf("\t\t\t\t用户注册");
printf("\n\t\t1.直接注册 2.阅读用户手册");
cha=getch();
if(cha==2)
{
if((fp=fopen("使用说明.txt","r"))==NULL)
{
printf("\n\t\t打开失败");
exit(0);
}
fread(txt,2,20,fp);
printf("\n\t\t%s",txt);
/*txt=fgets(txt,100,fp);
printf("%s",txt);*/
}
printf("\n\t\t按任意键继续");
getch();
system("cls");
printf("\t\t\t\t用户注册");
printf("\n\t\t用户名:");
scanf("%s",pe.user);
printf("\n\t\t密 码:");
scanf("%s",pe.code);
printf("\n\t\t确认密码:");
scanf("%s",temp);
if(strcmp(pe.code,temp)!=0)
printf("\n\t\t两次密码不一致,请重新输入");
}while(strcmp(pe.code,temp)!=0);
fp=fopen(pe.user,"r");
if(fp==NULL)
{
fp=fopen(pe.user,"w");
if(fp==NULL)
{
printf("\n\t注册失败\n");
exit(0);
}
else {
system("cls");
printf("\n\t注册成功");
write();
judge = false;
denglu();
}
}
else
{
printf("\n\t该用户名已存在");
fclose(fp);
printf("\n\t继续注册?(Y/N)");
if(getch()==Y) return zhuce();
else return denglu();
}
}
void write(){
if(fwrite(&pe,sizeof(User),1,fp)!=1)
{
printf("\n\t\t写入文件错误"); exit(0); //写入错误则退出程序
}
}
void denglu()
{
char u[20],c[20],temp[20];
printf("\n\t\t\t\t用户登录");
printf("\n\t\t用户名:");
scanf("%s",u);
fp=fopen(u,"r+");
temp[0]=0;
if(fp==NULL)
{
printf("\n\t\t用户不存在,请注册");
printf("\n\t\t1.注册 2.重新登陆");
temp[0]=getch();
if(temp[0]==1)
{
system("cls");
zhuce();
}
else return denglu();
}
do
{
if(judge=true) fread(&pe,sizeof(USER),1,fp);
printf("\t\t密 码:");
scanf("%s",c);
if(strcmp(pe.code,c)!=0)
{
printf("\n\t\t密码错误(1.退出 2.重新输入)");
temp[0]=getch();
printf("\n");
if(temp[0]==1)
{
fclose(fp);
return main();
}
}
}while(temp[0]==2);
readfile();
getch();
caozuo();
}
展开阅读全文