c语言实现注册登陆功能(两个模块)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
typedef struct
{
char user[20];
char code[20];
}USER;
void write() /*用户信息写入*/
{
if((fp=fopen(er,"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",er);
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(er,"r");
if(fp==NULL)
{
fp=fopen(er,"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();
}