1、include
2、ny[20]; char email[40]; long int QQ; }per[500]; int num=0;//*外部变量num为文件中的纪录数*// FILE *fp; void mainmenu();//*主菜单*// void newrecord();//新添纪录*// void xiugaimenu();//*修改菜单*// void xiugaibyname();//*按姓名修改*// void xiugaibycelephone();//*按手机号码修改*//
3、 void xiugaixiangmu(int a);//*修改项目*// void searchmenu();//*查询菜单*// void searchbyname();//*按姓名查询*// void searchbycelephone();//*按手机号码查询*// void searchbyhomephone();//*按家庭电话号码查询*// void searchbyqq();//*按QQ查询*// void deletemenu();//*删除菜单*// void deleteall();//*删除所有信 息*//
4、 void deleteone();//*删除单个*// void showall();//*输 出 全 部 信 息*// void readfromfile();//*读取文件*// void writetofile();//*写入文件*// / void deletebycelephone(); //*按手机号码删除*// void deletebyname();//*按姓名删除*/ void listbycelephone();//*按手机号码排序*// void listbyname();//*按姓名排序*//
5、 void listmenu();//*排序菜单*// void main()//*主函数*// { system("cls"); readfromfile(); while (1) { mainmenu(); } } //*主函数结束*// void mainmenu()//*主菜单函数*// { int a; system("cls"); system("color FC"); printf("\n\t 您 好! 欢 迎 使 用 通 讯 录!\n"); printf(" 1: 添 加 个
6、人 信 息\n"); printf(" 2: 查 询 个 人 信 息\n"); printf(" 3: 删 除 个 人 信 息\n"); printf(" 4: 修 改 个 人 信 息\n"); printf(" 5: 信 息 排 序\n"); printf(" 6: 输 出 全 部 信 息\n"); printf(" 7: 写 入 文 件\n"); printf(" 8: 读 取 文 件\n"); printf(" 9: 删除所有\n"); printf(" 0: 退 出 \n"); printf(" 请输入您的数
7、字选择: "); loop1: scanf("%d",&a); switch (a) { case 1:newrecord();break; case 2:searchmenu();break; case 3:deletemenu();break; case 4:xiugaimenu();break; case 5:listmenu();break; case 6:showall();break; case 7:writetofile();break; case 8:readfromfile();break;
8、case 9:deleteall();break; case 0:exit(0); default:printf("对不起!您的输入有误!请重新输入: "); goto loop1; } } void newrecord()//*添加纪录*// { int a; system("cls"); system("color 2a"); loop: printf("\n\n\n\n\t\t 请输入您要添加的联系人的信息: \n"); printf("\n请输入姓名:\n"); name: sca
9、nf("%s",&per[num].name); if(strlen(per[num].name)>15) { printf("对不起!您的输入有误!请重新输入"); goto name; } printf("\n请输入性别:\n"); sex: scanf("%s",&per[num].sex); if(strlen(per[num].sex)==0) { printf("对不起!您的输入有误!请重新输入"); goto sex; } printf("\n请输入年龄:
10、"); nianling: scanf("%d",&per[num].nianling); if(per[num].nianling<10||per[num].nianling>110) { printf("对不起!您的输入有误!请重新输入"); goto nianling; } printf("\n请输入邮编\n"); youbian: scanf("%d",&per[num].youbian); if(per[num].youbian<10000||pe
11、r[num].youbian>999999) { printf("对不起!您的输入有误!请重新输入"); goto youbian; } printf("\n请输入地址\n"); addr: scanf("%s",&per[num].addr); if(strlen(per[num].addr)>50||strlen(per[num].addr)<4) { printf("对不起!您的输入有误!请重新输入\n"); goto addr; } printf("\n请输入手机号码:\n");
12、 celephone: scanf("%s",&per[num].celephone); if(strlen(per[num].celephone)!=11) { printf("对不起!您的输入有误!请重新输入\n"); goto celephone; } printf("\n请输入家庭电话号码:\n"); homephone: scanf("%s",&per[num].homephone); if(strlen(per[num].homephone)!=11) { printf("对不
13、起!您的输入有误!请重新输入\n"); goto homephone; } printf("\n请输入公司名称:"); company: scanf("%s",&per[num].company); if(strlen(per[num].company)>20||strlen(per[num].company)<10) { printf("对不起!您的输入有误!请重新输入"); goto company; } printf("\n输入电子邮箱:"); email: scanf("%s",&per[n
14、um].email); if(strlen(per[num].email)>30||strlen(per[num].email)<4) { printf("对不起!您的输入有误!请重新输入"); goto email; } printf("\n输入QQ号码:"); QQ: scanf("%ld",&per[num].QQ); if(per[num].QQ>1600000000||per[num].QQ<10000000) { printf("对不起!您的输入有误!请重新输入"); goto QQ; }
15、num++; printf("\n是否继续添加?\n"); printf("\n请按1和2(1代表继续;2代表不继续)\n"); printf("请输入您的选择 "); scanf("%d",&a); if(a==1) { goto loop; } else { return; } } void searchmenu()//*查询菜单*// { int a; system("cls"); system("color 2a"); printf("\n\t
16、\t 欢 迎 使 用 查 询 菜 单"); printf("\n\t\t1-按手机号码查询"); printf("\n\t\t2-按姓名查询"); printf("\n\t\t3-按家庭电话号码查询"); printf("\n\t\t4-按QQ查询"); printf("\n\t\t5-返回主菜单"); printf("\n\t\t"); printf("请输入您的选择 "); scanf("%d",&a); switch (a) { case 1:searchbycelepho
17、ne();break; case 2:searchbyname();break; case 3:searchbyhomephone();break; case 4:searchbyqq();break; case 5:mainmenu();break; } } void searchbycelephone()//*按手机号码查询*// { int mark=0; int i,j; int a=0; char celephone[11]; printf("\n 按手机号码查找 \n"); print
18、f("\n请输入手机号码:\n");
scanf("%s",celephone);
for(i=0;i 19、printf("\n年龄: %d",per[i].nianling);
printf("\n邮编 : %ld",per[i].youbian);
printf("\n地址: %s",per[i].addr);
printf("\n手机号码: %s",per[i].celephone);
printf("\n家庭电话号码:%s",per[i].homephone);
printf("\n公司名称:%s",per[i].company);
printf("\n电子邮件:%s",per[i].email);
printf("\nQQ号码:% 20、ld",per[i].QQ);
printf("\n________________________________");
printf("\n请按任意数字键返回主菜单");
mark++;
scanf("%d",&j);
return;
}
}
if (mark==0)
{
printf("\n对不起!没有该联系人的信息!");
printf("\n请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
}
void sear 21、chbyname()//*按姓名查询*//
{
int mark=0;
int i,j,findmark=0;
int a=0;
char name[15];
printf("\n 按姓名查找 ");
printf("\n请输入姓名:");
scanf("%s",name);
for(i=a;i 22、 printf("\n\t\t________________________________");
printf("\n\t\t名字: %s",per[i].name);
printf("\n\t\t性别: %s",per[i].sex);
printf("\n\t\t年龄: %d",per[i].nianling);
printf("\n\t\t邮编 : %ld",per[i].youbian);
printf("\n\t\t地址: %s",per[i].addr);
printf("\n\t\t手机号码: %s",per[i]. 23、celephone);
printf("\n\t\t家庭电话号码:%s",per[i].homephone);
printf("\n\t\t公司名称:%s",per[i].company);
printf("\n\t\t电子邮件:%s",per[i].email);
printf("\n\t\tQQ号码:%ld",per[i].QQ);
printf("\n\t\t________________________________");
if ((i+1) 24、息?(1代表继续;2代表不继续)");
scanf("%d",&j);
if (j==1)
{
a=i;
mark++;
continue;
}
else
break;
}
else
{
printf("\n请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
}
}
if(mark!=0)
{
printf(" 25、\n对不起! 没有相同名字的该联系人的信息!!");
printf("\n请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
else if(findmark==0)
{
printf("\n对不起!没有该联系人的信息!");
printf("\n请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
}
void searchbyhomephone()//*按家庭电话号码查询*//
{
int mark=0;
int i,j; 26、
int a=0;
char homephone[11];
printf("\n\t\t 按家庭电话号码查找 ");
printf("\n请输入家庭电话号码:");
scanf("%s",homephone);
for(i=0;i 27、");
printf("\n\t\t名字: %s",per[i].name);
printf("\n\t\t性别: %s",per[i].sex);
printf("\n\t\t年龄: %d",per[i].nianling);
printf("\n\t\t邮编 : %ld",per[i].youbian);
printf("\n\t\t地址: %s",per[i].addr);
printf("\n\t\t手机号码: %s",per[i].celephone);
printf("\n\t\t家庭电话号码:%s",per 28、[i].homephone);
printf("\n\t\t公司名称:%s",per[i].company);
printf("\n\t\t电子邮件:%s",per[i].email);
printf("\n\t\tQQ号码:%ld",per[i].QQ);
printf("\n\t\t________________________________");
printf("\n\t\t请按任意数字键返回主菜单");
mark++;
scanf("%d",&j);
return;
}
}
if ( 29、mark==0)
{
printf("\n\t\t对不起!没有该联系人的信息!");
printf("\n\t\t请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
}
void searchbyqq()//*按QQ查询*//
{
int mark=0;
int i,j;
long int QQ;
printf("\n\t\t 按QQ号码查找\n");
printf("\n请输入QQ号码:");
scanf("%ld",&QQ);
for(i=0;i< 30、num;i++)
{
if(per[i].QQ==QQ)
{
printf("\n\t\t 以下是您查找的联系人的信息");
printf("\n\t\t________________________________");
printf("\n\t\t名字: %s",per[i].name);
printf("\n\t\t性别: %s",per[i].sex);
printf("\n\t\t年龄: %d",per[i].nianling);
printf("\n\t\t邮编 : %ld",per[i].yo 31、ubian);
printf("\n\t\t地址: %s",per[i].addr);
printf("\n\t\t手机号码: %s",per[i].celephone);
printf("\n\t\t家庭电话号码:%s",per[i].homephone);
printf("\n\t\t公司名称:%s",per[i].company);
printf("\n\t\t电子邮件:%s",per[i].email);
printf("\n\t\tQQ号码:%ld",per[i].QQ);
printf("\n\t\t____________ 32、");
printf("\n\t\t请按任意数字键返回主菜单");
mark++;
scanf("%d",&j);
return;
}
}
if (mark==0)
{
printf("\n\t\t对不起!没有该联系人的信息!");
printf("\n\t\t请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
}
void deletemenu()//*删除菜单*//
{
33、 int i,j;
system("cls");
system("color 3b");
if(num==0)
{
printf("\n\t\t对不起!文件中无任何纪录!");
printf("\n\t\t请先添加个人信息!");
printf("\n\t\t请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
else
{
printf("\n\t\t 删 除 菜 单 ");
printf("\n\t\t 1-删除单个 34、 ");
printf("\n\t\t 2-返回主菜单 ");
printf("\n\t\t ");
printf("\n\t\t请输入您的数字选择: ");
loop4: scanf("%d",&i);
switch (i)
{
case 1:deleteone();break;
case 2:mainmenu();break;
default:printf("对不起!您的输入有误!请重新输入: ");goto loop4;
}
35、}
}
void deleteone()//*删除单个*//
{
int i;
printf("\n\t\t1-按手机号码删除 2-按姓名删除");
printf("\n\t\t请输入您的选择:");
loop5:scanf("%d",&i);;
switch (i)
{
case 1:deletebycelephone();break;
case 2:deletebyname();break;
default:printf("对不起!您的输入有误!请重新输入: ");goto loop5;
}
}
void d 36、eletebyname()//姓名删除*//
{
int a=0;
int findmark=0;
int i,j,k;
int deletemark=0;
char name[15];
printf("\n\t\t请输入您要删除的联系人的姓名:");
scanf("%s",name);
for (i=a;i 37、rintf("\n\t\t________________________________");
printf("\n\t\t名字: %s",per[i].name);
printf("\n\t\t性别: %s",per[i].sex);
printf("\n\t\t年龄: %d",per[i].nianling);
printf("\n\t\t邮编 : %ld",per[i].youbian);
printf("\n\t\t地址: %s",per[i].addr);
printf("\n\t\t手机号码: %s",per[i].cele 38、phone);
printf("\n\t\t家庭电话号码:%s",per[i].homephone);
printf("\n\t\t公司名称:%s",per[i].company);
printf("\n\t\t电子邮件:%s",per[i].email);
printf("\n\t\tQQ号码:%ld",per[i].QQ);
printf("\n\t\t________________________________");
printf("\n\t\t是否删除?(1代表删除;2代表不删除)\n");
printf("\n\t\t请 39、输入您的数字选择: ");
scanf("%d",&k);
if(k==1)
{
for (j=i;j 40、n\t\t请输入您的数字选择: ");
scanf("%d",&k);
if(k=1)
{
a=i;
findmark++;
continue;
}
}
printf("\n\t\t是否继续删除?(1代表继续;2代表不继续)");
printf("\n\t\t请输入您的数字选择: ");
scanf("%d",&k);
if(k==1)
deleteone();
els 41、e
break;
}
}
else
continue;
}
if((deletemark==0)&&(findmark==0))
{
printf("\n\t\t对不起!没有该联系人的纪录!");
printf("\n\t\t是否继续删除?(1代表继续;2代表不继续)");
printf(" 请输入您的数字选择: ");
scanf("%d",&k);
if(k==1)
deleteone();
}
else if(findmark!=0)
42、{
printf("\n\t\t对不起!没有重名信息!");
printf("\n\t\t是否继续删除?(1代表继续;2代表不继续)");
printf(" 请输入您的数字选择: ");
scanf("%d",&k);
if(k==1)
deleteone();
}
}
void deletebycelephone()//*按手机号码删除*//
{
int i,j,h,m;
int deletemark=0;
char celephone[11];
printf("\n\t 43、\t请输入要删除的联系人的手机号码:");
scanf("%s",celephone);
for(i=0;i 44、t\t性别: %s",per[i].sex);
printf("\n\t\t年龄: %d",per[i].nianling);
printf("\n\t\t邮编 : %ld",per[i].youbian);
printf("\n\t\t地址: %s",per[i].addr);
printf("\n\t\t手机号码: %s",per[i].celephone);
printf("\n\t\t家庭电话号码:%s",per[i].homephone);
printf("\n\t\t公司名称:%s",per[i].company);
p 45、rintf("\n\t\t电子邮件:%s",per[i].email);
printf("\n\t\tQQ号码:%ld",per[i].QQ);
printf("\n\t\t________________________________");
printf("\n\t\t是否删除?(1代表删除;2代表不删除)\n");
printf(" 请输入您的数字选择: ");
scanf("%d",&h);
if(h==1)
{
for (j=i;j 46、r数组中删除之*/
per[j]=per[j+1];
num--;
printf("\n\t\t删除成功");
printf("\n是否继续删除?(1代表继续;2代表不继续)\n");
printf(" 请输入您的数字选择: ");
scanf("%d",&h);
if(h==1)
deletebycelephone();
}
}
}
if(deletemark==0)
{
printf("\n\t\t对不起!没有该联系人的纪 47、录!");
printf("\n\t\t是否继续删除?(1代表继续;2代表不继续)\n");
printf(" 请输入您的数字选择: ");
scanf("%d",&m);
if(m==1)
deletebycelephone();
}
}
void xiugaimenu()//*修改菜单*//
{
int i,j;
system("cls");
system("color 3f");
if(num==0)
{
printf("\n\t\t对不起!文件中无任何纪录!"); 48、
printf("\n\t\t请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
else
{
printf("\n\t\t 1-按姓名修改 2-按手机号码修改\n");
printf(" 请输入您的数字选择: ");
loop6:scanf("%d",&i);
switch (i)
{
case 1:xiugaibyname();break;
case 2:xiugaibycelephone();bre 49、ak;
default:printf("对不起!您的输入有误!请重新输入: ");goto loop6;
}
}
}
void xiugaibyname()//*按姓名修改*//
{
int a=0;
int findmark=0;
int xiugaimark=0;
int i,j;
char name[15];
printf("\n\t\t请输入要修改联系人的姓名:");
scanf("%s",name);
for (i=a;i 50、name,name)==0)
{
printf("\n\t\t以下是您要修改的联系人的纪录:");
findmark++;
printf("\n\t\t________________________________");
printf("\n\t\t名字: %s",per[i].name);
printf("\n\t\t性别: %s",per[i].sex);
printf("\n\t\t年龄: %d",per[i].nianling);
printf("\n\t\t邮编 : %ld",per[i].youbia






