//定义函数头文件
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
//定义全局变量
int n=0,h,k;
//建立game文件
FILE *fp;
//定义结构体数组
struct game
{
char gamename[20];//昵称
char realname[20];//真实姓名
char qq[12];//游戏账号就是qq账号
char qqemail[20];//qq邮箱
char sex[8];//性别
char mm[20];//密码(mm是密码的缩写)
char amm[20];//确认密码(a是affirm的缩写)
char nation[20];//国籍
char id[20];//ID
char phone[12]; //手机
}user[1000000];//最多可以注册100万个玩家
//按0进入帮助界面
void help()
{
system("cls");
system("color g");
system("cls");
system("color 1c");
char a;
printf("\n\t\t欢迎使用辉志鹏游戏注册系统帮助;");
printf("\n\t\t按照菜单提示键输入数字代号;");
printf("\n\t\t增加学生信息后,切记保存按4;");
printf("\n\t\t修改时请先读入文件;");
printf("\n\t\t谢谢您的使用!");
printf("按任意键返回主菜单:");
system("pause");
scanf("%c",&a);
return;
}
//按1注册
void regist() //每次只能注册一次
{ //当再次注册时qq账号一样就不能保存成功
system("cls");
system("color 2b");
int i=n,q=0,j,l=0,m,p; //l用与判断,m,j用于选择
char a,man[4]={‘m‘,‘a‘,‘n‘,‘\0‘},woman[7]={‘w‘,‘o‘,‘m‘,‘a‘,‘n‘,‘\0‘};
loop1: //i,k,p用来记录玩家数目
printf("\n\n");
if(q==0)
{
sex0:
printf("请输入性别(man或woman):");
scanf("%s",user[i].sex);
if(strcmp(user[i].sex,man)!=0&&strcmp(user[i].sex,woman)!=0)
{
printf("输入有误请再次输入:\n");
goto sex0;
}
gamename0:
printf("请输入玩家姓名:");
scanf("%s",user[i].gamename);
if(strlen(user[i].gamename)>20)
{
printf("输入有误请再次输入:\n");
goto gamename0;
}
for(p=0;p<=i-1;p++)
{
if(strcmp(user[i].gamename,user[p].gamename)==0)
{
printf("该昵称已经存在,请再次输入:\n");
goto gamename0;
}
}
realname0:
printf("请输入真实姓名:");
scanf("%s",user[i].realname);
if(strlen(user[i].realname)>20)
{
printf("输入有误请再次输入:\n");
goto realname0;
}
for(p=0;p<=i-1;p++)
{
if(strcmp(user[i].realname,user[p].realname)==0)
{
printf("该姓名已经存在,请再次输入:\n");
goto realname0;
}
}
qq0:
printf("请输入账号:");
scanf("%s",user[i].qq);
if(strlen(user[i].qq)>12||strlen(user[i].qq)<6)
{
printf("输入有误请再次输入:\n");
goto qq0;
}
for(j=0;j<strlen(user[i].qq);j++)
{
if(user[i].qq[j]-‘0‘<=9&&user[i].qq[j]-‘0‘>=0)
l=0;
else
{
l++;break;
}
}
if(l!=0)
{
l=0;
printf("输入有误请再次输入:\n");
goto qq0;
}
for(p=0;p<=i-1;p++)
{
if(strcmp(user[i].qq,user[p].qq)==0)
{
printf("该账号已被注册,请再次输入:\n");
goto qq0;
}
}
mm0:
printf("请输入密码:");
scanf("%s",user[i].mm);
if(strlen(user[i].mm)>20)
{
printf("输入有误请再次输入:\n");
goto mm0;
}
amm0:
printf("确认密码:");
scanf("%s",user[i].amm);
if(strlen(user[i].amm)>20)
{
printf("输入有误请再次输入:\n");
goto amm0;
}
if(strcmp(user[i].amm,user[i].mm)!=0)
{
printf("两次输入的密码不一致,请再次输入:\n");
goto amm0;
}
qqemail0:
char mail[12];
printf("请输入qq邮箱:");
scanf("%s",user[i].qqemail);//757395100 2636706907 1007849784
int z=strlen(user[i].qqemail);
if(z<=20||z>=13)
{
for(j=0;j<z-7;j++)
{
if((user[i].qqemail[j]-‘0‘)<=9&&(user[i].qqemail-‘0‘)>=0)
l=0;
else
{
l++;break;
}
mail[j]=user[i].qqemail[j];
}
j=z-7;
if(user[i].qqemail[j++]!=‘@‘)
l++;
if(user[i].qqemail[j++]!=‘q‘)
l++;
if(user[i].qqemail[j++]!=‘q‘)
l++;
if(user[i].qqemail[j++]!=‘.‘)
l++;
if(user[i].qqemail[j++]!=‘c‘)
l++;
if(user[i].qqemail[j++]!=‘o‘)
l++;
if(user[i].qqemail[j]!=‘m‘)
l++;
}
if(strcmp(mail,user[i].qq)!=0)
l++;
if(l!=0)
{
printf("输入有误请再次输入:\n");
goto qqemail0;
}
for(p=0;p<=i-1;p++)
{
if(strcmp(user[i].qqemail,user[p].qqemail)==0)
{
printf("该邮箱已被注册,请再次输入:\n");
goto qqemail0;
}
}
phone0:
printf("请输入您的手机号码:");
scanf("%s",user[i].phone);
if(strlen(user[i].phone)!=11)
{
printf("输入有误请再次输入:\n");
goto phone0;
}
for(j=0;j<strlen(user[i].phone);j++)
{
if(user[i].phone[j]-‘0‘>=0&&user[i].phone[j]-‘0‘<=9)
l=0;
else
{
l++;break;
}
}
if(l!=0)
{
l=0;
printf("输入有误请再次输入:\n");
goto phone0;
}
id0:
printf("请输入ID:");
scanf("%s",user[i].id);
if(strlen(user[i].id)!=18)
{
printf("输入有误请再次输入:\n");
goto id0;
}
int v=strlen(user[i].id)-1;
for(j=0;j<v;j++)
{
if((user[i].id[j]-‘0‘)>=0&&(user[i].id[j]-‘0‘)<=9)
l=0;
else
{
l++;break;
}
}
if(l!=0)
{
l=0;
printf("输入有误请再次输入:\n");
goto id0;
}
for(p=0;p<=i-1;p++)
{
if(strcmp(user[i].id,user[p].id)==0)
{
printf("该ID已经存在,请再次输入:\n");
goto id0;
}
}
nation0:
printf("请输入国籍:");
scanf("%s",user[i].nation);
if(strlen(user[i].nation)>20)
{
printf("输入有误请再次输入:\n");
goto nation0;
}
i++; //每注册一次就加一次
}
n=i; //注册一次就记录总数一次
if(n+1>1000000)
{
q=1;
printf("人数已达上限!以后不能再注册!");
}
else
{
q=0;
printf("注册成功!\n");
}
select0:
printf("是否继续注册?1-是;2-否\n");
printf("请输入你的选择:");
scanf("%d",&m);
if(m==1)
goto loop1;
else if(m==2)
{
printf("\n\t\t按任意键返回主菜单.");
scanf("%c",&a);
return; //结束函数返回主菜单
}
else
{
printf("输入有误请再次输入:\n");
goto select0;
}
}
//按2修改密码
void revicemm()
{
system("cls");
system("color 3c");
printf("\n\n");
int i,k,l=0;
char mm[20],qq[12],a;
qq1:
printf("请输入你的账号:");
scanf("%s",qq);
for(i=0;i<n;i++)
{
if(strcmp(qq,user[i].qq)==0)
{
l++;h=i;break;
}
else
l=0;
}
if(l==0)
{
printf("该账号不存在,请再次输入:\n");
goto qq1;
}
mm1:
printf("请输入原密码:");
scanf("%s",mm);
if(strcmp(mm,user[h].mm)!=0)
{
printf("密码不正确,请再次输入:\n");
goto mm1;
}
mm2:
printf("请输入新密码:");
scanf("%s",user[h].mm);
if(strcmp(user[h].mm,mm)==0)
{
printf("新密码不能与旧密码相同!\n");
goto mm2;
}
else
{
strcpy(user[h].amm,user[h].mm);
printf("\n\t\t修改密码成功!");
}
select1:
printf("是否继续修改密码?1-是;2否\n");
printf("请输入你的选择:");
scanf("%d",&k);
if(k==1)
goto qq1;
else if(k==2)
{
printf("\n\t\t按任意键返回主菜单.");
scanf("%c",&a);
system("pause");
system("cls");
return;
}
else
{
printf("输入有误请再次输入:\n");
goto select1;
}
}
//封号次级调用函数
void remove()
{
int j; //后面往前面覆盖
for(j=h;j<n-1;j++)
user[j]=user[j+1];
n--;//是删除一次减一次总数
}
//按3键封号
void deleteone()
{
system("cls");
system("color 4b");
printf("\n\n");
int i,j,k,l=0;
char a,realname[20],gamename[20],id[20],qq[12];
select1:
printf("1-按姓名删除\n");
printf("2-按游戏昵称删除\n");
printf("3-按ID删除\n");
printf("4-按QQ号删除\n");
printf("5-退出本菜单\n");
printf("请输入你的选择:");
scanf("%d",&j);
switch(j)
{
case 1:
realname1:
printf("请输入姓名:");
scanf("%s",realname);
for(i=0;i<n;i++)
{
if(strcmp(realname,user[i].realname)==0)
{
h=i;l++;break;
}
else
l=0;
}
if(l==0)
{
printf("该姓名不存在,请再次输入:\n");
goto realname1;
}
else
remove();
break;
case 2:
gamename1:
printf("请输入昵称:");
scanf("%s",gamename);
for(i=0;i<n;i++)
{
if(strcmp(gamename,user[i].gamename)==0)
{
h=i;l++;break;
}
else
l++;
}
if(l==0)
{
printf("改昵称不存在,请再次输入:\n");
goto gamename1;
}
else
remove();
break;
case 3:
id1:
printf("请输入ID:");
scanf("%s",id);
for(i=0;i<n;i++)
{
if(strcmp(id,user[i].id)==0)
{
l++;h=i;break;
}
else
l=0;
}
if(l==0)
{
printf("该ID不存在,请再次输入:\n");
goto id1;
}
else
remove();
break;
case 4:
qq2:
printf("请输入QQ号:");
scanf("%s",qq);
for(i=0;i<n;i++)
{
if(strcmp(qq,user[i].qq)==0)
{
l++;h=i;break;
}
else
l=0;
}
if(l==0)
{
printf("该QQ号不存在,请再次输入:\n");
goto qq2;
}
else
remove();
break;
case 5:
return;
default:
printf("选择有误请再次输入:\n");
goto select1;
}
printf("\n\t\t账号已封锁成功!");
select2:
printf("是否继续封锁个人信息?1-是;2-否\n");
printf("请输入你的选择:");
scanf("%d",&k);
if(k==1)
goto select1;
else if(k==2)
{
printf("\n\t\t按任意键返回主菜单.");
scanf("%c",&a);
return;
}
else
{
printf("你的输入有误,请再次输入:\n");
goto select2;
}
}
//按4键保存
void save()
{
system("cls");
system("color 5f");
int i;
FILE *fp;
fp=fopen("game.txt","wb"); //写入
for(i=0;i<n;i++)
{
if(fwrite(&user[i],sizeof(struct game),1,fp)!=1)
printf("\n\t\t写入文件错误!");
}
fclose(fp);
printf("\n\n\t\t\n保存成功!");
system("pause");
system("cls");
}
//修改次级函数
void change()
{
system("cls");
system("color 6e");
int i,a;
printf("\n\t\t 该游戏玩家的信息如下 ");
printf("\n\t\t************************************");
printf("\n\t\t** 游戏昵称:%s",user[h].gamename);
printf("\n\t\t** 真实姓名:%s",user[h].realname);
printf("\n\t\t** QQ号码:%s",user[h].qq);
printf("\n\t\t** 邮箱:%s",user[h].qqemail);
printf("\n\t\t** 性别:%s",user[h].sex);
printf("\n\t\t** 国籍:%s",user[h].nation);
printf("\n\t\t** ID:%s",user[h].id);
printf("\n\t\t** 手机号:%s",user[h].phone);
printf("\n\t\t************************************");
printf("\n请输入新的信息:");
system("pause");
printf("\n\t\t1-修改昵称");
printf("\n\t\t2-修改姓名");
printf("\n\t\t3-修改性别");
printf("\n\t\t4-修改国籍");
printf("\n\t\t5-修改ID");
printf("\n\t\t6-修改电话");
printf("\n\t\t7-退出该菜单");
revice:
printf("\n\t\t请选择:");
scanf("%d",&a);
switch(a)
{
case 1:
printf("\n请输入新的昵称:");
scanf("%s",user[h].gamename);
break;
case 2:
printf("请输入新的姓名:");
scanf("%d",&user[h].realname);
break;
case 3:
printf("请输入新的性别:");
scanf("%s",user[h].sex);
break;
case 4:
printf("请输入新的国籍:");
scanf("%s",user[h].nation);
break;
case 5:
printf("请输入新的ID:");
scanf("%s",user[h].id);
break;
case 6:
printf("请输入新的电话号码:");
scanf("%s",user[h].phone);
break;
case 7:return;
default:
printf("请在1-7之间选择\n");
goto revice;
}
printf("个人信息修改成功!\n");
}
//按5键修改个人信息
void revice()
{
system("cls");
system("color 8c");
printf("\n\n");
int i,j,k,l=0;
char a,realname[20],gamename[20],id[20],qq[12],phone[11];
select3:
printf("1-按姓名修改\n");
printf("2-按昵称修改\n");
printf("3-按ID修改\n");
printf("4-按QQ修改\n");
printf("5-按电话修改\n");
printf("6-退出本菜单\n");
printf("请输入你的选择:");
scanf("%d",&j);
switch(j)
{
case 1:
realname2:
printf("请输入姓名:");
scanf("%s",realname);
for(i=0;i<n;i++)
{
if(strcmp(realname,user[i].realname)==0)
{
l++;h=i;break;
}
else
l=0;
}
if(l==0)
{
printf("该姓名不存在,请再次输入:\n");
goto realname2;
}
else
change();
break;
case 2:
gamename2:
printf("请输入游戏昵称:");
scanf("%s",gamename);
for(i=0;i<n;i++)
{
if(strcmp(gamename,user[i].gamename)==0)
{
l++;h=i;break;
}
else
l=0;
}
if(l==0)
{
printf("改昵称不存在,请再次输入:\n");
goto gamename2;
}
else
change();
break;
case 3:
id2:
printf("请输入ID:");
scanf("%s",id);
for(i=0;i<n;i++)
{
if(strcmp(id,user[i].id)==0)
{
l++;h=i;break;
}
else
l=0;
}
if(l==0)
{
printf("该ID不存在,请再次输入:\n");
goto id2;
}
else
change();
break;
case 4:
qq3:
printf("请输入QQ号:");
scanf("%s",qq);
for(i=0;i<n;i++)
{
if(strcmp(qq,user[i].qq)==0)
{
l++;h=i;break;
}
else
l=0;
}
if(l==0)
{
printf("该QQ号不存在,请再次输入:\n");
goto qq3;
}
else
change();
break;
case 5:
phone1:
printf("请输入手机号:");
scanf("%s",phone);
for(i=0;i<n;i++)
{
if(strcmp(phone,user[i].phone)==0)
{
l++;h=i;break;
}
else
l=0;
}
if(l==0)
{
printf("该手机号不存在,请再次输入:\n");
goto phone1;
}
else
change();
break;
case 6:
return;
default:
printf("选择有误请再次输入:\n");
goto select3;
}
select4:
printf("是否继续修改?1-是;2-否\n");
printf("请输入你的选择:");
scanf("%d",&k);
if(k==1)
goto select3;
else if(k==2)
{
printf("\n\t\t按任意键返回主菜单.");
scanf("%c",&a);
return;
}
else
{
printf("你的输入有误,请再次输入:\n");
goto select4;
}
}
//显示某一个
void showone()
{
system("cls");
system("color 2b");
printf("\n\t\t 该游戏玩家的信息如下 ");
printf("\n\t\t************************************");
printf("\n\t\t** 游戏昵称:%s",user[h].gamename);
printf("\n\t\t** 真实姓名:%s",user[h].realname);
printf("\n\t\t** QQ号码:%s",user[h].qq);
printf("\n\t\t** 邮箱:%s",user[h].qqemail);
printf("\n\t\t** 性别:%s",user[h].sex);
printf("\n\t\t** 国籍:%s",user[h].nation);
printf("\n\t\t** ID:%s",user[h].id);
printf("\n\t\t** 手机号:%s",user[h].phone);
printf("\n\t\t************************************");
printf("\n\n");
system("pause");
}
//按6键找回密码
void findmm()
{
system("cls");
system("color 5b");
int i,l=0;
char phone[12];
findmm0:
printf("\n\t\t请输入你的手机号:");
scanf("%s",phone);
for(i=0;i<n;i++)
{
if(strcmp(phone,user[i].phone)==0)
{
h=i;l++;break;
}
}
printf("\n\t\t您的密码如下,请勿泄露密码给他人:\n");
printf("%s",user[h].mm);
findmm1:
int a;
printf("\n\t\t是否继续找回?1-是;2-否");
printf("\n\t\t请输入你的选择:");
scanf("%d",&a);
switch(a)
{
case 1:
goto findmm0;break;
case 2:
system("cls");return;
case 3:
printf("\n\t\t请在1和2之间选择:");
goto findmm1;
break;
}
}
//按7键找回信息
void find()
{
system("cls");
system("color 9c");
printf("\n\n");
int i,j,l=0,k;
char a,realname[20],gamename[20],id[20],qq[12],phone[11];
select5:
printf("1-按姓名找回\n");
printf("2-按游戏昵称找回\n");
printf("3-按ID找回\n");
printf("4-按QQ号找回\n");
printf("5-按手机号找回\n");
printf("6-退出本菜单\n");
printf("请输入你的选择:");
scanf("%d",&j);
switch(j)
{
case 1:
realname3:
printf("请输入姓名:");
scanf("%s",realname);
for(i=0;i<n;i++)
{
if(strcmp(realname,user[i].realname)==0)
{
l++;h=i;break;
}
else
l=0;
}
if(l==0)
{
printf("该姓名不存在,请再次输入:\n");
goto realname3;
}
else
showone();
break;
case 2:
gamename4:
printf("请输入游戏昵称:");
scanf("%s",gamename);
for(i=0;i<n;i++)
{
if(strcmp(gamename,user[i].gamename)==0)
{
l++;h=i;break;
}
else
l=0;
}
if(l==0)
{
printf("改昵称不存在,请再次输入:\n");
goto gamename4;
}
else
showone();
break;
case 3:
id3:
printf("请输入ID:");
scanf("%s",id);
for(i=0;i<n;i++)
{
if(strcmp(id,user[i].id)==0)
{
l++;h=i;break;
}
else
l=0;
}
if(l==0)
{
printf("该ID不存在,请再次输入:\n");
goto id3;
}
else
showone();
break;
case 4:
qq4:
printf("请输入QQ号:");
scanf("%s",qq);
for(i=0;i<n;i++)
{
if(strcmp(qq,user[i].qq)==0)
{
l++;h=i;break;
}
else
l=0;
}
if(l==0)
{
printf("该QQ号不存在,请再次输入:\n");
goto qq4;
}
else
showone();
break;
case 5:
phone1:
printf("请输入手机号:");
scanf("%s",phone);
for(i=0;i<n;i++)
{
if(strcmp(phone,user[i].phone)==0)
{
l++;h=i;break;
}
else
l=0;
}
if(l==0)
{
printf("该手机号不存在,请再次输入:\n");
goto phone1;
}
else
showone();
break;
case 6:
return;
default:
printf("选择有误请再次输入:\n");
goto select5;
}
select6:
printf("是否继续找回个人信息?1-是;2-否\n");
printf("请输入你的选择:");
scanf("%d",&k);
if(k==1)
goto select5;
else if(k==2)
{
printf("\n\t\t按任意键返回主菜单.");
scanf("%c",&a);
return;
}
else
{
printf("你的输入有误,请再次输入:\n");
goto select6;
}
}
//读入
void read()
{
system("cls");
system("color 3c");
char j,i;
if((fp=fopen("game.txt","rb"))==NULL)
{
printf("\n\t\t******************************");
printf("\n\t\t ");
printf("\n\t\t 文件不存在! ");
printf("\n\t\t ");
printf("\n\t\t******************************");
exit(0);
}
fseek(fp,0,2);//文件位置移动到指针末尾
if(ftell(fp)>0)//文件不能为空
{
rewind(fp);//文件指针移动到文件的开始位置
for(n=0;!feof(fp)&&fread(&user[n],sizeof(struct game),1,fp);n++);
printf("\n\t\t*************************");
printf("\n\t\t* *");
printf("\n\t\t* *");
printf("\n\t\t* 文件导入成功 *");
printf("\n\t\t* *");
printf("\n\t\t* *");
printf("\n\t\t*************************");
printf("\n\t\t 按任意键返回主菜单!");
printf("\n\t\t 请选择: ");
scanf("%c",&j);
system("pause");
return;
}
else
{
printf("\n\t\t************************");
printf("\n\t\t* *");
printf("\n\t\t* *");
printf("\n\t\t* 文件导入成功! *");
printf("\n\t\t* 通讯录中无任何数据!*");
printf("\n\t\t* *");
printf("\n\t\t* *");
printf("\n\t\t************************");
printf("\n\t\t 按任意键返回主菜单:");
scanf("%c",&i);
system("pause");
return;
}
}
//先进入主菜单
void menu()
{
system("cls");
system("color 4b");
int a;
loop0:
printf("\n\t\t*****************************");
printf("\n\t\t0.帮助");
printf("\n\t\t1.注册");
printf("\n\t\t2.修改密码");
printf("\n\t\t3.封锁某个账号");
printf("\n\t\t4.保存");
printf("\n\t\t5.修改个人信息");
printf("\n\t\t6-找回密码");
printf("\n\t\t7.找回个人信息");
printf("\n\t\t8.读入文件");
printf("\n\t\t9.退出系统");
printf("\n\t\t*****************************");
printf("请选择:");
scanf("%d",&a);
switch(a)
{
case 0:
help();break;
case 1:
regist();break;
case 2:
revicemm();break;
case 3:
deleteone();break;
case 4:
save();break;
case 5:
revice();break;
case 6:
findmm();break;
case 7:
find();break;
case 8:
read();break;
case 9:
int j;
char a;
select7:
printf("是否退出?1-是;2-否\n");
printf("请输入你的选择:");
scanf("%d",&j);
if(j==1)
k=0;
else if(j==2)
{
goto loop0;
system("cls");
}
else
{
printf("输入有误请再次输入:\n");
goto select7;
}
break;
default:
printf("输入有误,请再次输入:\n");
goto loop0;
}
}
//主函数
main()
{
begin:
int a;
printf("按一键进入主菜单:");
scanf("%d",&a);
if(a==1)
k=1;
else
{
printf("输入有误请再次输入:\n");
goto begin;
}
while(k)
menu();
}
//定义函数头文件 #include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>//定义全局变量 int n=0,h,k;//建立game文件 FILE *fp;//定义结构体数组 struct game{char gamename[20];//昵称 char realname[20];//真实姓名 char qq[12];//游戏账号就是qq账号 char qqemail[20];//qq邮箱 char sex[8];//性别 char mm[20];//密码(mm是密码的缩写) char amm[20];//确认密码(a是affirm的缩写) char nation[20];//国籍 char id[20];//ID char phone[12]; //手机 }user[1000000];//最多可以注册100万个玩家
//按0进入帮助界面 void help(){system("cls");system("color g");system("cls");system("color 1c");char a;printf("\n\t\t欢迎使用辉志鹏游戏注册系统帮助;"); printf("\n\t\t按照菜单提示键输入数字代号;"); printf("\n\t\t增加学生信息后,切记保存按4;"); printf("\n\t\t修改时请先读入文件;"); printf("\n\t\t谢谢您的使用!"); printf("按任意键返回主菜单:"); system("pause"); scanf("%c",&a); return;}
//按1注册 void regist() //每次只能注册一次 { //当再次注册时qq账号一样就不能保存成功 system("cls");system("color 2b");int i=n,q=0,j,l=0,m,p; //l用与判断,m,j用于选择 char a,man[4]={‘m‘,‘a‘,‘n‘,‘\0‘},woman[7]={‘w‘,‘o‘,‘m‘,‘a‘,‘n‘,‘\0‘};loop1: //i,k,p用来记录玩家数目 printf("\n\n");if(q==0){sex0:printf("请输入性别(man或woman):");scanf("%s",user[i].sex);if(strcmp(user[i].sex,man)!=0&&strcmp(user[i].sex,woman)!=0){printf("输入有误请再次输入:\n");goto sex0;}gamename0: printf("请输入玩家姓名:"); scanf("%s",user[i].gamename); if(strlen(user[i].gamename)>20) { printf("输入有误请再次输入:\n"); goto gamename0; } for(p=0;p<=i-1;p++) { if(strcmp(user[i].gamename,user[p].gamename)==0) { printf("该昵称已经存在,请再次输入:\n"); goto gamename0; } } realname0: printf("请输入真实姓名:"); scanf("%s",user[i].realname); if(strlen(user[i].realname)>20) { printf("输入有误请再次输入:\n"); goto realname0; } for(p=0;p<=i-1;p++) { if(strcmp(user[i].realname,user[p].realname)==0) { printf("该姓名已经存在,请再次输入:\n"); goto realname0; } } qq0: printf("请输入账号:"); scanf("%s",user[i].qq); if(strlen(user[i].qq)>12||strlen(user[i].qq)<6) { printf("输入有误请再次输入:\n"); goto qq0; } for(j=0;j<strlen(user[i].qq);j++) { if(user[i].qq[j]-‘0‘<=9&&user[i].qq[j]-‘0‘>=0) l=0; else { l++;break; } } if(l!=0) { l=0; printf("输入有误请再次输入:\n"); goto qq0; } for(p=0;p<=i-1;p++) { if(strcmp(user[i].qq,user[p].qq)==0) { printf("该账号已被注册,请再次输入:\n"); goto qq0; } } mm0: printf("请输入密码:"); scanf("%s",user[i].mm); if(strlen(user[i].mm)>20) { printf("输入有误请再次输入:\n"); goto mm0; } amm0: printf("确认密码:"); scanf("%s",user[i].amm); if(strlen(user[i].amm)>20) { printf("输入有误请再次输入:\n"); goto amm0; } if(strcmp(user[i].amm,user[i].mm)!=0) { printf("两次输入的密码不一致,请再次输入:\n"); goto amm0; } qqemail0:char mail[12]; printf("请输入qq邮箱:"); scanf("%s",user[i].qqemail);//757395100 2636706907 1007849784 int z=strlen(user[i].qqemail);if(z<=20||z>=13) { for(j=0;j<z-7;j++) { if((user[i].qqemail[j]-‘0‘)<=9&&(user[i].qqemail-‘0‘)>=0) l=0; else { l++;break; } mail[j]=user[i].qqemail[j]; } j=z-7; if(user[i].qqemail[j++]!=‘@‘) l++; if(user[i].qqemail[j++]!=‘q‘) l++; if(user[i].qqemail[j++]!=‘q‘) l++; if(user[i].qqemail[j++]!=‘.‘) l++; if(user[i].qqemail[j++]!=‘c‘) l++; if(user[i].qqemail[j++]!=‘o‘) l++; if(user[i].qqemail[j]!=‘m‘) l++; } if(strcmp(mail,user[i].qq)!=0) l++; if(l!=0) { printf("输入有误请再次输入:\n"); goto qqemail0; } for(p=0;p<=i-1;p++) { if(strcmp(user[i].qqemail,user[p].qqemail)==0) { printf("该邮箱已被注册,请再次输入:\n"); goto qqemail0; } } phone0: printf("请输入您的手机号码:"); scanf("%s",user[i].phone);if(strlen(user[i].phone)!=11){printf("输入有误请再次输入:\n");goto phone0;}for(j=0;j<strlen(user[i].phone);j++){if(user[i].phone[j]-‘0‘>=0&&user[i].phone[j]-‘0‘<=9)l=0;else{l++;break;}}if(l!=0){l=0;printf("输入有误请再次输入:\n");goto phone0;}id0: printf("请输入ID:"); scanf("%s",user[i].id); if(strlen(user[i].id)!=18) { printf("输入有误请再次输入:\n"); goto id0; }int v=strlen(user[i].id)-1; for(j=0;j<v;j++) { if((user[i].id[j]-‘0‘)>=0&&(user[i].id[j]-‘0‘)<=9) l=0; else { l++;break; } } if(l!=0) { l=0; printf("输入有误请再次输入:\n"); goto id0; } for(p=0;p<=i-1;p++) { if(strcmp(user[i].id,user[p].id)==0) { printf("该ID已经存在,请再次输入:\n"); goto id0; } } nation0: printf("请输入国籍:"); scanf("%s",user[i].nation); if(strlen(user[i].nation)>20) { printf("输入有误请再次输入:\n"); goto nation0; } i++; //每注册一次就加一次 } n=i; //注册一次就记录总数一次 if(n+1>1000000) { q=1;printf("人数已达上限!以后不能再注册!"); }else{q=0; printf("注册成功!\n");}select0:printf("是否继续注册?1-是;2-否\n");printf("请输入你的选择:"); scanf("%d",&m);if(m==1) goto loop1;else if(m==2){printf("\n\t\t按任意键返回主菜单.");scanf("%c",&a);return; //结束函数返回主菜单 } else{printf("输入有误请再次输入:\n");goto select0;}}
//按2修改密码 void revicemm(){system("cls");system("color 3c");printf("\n\n");int i,k,l=0;char mm[20],qq[12],a;qq1:printf("请输入你的账号:");scanf("%s",qq);for(i=0;i<n;i++){if(strcmp(qq,user[i].qq)==0){l++;h=i;break;}else l=0;}if(l==0){printf("该账号不存在,请再次输入:\n");goto qq1;}mm1:printf("请输入原密码:");scanf("%s",mm);if(strcmp(mm,user[h].mm)!=0){printf("密码不正确,请再次输入:\n");goto mm1;}mm2:printf("请输入新密码:");scanf("%s",user[h].mm);if(strcmp(user[h].mm,mm)==0){printf("新密码不能与旧密码相同!\n");goto mm2;}else {strcpy(user[h].amm,user[h].mm);printf("\n\t\t修改密码成功!");}select1:printf("是否继续修改密码?1-是;2否\n");printf("请输入你的选择:");scanf("%d",&k);if(k==1)goto qq1;else if(k==2){printf("\n\t\t按任意键返回主菜单.");scanf("%c",&a);system("pause");system("cls");return;}else{printf("输入有误请再次输入:\n");goto select1;}}
//封号次级调用函数 void remove(){int j; //后面往前面覆盖 for(j=h;j<n-1;j++)user[j]=user[j+1];n--;//是删除一次减一次总数 }
//按3键封号 void deleteone(){system("cls");system("color 4b");printf("\n\n");int i,j,k,l=0;char a,realname[20],gamename[20],id[20],qq[12];select1:printf("1-按姓名删除\n");printf("2-按游戏昵称删除\n");printf("3-按ID删除\n");printf("4-按QQ号删除\n");printf("5-退出本菜单\n");printf("请输入你的选择:");scanf("%d",&j);switch(j){case 1:realname1:printf("请输入姓名:");scanf("%s",realname);for(i=0;i<n;i++){if(strcmp(realname,user[i].realname)==0){h=i;l++;break;}else l=0;}if(l==0){printf("该姓名不存在,请再次输入:\n");goto realname1;}else remove();break;case 2:gamename1:printf("请输入昵称:");scanf("%s",gamename);for(i=0;i<n;i++){if(strcmp(gamename,user[i].gamename)==0){h=i;l++;break;}elsel++;}if(l==0){printf("改昵称不存在,请再次输入:\n");goto gamename1;}else remove();break;case 3: id1:printf("请输入ID:");scanf("%s",id);for(i=0;i<n;i++){if(strcmp(id,user[i].id)==0){l++;h=i;break;}else l=0;}if(l==0){printf("该ID不存在,请再次输入:\n");goto id1;}elseremove();break;case 4:qq2:printf("请输入QQ号:");scanf("%s",qq);for(i=0;i<n;i++){if(strcmp(qq,user[i].qq)==0){l++;h=i;break;}else l=0;}if(l==0){printf("该QQ号不存在,请再次输入:\n");goto qq2; }elseremove();break;case 5:return;default:printf("选择有误请再次输入:\n");goto select1;}printf("\n\t\t账号已封锁成功!");select2:printf("是否继续封锁个人信息?1-是;2-否\n");printf("请输入你的选择:");scanf("%d",&k);if(k==1) goto select1;else if(k==2){printf("\n\t\t按任意键返回主菜单.");scanf("%c",&a);return;}else{printf("你的输入有误,请再次输入:\n");goto select2;}}
//按4键保存 void save(){system("cls");system("color 5f"); int i; FILE *fp; fp=fopen("game.txt","wb"); //写入 for(i=0;i<n;i++){ if(fwrite(&user[i],sizeof(struct game),1,fp)!=1) printf("\n\t\t写入文件错误!");} fclose(fp); printf("\n\n\t\t\n保存成功!"); system("pause"); system("cls");}
//修改次级函数 void change(){system("cls");system("color 6e");int i,a;printf("\n\t\t 该游戏玩家的信息如下 ");printf("\n\t\t************************************");printf("\n\t\t** 游戏昵称:%s",user[h].gamename);printf("\n\t\t** 真实姓名:%s",user[h].realname);printf("\n\t\t** QQ号码:%s",user[h].qq);printf("\n\t\t** 邮箱:%s",user[h].qqemail);printf("\n\t\t** 性别:%s",user[h].sex);printf("\n\t\t** 国籍:%s",user[h].nation);printf("\n\t\t** ID:%s",user[h].id);printf("\n\t\t** 手机号:%s",user[h].phone);printf("\n\t\t************************************");printf("\n请输入新的信息:");system("pause");printf("\n\t\t1-修改昵称");printf("\n\t\t2-修改姓名");printf("\n\t\t3-修改性别");printf("\n\t\t4-修改国籍");printf("\n\t\t5-修改ID");printf("\n\t\t6-修改电话");printf("\n\t\t7-退出该菜单");revice:printf("\n\t\t请选择:");scanf("%d",&a);switch(a){ case 1: printf("\n请输入新的昵称:"); scanf("%s",user[h].gamename); break; case 2: printf("请输入新的姓名:"); scanf("%d",&user[h].realname);break; case 3: printf("请输入新的性别:"); scanf("%s",user[h].sex);break; case 4: printf("请输入新的国籍:"); scanf("%s",user[h].nation); break; case 5: printf("请输入新的ID:"); scanf("%s",user[h].id); break; case 6: printf("请输入新的电话号码:"); scanf("%s",user[h].phone); break; case 7:return; default:printf("请在1-7之间选择\n");goto revice;}printf("个人信息修改成功!\n");}
//按5键修改个人信息 void revice(){system("cls");system("color 8c");printf("\n\n");int i,j,k,l=0;char a,realname[20],gamename[20],id[20],qq[12],phone[11];select3:printf("1-按姓名修改\n");printf("2-按昵称修改\n");printf("3-按ID修改\n");printf("4-按QQ修改\n");printf("5-按电话修改\n");printf("6-退出本菜单\n");printf("请输入你的选择:");scanf("%d",&j);switch(j){case 1:realname2:printf("请输入姓名:");scanf("%s",realname);for(i=0;i<n;i++){if(strcmp(realname,user[i].realname)==0){l++;h=i;break;}elsel=0; }if(l==0){printf("该姓名不存在,请再次输入:\n");goto realname2;}else change(); break;case 2:gamename2:printf("请输入游戏昵称:");scanf("%s",gamename);for(i=0;i<n;i++){if(strcmp(gamename,user[i].gamename)==0){l++;h=i;break;}else l=0;}if(l==0){printf("改昵称不存在,请再次输入:\n");goto gamename2;}else change();break;case 3: id2:printf("请输入ID:");scanf("%s",id);for(i=0;i<n;i++){if(strcmp(id,user[i].id)==0){l++;h=i;break;}else l=0;}if(l==0){printf("该ID不存在,请再次输入:\n");goto id2;}else change();break;case 4:qq3:printf("请输入QQ号:");scanf("%s",qq);for(i=0;i<n;i++){if(strcmp(qq,user[i].qq)==0){l++;h=i;break;}else l=0;}if(l==0){printf("该QQ号不存在,请再次输入:\n");goto qq3; }elsechange();break;case 5:phone1:printf("请输入手机号:");scanf("%s",phone);for(i=0;i<n;i++){if(strcmp(phone,user[i].phone)==0){l++;h=i;break;}else l=0;}if(l==0){printf("该手机号不存在,请再次输入:\n");goto phone1;}else change();break;case 6:return;default:printf("选择有误请再次输入:\n");goto select3;}select4:printf("是否继续修改?1-是;2-否\n");printf("请输入你的选择:");scanf("%d",&k);if(k==1) goto select3;else if(k==2) { printf("\n\t\t按任意键返回主菜单.");scanf("%c",&a);return; }else{printf("你的输入有误,请再次输入:\n");goto select4;}}
//显示某一个 void showone(){system("cls");system("color 2b");printf("\n\t\t 该游戏玩家的信息如下 ");printf("\n\t\t************************************");printf("\n\t\t** 游戏昵称:%s",user[h].gamename);printf("\n\t\t** 真实姓名:%s",user[h].realname);printf("\n\t\t** QQ号码:%s",user[h].qq);printf("\n\t\t** 邮箱:%s",user[h].qqemail);printf("\n\t\t** 性别:%s",user[h].sex);printf("\n\t\t** 国籍:%s",user[h].nation);printf("\n\t\t** ID:%s",user[h].id);printf("\n\t\t** 手机号:%s",user[h].phone);printf("\n\t\t************************************");printf("\n\n");system("pause");}
//按6键找回密码void findmm(){system("cls");system("color 5b");int i,l=0;char phone[12];findmm0:printf("\n\t\t请输入你的手机号:");scanf("%s",phone);for(i=0;i<n;i++){if(strcmp(phone,user[i].phone)==0){h=i;l++;break;}}printf("\n\t\t您的密码如下,请勿泄露密码给他人:\n");printf("%s",user[h].mm);findmm1:int a;printf("\n\t\t是否继续找回?1-是;2-否");printf("\n\t\t请输入你的选择:");scanf("%d",&a);switch(a){case 1:goto findmm0;break;case 2:system("cls");return;case 3:printf("\n\t\t请在1和2之间选择:");goto findmm1;break;} }
//按7键找回信息 void find(){system("cls");system("color 9c");printf("\n\n");int i,j,l=0,k;char a,realname[20],gamename[20],id[20],qq[12],phone[11];select5:printf("1-按姓名找回\n");printf("2-按游戏昵称找回\n");printf("3-按ID找回\n");printf("4-按QQ号找回\n");printf("5-按手机号找回\n");printf("6-退出本菜单\n");printf("请输入你的选择:");scanf("%d",&j);switch(j){case 1:realname3:printf("请输入姓名:");scanf("%s",realname);for(i=0;i<n;i++){if(strcmp(realname,user[i].realname)==0){l++;h=i;break;}elsel=0; }if(l==0){printf("该姓名不存在,请再次输入:\n");goto realname3;}else showone();break;case 2:gamename4:printf("请输入游戏昵称:");scanf("%s",gamename);for(i=0;i<n;i++){if(strcmp(gamename,user[i].gamename)==0){l++;h=i;break;}else l=0;}if(l==0){printf("改昵称不存在,请再次输入:\n");goto gamename4;}else showone();break;case 3: id3:printf("请输入ID:");scanf("%s",id);for(i=0;i<n;i++){if(strcmp(id,user[i].id)==0){l++;h=i;break;}else l=0;}if(l==0){printf("该ID不存在,请再次输入:\n");goto id3;}else showone();break;case 4:qq4:printf("请输入QQ号:");scanf("%s",qq);for(i=0;i<n;i++){if(strcmp(qq,user[i].qq)==0){l++;h=i;break;}else l=0;}if(l==0){printf("该QQ号不存在,请再次输入:\n");goto qq4; }elseshowone();break;case 5:phone1:printf("请输入手机号:");scanf("%s",phone);for(i=0;i<n;i++){if(strcmp(phone,user[i].phone)==0){l++;h=i;break;}else l=0;}if(l==0){printf("该手机号不存在,请再次输入:\n");goto phone1;}else showone();break;case 6:return;default:printf("选择有误请再次输入:\n");goto select5;}select6:printf("是否继续找回个人信息?1-是;2-否\n");printf("请输入你的选择:");scanf("%d",&k);if(k==1) goto select5;else if(k==2){printf("\n\t\t按任意键返回主菜单.");scanf("%c",&a);return;}else{printf("你的输入有误,请再次输入:\n");goto select6;}}
//读入 void read(){system("cls");system("color 3c");char j,i;if((fp=fopen("game.txt","rb"))==NULL){printf("\n\t\t******************************");printf("\n\t\t ");printf("\n\t\t 文件不存在! ");printf("\n\t\t ");printf("\n\t\t******************************");exit(0);}fseek(fp,0,2);//文件位置移动到指针末尾 if(ftell(fp)>0)//文件不能为空 {rewind(fp);//文件指针移动到文件的开始位置 for(n=0;!feof(fp)&&fread(&user[n],sizeof(struct game),1,fp);n++);printf("\n\t\t*************************");printf("\n\t\t* *");printf("\n\t\t* *");printf("\n\t\t* 文件导入成功 *");printf("\n\t\t* *");printf("\n\t\t* *");printf("\n\t\t*************************");printf("\n\t\t 按任意键返回主菜单!");printf("\n\t\t 请选择: ");scanf("%c",&j);system("pause");return;}else{printf("\n\t\t************************");printf("\n\t\t* *");printf("\n\t\t* *");printf("\n\t\t* 文件导入成功! *");printf("\n\t\t* 通讯录中无任何数据!*");printf("\n\t\t* *");printf("\n\t\t* *");printf("\n\t\t************************");printf("\n\t\t 按任意键返回主菜单:");scanf("%c",&i);system("pause");return;}}
//先进入主菜单 void menu(){system("cls");system("color 4b");int a;loop0:printf("\n\t\t*****************************");printf("\n\t\t0.帮助");printf("\n\t\t1.注册");printf("\n\t\t2.修改密码");printf("\n\t\t3.封锁某个账号");printf("\n\t\t4.保存");printf("\n\t\t5.修改个人信息");printf("\n\t\t6-找回密码");printf("\n\t\t7.找回个人信息");printf("\n\t\t8.读入文件");printf("\n\t\t9.退出系统");printf("\n\t\t*****************************");printf("请选择:");scanf("%d",&a);switch(a){case 0: help();break;case 1: regist();break;case 2: revicemm();break;case 3: deleteone();break;case 4: save();break;case 5: revice();break;case 6: findmm();break;case 7: find();break;case 8: read();break;case 9: int j; char a; select7: printf("是否退出?1-是;2-否\n"); printf("请输入你的选择:"); scanf("%d",&j); if(j==1) k=0; else if(j==2) { goto loop0; system("cls"); } else { printf("输入有误请再次输入:\n"); goto select7; } break;default: printf("输入有误,请再次输入:\n"); goto loop0;}}
//主函数 main(){begin:int a;printf("按一键进入主菜单:");scanf("%d",&a);if(a==1)k=1;else{printf("输入有误请再次输入:\n");goto begin;}while(k) menu();}