北京石油化工学院 BEIJING INSTITUTE OF PETROCHEMICAL TECHNOLOGY 课程设计用纸
{
case '1':deleteall();break; case '2':deleteone();break; case '3':mainmenu();break; default:mainmenu();break; } }
void deleteall()//删除所有 {
printf(\确认删除?(y/n)\ if (getch()=='y') {
fclose(p); //成功执行了关闭操作,返回值为0
if ((p=fopen(\打开输出文件 {
printf(\不能打开文件,删除失败\ readfromfile(); }
num=0;
printf(\纪录已删除,按任意键返回主菜单\ getch(); return; } else return; }
void deleteone()//删除单个 {
char choice;
printf(\按电话号码删除 2-按姓名删除\ printf(\请选择:\ choice=getch(); switch (choice) {
case '1':deletebyphone();break; case '2':deletebyname();break; } }
void deletebyphone()//按电话号码删除 { int i,j;
int deletemark=0; char phone[20];
printf(\请输入要删除电话号码:\
20
北京石油化工学院 BEIJING INSTITUTE OF PETROCHEMICAL TECHNOLOGY 课程设计用纸
scanf(\ if(num==0) {
printf(\对不起,文件中无任何纪录\ printf(\按任意键返回主菜单\ getch(); return; }
for (i=0;i if (strcmp(student[i].phone,phone)==0) { printf(\以下是您要删除的纪录:\ printf(\编号: %s\ printf(\姓名: %s\ printf(\电话: %s\ printf(\地址: %s\ printf(\:%s\ printf(\:%s\ printf(\邮编:%s\ printf(\生日:%s\ printf(\性别:%s\ printf(\是否删除?(y/n)\ if (getch()=='y') { for (j=i;j printf(\删除成功\ printf(\是否继续删除?(y/n)\ if (getch()=='y') deletebyphone(); return; } else return; } continue; } if (deletemark==0) { printf(\没有此人的纪录\ printf(\是否继续删除?(y/n)\ 21 北京石油化工学院 BEIJING INSTITUTE OF PETROCHEMICAL TECHNOLOGY 课程设计用纸 if (getch()=='y') deletebyphone(); return; } } void deletebyname()//按姓名删除 { int a=0; int findmark=0; int j; int deletemark=0; int i; char name[20]; printf(\请输入要删除学生姓名:\ scanf(\ for (i=a;i if (strcmp(student[i].name,name)==0) { printf(\以下是您要删除的学生纪录:\ findmark++; printf(\ printf(\编号: %s\ printf(\姓名: %s\ printf(\电话: %s\ printf(\地址: %s\ printf(\:%s\ printf(\:%s\ printf(\邮编:%s\ printf(\生日:%s\ printf(\性别:%s\ printf(\ printf(\是否删除?(y/n)\ if (getch()=='y') { for (j=i;j deletemark++; printf(\删除成功\ if((i+1) printf(\是否继续删除相同姓名的同学信息?(y/n)\ if (getch()=='y') { 22 北京石油化工学院 BEIJING INSTITUTE OF PETROCHEMICAL TECHNOLOGY 课程设计用纸 a=i; continue; } } printf(\是否继续删除?(y/n)\ if (getch()=='y') deletebyname(); return;//返回主菜单 } if((i+1) printf(\是否继续删除相同姓名的同学信息?(y/n)\ if (getch()=='y') { a=i; continue; } } } else continue; } if ((deletemark==0)&&(findmark==0)) { printf(\没有此人的纪录\ printf(\是否继续删除?(y/n)\ if (getch()=='y') deletebyphone(); return; return; } else if (findmark!=0) { printf(\没有重名信息\ printf(\没有此人的纪录\ printf(\是否继续删除?(y/n)\ if (getch()=='y') deletebypphone(); return; return; } } void listmenu()//排序菜单 23 北京石油化工学院 BEIJING INSTITUTE OF PETROCHEMICAL TECHNOLOGY 课程设计用纸 { char choice; if(num==0) { printf(\对不起,文件中无任何纪录\ printf(\按任意键返回主菜单\ getch(); return; } system(\ printf(\排序菜单 *******************\ printf(\按电话排序 2-按姓名排序 **********\ printf(\返回主菜单 **********\ printf(\ printf(\请选择:\ choice=getch(); switch(choice) { case '1':listbyphone();break; case '2':listbyname();break; case '3':mainmenu();break; default:mainmenu();break; } } void listbyphone()//按电话排序 { int i,j; record tmp; //临时变量做交换数据用 for (i=1;i if(strcmp(student[i].phone,student[i-1].phone)<0) { tmp=student[i]; j=i-1; do { student[j+1]=student[j]; j--; }while ((strcmp(tmp.phone,student[j].phone)<0)&&j>=0); student[j+1]=tmp; } } printf(\排序成功,是否显示?(y/n)\ if (getch()=='y') 24