关于学生宿舍管理系统的代码编写(语言-c语言)

题目是基于宿舍号或某个人的姓名查询整个宿舍成员的姓名和电话。现在的情况是我已经敲出了一段代码,但是它不能找到同宿舍人的电话,只能通过名字或者查询电话,所以我想知道要加什么代码?以下是我的代码:

img

 #include
 #include
 #include
 #include
 struct person
 char clas[10];//班级
 char num[20];//手机号
 charname[20];//姓名
 long int id[20];//学号
 char sex[10];//性别
 charaddress[50];//宿舍地址
 1;
 int menuO)
 (
 int choice;
 system("cls");
  printf("\t\t\t\t                                                    -\n");
    printf("t)t)t)t)欢迎使用班级宿舍与电话管理系统I\n");
     printf(\t\t\t\t-                                                   -\n");
    printf("\t)t\t\tl1-新增用户I\n");
    printf("t\t\t\t-                                                   -\n");
     printf("\t)t)t)tl2-删除用户IΛn");
     printf("\t\t\t\t-                                                   --In");
     printf("\t)t\t)tl3-修改用户I\n");
     printf("/t\t\t\t                                                   --n"); 
     printf("\t\t\t\t4-按名字查询用户\n");
                                                                             cSDn
     printf("/t\t\t\t-                                                   --n");
     printf(\t\t\t)tl5-按号码查询用户I\n);
     printf("/t\t\t\t                                                   --\n");
    printf("\t)t)t)tl6-按姓名显示IΛn");
     printf("/t\t\t\t-                                                   -In");
     printf("t)t\t)tl7-按号码显示I\n");
     printf("\t\t\t\t                                                   -In");
     printf("\t)t\t/tl8-显示全部用户\n");
      printf("\t\t\t\t                                                  --In");
    printf("\t\t\t\t9-保存文件\n");
     printf("/t\t\t\t-                                                   --In");
     printf("t)t\t)tl 0-退出程序\n");
     printf("/t\t\t\t-                                                  -\n");
 printf("\t\t\t\t请选择功能:");
 scanf("%d",&choice);
 while(choice>9lchoice<0)//判断是否输入正确
 #include
 #include
 #include
 #include
 struct person
 char clas[10];//班级
 char num[20];//手机号
 charname[20];//姓名
 long int id[20];//学号
 char sex[10];//性别
 charaddress[50];//宿舍地址
 1;
 int menuO)
 (
 int choice;
 system("cls");
  printf("\t\t\t\t                                                    -\n");
    printf("t)t)t)t)欢迎使用班级宿舍与电话管理系统I\n");
     printf(\t\t\t\t-                                                   -\n");
    printf("\t)t\t\tl1-新增用户I\n");
    printf("t\t\t\t-                                                   -\n");
     printf("\t)t)t)tl2-删除用户IΛn");
     printf("\t\t\t\t-                                                   --In");
     printf("\t)t\t)tl3-修改用户I\n");
     printf("/t\t\t\t                                                   --n"); 
     printf("\t\t\t\t4-按名字查询用户\n");
                                                                             cSDn
     printf("/t\t\t\t-                                                   --n");
     printf(\t\t\t)tl5-按号码查询用户I\n);
     printf("/t\t\t\t                                                   --\n");
    printf("\t)t)t)tl6-按姓名显示IΛn");
     printf("/t\t\t\t-                                                   -In");
     printf("t)t\t)tl7-按号码显示I\n");
     printf("\t\t\t\t                                                   -In");
     printf("\t)t\t/tl8-显示全部用户\n");
      printf("\t\t\t\t                                                  --In");
    printf("\t\t\t\t9-保存文件\n");
     printf("/t\t\t\t-                                                   --In");
     printf("t)t\t)tl 0-退出程序\n");
     printf("/t\t\t\t-                                                  -\n");
 printf("\t\t\t\t请选择功能:");
 scanf("%d",&choice);
 while(choice>9lchoice<0)//判断是否输入正确

img

  printf("请重新选择:");
  scanf("%d",&choice);
 return choice;
 intadd_person(structpersonarrl.intn)//添加用户函数
 (
 system("cls");               //清屏
 printf("请输入用户姓名:");
 scanf("%s",arr[n].name);
 printf("请输入用户班级:");
 scanf("%s",arr[n].clas);
 printf("请输入用户手机号:");
 scanf("%s",arr[n].num);
 printf("请输入用户学号:");
 scanf("%s",arr[n].id);
 printf("请输入用户性别:");
 scanf("%s",arr[n].sex);
 printf("请输入用户宿舍地址:");
 scanf("%s",arr[n].address);
 printf("添加成功!\n");
 system("pause");                 ://暂停界面
 return n+1;
 void print_person(struct person arrl,int n)                                                                              cSDn
 (
 int i;
 printf("%-15s%-15s%-15s%-15s%-15s%-15s\n""姓名""班级""手机号""学号"性别"宿舍
 址");
 for(i=0;i
 (
  printf("%-15s",arr[i].name);
  printf("%-15s",arr[i].clas);
  printf("%-15s",arr[i].num)
  printf("%-15s",arr[i].id);
  printf("%-15s",arr[i]l.sex);
  printf("%-15s",arr[il.address)
 int delete_person(struct person arrl,int n)
  printf("请重新选择:");
  scanf("%d",&choice);
 return choice;
 intadd_person(structpersonarrl.intn)//添加用户函数
 (
 system("cls");               //清屏
 printf("请输入用户姓名:");
 scanf("%s",arr[n].name);
 printf("请输入用户班级:");
 scanf("%s",arr[n].clas);
 printf("请输入用户手机号:");
 scanf("%s",arr[n].num);
 printf("请输入用户学号:");
 scanf("%s",arr[n].id);
 printf("请输入用户性别:");
 scanf("%s",arr[n].sex);
 printf("请输入用户宿舍地址:");
 scanf("%s",arr[n].address);
 printf("添加成功!\n");
 system("pause");                 ://暂停界面
 return n+1;
 void print_person(struct person arrl,int n)                                                                              cSDn
 (
 int i;
 printf("%-15s%-15s%-15s%-15s%-15s%-15s\n""姓名""班级""手机号""学号"性别"宿舍
 址");
 for(i=0;i
 (
  printf("%-15s",arr[i].name);
  printf("%-15s",arr[i].clas);
  printf("%-15s",arr[i].num)
  printf("%-15s",arr[i].id);
  printf("%-15s",arr[i]l.sex);
  printf("%-15s",arr[il.address)
 int delete_person(struct person arrl,int n)

img

 (
 int ij;
 char temp[20];
 system("cls");
  printf("请输入要删除的用户:");
 scanf("%s",temp);
 for(i=0;iif(!strcmp(temp,arr[i].name))
  break;
 if(i==n)
 (
  printf("没有该用户!");
   system("pause");
  return n;
 print_person(&arr[i]l,1);
  printf("是否删除Y"or"N":");
 scanf("%s",&temp);
 if(strcmp(temp,"y")==0llstrcmp(temp,"Y")
 (
  for(i=ij删除成功!\n");
 system("pause");
 return n-1;
 printf("取消删除\n")
 system(pause");
 return n;
 void modify-person(struct person arr,int n)
 int i;
 char temp[20];
  struct person arro;                         //临时储存
 system("cls");
 printf("请输入要修改的用户:");
 scanf("%s",temp);
 for(i=0;i
 (
 int ij;
 char temp[20];
 system("cls");
  printf("请输入要删除的用户:");
 scanf("%s",temp);
 for(i=0;iif(!strcmp(temp,arr[i].name))
  break;
 if(i==n)
 (
  printf("没有该用户!");
   system("pause");
  return n;
 print_person(&arr[i]l,1);
  printf("是否删除Y"or"N":");
 scanf("%s",&temp);
 if(strcmp(temp,"y")==0llstrcmp(temp,"Y")
 (
  for(i=ij删除成功!\n");
 system("pause");
 return n-1;
 printf("取消删除\n")
 system(pause");
 return n;
 void modify-person(struct person arr,int n)
 int i;
 char temp[20];
  struct person arro;                         //临时储存
 system("cls");
 printf("请输入要修改的用户:");
 scanf("%s",temp);
 for(i=0;i

img

  if(strcmp(temp,arr[i].name)==0)
  break;
 if(i==n)
  printf("无该用户!");
  system(pause");
  return ;
 print_person(&arr[i],1);
 printf("请输入用户班级:");
 scanf("%s",arr0.clas);
 printf("请输入用户手机号:");
 scanf("%s"arr0.num)
 printf("请输入用户学号:");
 scanf("%s",arr0.id);
 printf("请输入用户性别:");
 scanf("%s",arr0.sex);
 printf("请输入用户宿舍地址:");
 scanf("%s",arrO.address);
 printf("是否确认修改Y/N?:");
 scanf("%s",temp);
 if(strcmp(temp,"y")==0llstrcmp(temp,"Y")==0)
  strcpy(arr0.name,arr[i].name);
  arr[i]=arr0; 
  printf("修改成功!\n");
                                                                                  cSDn
  system("pause");
  return ;
 else
 (
  printf("已取消修改!");
  system("pause");
  return ;
 void search_person_name(struct person arr,int n)
 (
  int i;
  char temp[20];
  system ("cls");
  printf("请输入要查询的用户:");
  scanf("%s",temp);

img

  for(i=0;iif(strcmp(arr[i].name,temp)==0)
   (
   break;
  if(i==n)
  (
    printf("未查找到该用户!\n");
    system("pause");
  return ;
   print_person(&arr[i],1);
   system("pause");
  return;
 }
 void search_person_num(struct person arrint n)
 (
 int i;
 char temp[20];
 system("cls");
 printf("请输入要查询的电话号码:");
 scanf("%s",temp);
 for(i=0;iif(strcmp(arr[i].num,temp)==0)
                                                                                  cSDn
  break;
 if(i==n)
 (
  printf("未查找到该用户!\n");
   system("pause");
    return;
 print_person(&arr[il,1);
 system("pause");
 void sort_person_name(struct person arr,int n)
 (
 int ij;
 struct person temp;
 system("cls");

img

      for (i=0;i6/8 .
      for(j=i+1;jif(strcmp(arr[i].name,arrli]l.name)<0)//小在前
       (
         temp=arr[i];
         arr[]=arr[i];
         arr[i]=temp;
     return;
    void sort_person_num(struct person arr,int n)
    (
     int ij;
     struct person temp;
     system("cls");
     for(i=0;ifor(j=i+1;jif(strcmp(arr[i].num,arrli].num)<0);
       (
         temp=arr[i];
         arr[]=arr[i];
         arr[i]=temp;
                                                                                   csDn
     return;
    void save_file(struct person arrl,int n)
    (
     int i;
     FILE *fp;
     fp=fopen("gjwq.dat","w+");
     if(fp==NULL)
     (
      return;
      for (i=0;i6/8 .
      for(j=i+1;jif(strcmp(arr[i].name,arrli]l.name)<0)//小在前
       (
         temp=arr[i];
         arr[]=arr[i];
         arr[i]=temp;
     return;
    void sort_person_num(struct person arr,int n)
    (
     int ij;
     struct person temp;
     system("cls");
     for(i=0;ifor(j=i+1;jif(strcmp(arr[i].num,arrli].num)<0);
       (
         temp=arr[i];
         arr[]=arr[i];
         arr[i]=temp;
                                                                                   csDn
     return;
    void save_file(struct person arrl,int n)
    (
     int i;
     FILE *fp;
     fp=fopen("gjwq.dat","w+");
     if(fp==NULL)
     (
      return;

img

 for(i=0;i
 (
  fwrite(&arr[il,sizeof(struct person),1,fp);
 fclose(fp);
 int read_file(struct person arr)
 int i=0;
 FILE* fp;
 fp=fopen("gjwq.dat","r+");
 if(fp==NULL)
 (
  return 0;
 while(fread(&arr[i++),sizeof(struct person),1,fp))
 fclose(fp);
 if(i>=1)
 (
  return i-1;
 return 0;
                                                                              cSDn
 int mainO
 (
 system(color 1E");
 SetConsoleTitle("班级宿舍与电话管理系统");
 int choice;
 int num=0;                  //记录结构体数组长度
 structperson per[100];//定义结构体数组
 num=read_file(per);
 do
 (
  choice=menuO;
  switch(choice)
  (
  case 1:
   num=add_person(per,num);//添加num=n
   break;
  case 2:
   delete_person(per,num);//删除

img

  break;
 case 3:
  modify-person(per,num);//修改
  break;
 case 4:
  search_person_name(per,num);//按名字查找
  break;
 case 5:
  search_person_num(pernum);//按号码查找
  break;
 case 6:
  sort_person_name(per,num);//对名字排序
  print_person(per,num);
  system("pause");
  break;
 case 7:
  sort_person_num(per,num);//对号码排序
  print_person(per,num);
  system("pause");
  break;
 case 8:
  system("cls");
  print_person(per,num);
  system("pause");
  break;
 case 9:
  system("cls");
  save_file(per,num);
  printf("保存成功!");
  system("pause");
                                                                                          cSDn
  break;
 case 0:
  printf("\t谢谢使用!\n");
              exit(0);
 while(choice!=0);
 return O;

谢谢各位了。