printf(\进入系统后,先刷新宿舍信息,再查询;\\n\); printf(\按照菜单提示键入数字代号;\\n\); printf(\增加宿舍信息后,切记保存按7;\\n\); printf(\谢谢您的使用!\\n\); }
void readfile()/* 建立信息 */ {
char *p=\; FILE *fp; int i=0;
if ((fp=fopen(\,\))==NULL) {
printf(\,p); system(\); exit(0); }
while(fscanf(fp,\,stu[i].room,stu[i].dormitoryleader,&stu[i].dormitory,
stu[i].area,stu[i].hold,stu[i].member,stu[i].tel,stu[i].livenumber)==8) { i++; i=i; }
fclose(fp); n=i;
printf(\录入完毕!\\n\); }
void seek() /*查找*/ {
int i,item,flag;
char s1[21]; /* 以宿舍长和房间号最长长度+1为准 */ printf(\); printf(\按房间号查询-----\\n\); printf(\按宿舍长查询-----\\n\); printf(\退出本菜单-----\\n\); printf(\); while(1) {
printf(\请选择子菜单编号:\); scanf(\,&item); flag=0; switch(item) {
16
case 1:
printf(\请输入要查询的宿舍的房间号:\\n\); scanf(\,s1); for(i=0;i if(strcmp(stu[i].room,s1)==0) { flag=1; printf(\房间号 宿舍长 楼号 宿舍面积 房间容纳人数 \\n\); printf(\-\\n\); printf(\,stu[i].room,stu[i].dormitoryleader,stu[i].dormitory, stu[i].area,stu[i].hold); printf(\*\\n\); printf(\宿舍成员 手机号 居住人数\\n\); printf(\-\\n\); printf(\,stu[i].member,stu[i].tel,stu[i].livenumber); } if(flag==0) printf(\该房间号不存在!\\n\); break; case 2: printf(\请输入要查询的宿舍的宿舍长:\\n\); scanf(\,s1); for(i=0;i if(strcmp(stu[i].dormitoryleader,s1)==0) { flag=1; printf(\房间号 宿舍长 楼号 宿舍面积 房间容纳人数 \\n\); printf(\-\\n\); printf(\,stu[i].room,stu[i].dormitoryleader,stu[i].dormitory, stu[i].area,stu[i].hold); printf(\*\\n\); printf(\宿舍成员 手机号 居住人数\\n\); printf(\-\\n\); printf(\,stu[i].member,stu[i].tel,stu[i].livenumber); } if(flag==0) printf(\该宿舍长不存在!\\n\); break; case 3:return; default:printf(\请在1-3之间选择\\n\); 17 } } } void modify() /*修改信息*/ { int i,item,num; char area1[3],s1[LEN+1],s2[LEN+1]; /* 以宿舍长和房间号最长长度+1为准 */ printf(\请输入要修改的宿舍的房间号:\\n\); scanf(\,s1); for(i=0;i if(strcmp(stu[i].room,s1)==0) /*比较字符串是否相等*/ num=i; printf(\); printf(\修改宿舍长\\n\); printf(\修改楼号\\n\); printf(\修改宿舍面积\\n\); printf(\修改房间容纳人数\\n\); printf(\修改宿舍成员\\n\); printf(\修改手机号号码\\n\); printf(\修改居住人数\\n\); printf(\退出本菜单\\n\); printf(\); while(1) { printf(\请选择子菜单编号:\); scanf(\,&item); switch(item) { case 1: printf(\请输入新的宿舍长:\\n\); scanf(\,s2); strcpy(stu[num].dormitoryleader,s2); break; case 2: printf(\请输入新的楼号:\\n\); scanf(\,&stu[num].dormitory);break; case 3: printf(\请输入新的宿舍面积:\\n\); scanf(\,area1); strcpy(stu[num].area,area1); break; case 4: printf(\请输入新的房间容纳人数:\\n\); scanf(\,s2); strcpy(stu[num].hold,s2); break; case 5: 18 printf(\请输入新的宿舍成员:\\n\); scanf(\,s2); strcpy(stu[num].member,s2); break; case 6: printf(\请输入新的手机号号码:\\n\); scanf(\,s2); strcpy(stu[num].tel,s2); break; case 7: printf(\请输入新的居住人数:\\n\); scanf(\,s2); strcpy(stu[num].livenumber,s2); break; case 8:return; default:printf(\请在1-8之间选择\\n\); } } } void sort()/*按居住人数排序*/ { int i,j,*p,*q,s; char temp[100]; for(i=0;i for(j=n-1;j>i;j--) if(strcmp(stu[j-1].livenumber,stu[j].livenumber)>0) { strcpy(temp,stu[j-1].room); strcpy(stu[j-1].room,stu[j].room); strcpy(stu[j].room,temp); strcpy(temp,stu[j-1].dormitoryleader); strcpy(stu[j-1].dormitoryleader,stu[j].dormitoryleader); strcpy(stu[j].dormitoryleader,temp); strcpy(temp,stu[j-1].area); strcpy(stu[j-1].area,stu[j].area); strcpy(stu[j].area,temp); strcpy(temp,stu[j-1].hold); strcpy(stu[j-1].hold,stu[j].hold); strcpy(stu[j].hold,temp); strcpy(temp,stu[j-1].member); strcpy(stu[j-1].member,stu[j].member); strcpy(stu[j].member,temp); strcpy(temp,stu[j-1].tel); strcpy(stu[j-1].tel,stu[j].tel); strcpy(stu[j].tel,temp); strcpy(temp,stu[j-1].livenumber); 19 strcpy(stu[j-1].livenumber,stu[j].livenumber); strcpy(stu[j].livenumber,temp); p=&stu[j-1].dormitory; q=&stu[j].dormitory; s=*q; *q=*p; *p=s; } } } void insert() /*插入函数*/ { int i=n,j,flag; printf(\请输入待增加的宿舍数:\\n\); scanf(\,&m); do { flag=1; while(flag) { flag=0; printf(\请输入第 %d 个宿舍的房间号:\\n\,i+1); scanf(\,stu[i].room); for(j=0;j if(strcmp(stu[i].room,stu[j].room)==0) { printf(\已有该房间号,请检查后重新录入!\\n\); flag=1; break; /*如有重复立即退出该层循环,提高判断速度*/ } } printf(\请输入第 %d 个宿舍的宿舍长:\\n\,i+1); scanf(\,stu[i].dormitoryleader); printf(\请输入第 %d 个宿舍的楼号:\\n\,i+1); scanf(\,&stu[i].dormitory); printf(\请输入第 %d 个宿舍的宿舍宿舍面积(m^2):\\n\,i+1); scanf(\,stu[i].area); printf(\请输入第 %d 个宿舍的房间容纳人数:\\n\,i+1); scanf(\,stu[i].hold); printf(\请输入第 %d 个宿舍的宿舍成员(注:人员之间加/):\\n\,i+1); scanf(\,stu[i].member); printf(\请输入第 %d 个宿舍的手机号:\\n\,i+1); scanf(\,stu[i].tel); printf(\请输入第 %d 个宿舍的居住人数:\\n\,i+1); 20