#include #include #include #include struct record { char nativeplace[20]; char name[20]; char phone1[20]; char phone2[20]; char e_mail[30]; }student[500]; int num=0;//外部变量num为文件中的纪录数 FILE *fp; void welcome(); //欢迎 void mainmenu(); //主菜单 void newrecord(); //新添纪录 void modify(); //修改联系人 void modifyname(); //姓名修改 void modifyphone1(); //电话号码1修改 void modifyphone2(); //电话号码2修改 void searchmenu(); //查询菜单 void searchbynativeplace(); //按籍贯查询 void searchbyname(); //按姓名查询 void searchbyphone1(); //按电话1查询 void searchbyphone2(); //按电话2查询 void deletemenu(); //删除菜单 void deleteall(); //删除所有 void deleteone(); //删除单个 void showall(); //显示所有 void readfromfile(); //读取文件 void writetofile(); //写入文件 void deletebynativeplace(); //按籍贯删除 void deletebyname(); //按姓名删除 void listbynativeplace(); //按籍贯排序 void listbyname(); //按姓名排序 void listmenu(); //排序菜单 int main() //主函数 { welcome(); readfromfile(); while (1) { mainmenu(); } } void showall()//显示所有 { int i; system("cls"); if(num!=0) { printf("\n\t\t*************** 以下为通讯录所有信息************"); for (i=0;i=0); student[j+1]=tmp; } } printf("\n\t\t排序成功,是否显示?(y/n)"); if (getch()=='y') showall(); return; } void listbyname()//按姓名排序 { int i,j; struct record tmp; for (i=1;i=0)); student[j+1]=tmp; } } printf("\n\t\t排序成功,是否显示?(y/n)"); if (getch()=='y') showall(); return; } void deletemenu()//删除菜单 { char choic; if(num==0) { printf("\n\t\t对不起,文件中无任何纪录"); printf("\n\t\t按任意键返回主菜单"); getch(); return; } system("cls"); printf("\n\t\t******************* 删除菜单 *******************"); printf("\n\t\t*********** 1-删除所有 2-删除单个 ***********"); printf("\n\t\t*********** 3-返回主菜单 ***********"); printf("\n\t\t************************************************"); printf("\n\t\t请选择:"); choic=getch(); switch (choic) { case '1':deleteall();break; case '2':deleteone();break; case '3':mainmenu();break; default:mainmenu();break; } } void deleteall()//删除所有 { printf("\n\t\t确认删除?(y/n)"); if (getch()=='y') { fclose(fp); if ((fp=fopen("student.bin","wb"))==NULL) { printf("\n\t\t不能打开文件,删除失败"); readfromfile(); } num=0; printf("\n\t\t记录已删除,按任意键返回主菜单"); getch(); return; } else return; } void deletebyname()//按姓名删除 { int a=0; int findmark=0; int j; int deletemark=0; int i; char name[20]; printf("\n\t\t请输入要删除姓名:"); scanf("%s",name); for (i=a;i