修改函数如何修改单个函数,求帮助。

#include "stdio.h"
#include "string.h"
#include "stdlib.h"
typedef struct student
{ char qinshi[15];
  char chuangwei[10];
  char name[20];
  char phone[12];
  long num;
}STU;
void shuru()
{ int i,n,m,s;
  STU a;
  FILE *fp;
  fp=fopen("D:\\学生宿舍系统.dat","wb");
  if(fp==NULL)
  { printf("!");return;}
  system("cls");
printf("\t\t\t请输入管理密码!");
    scanf("%d",&s);
    if(s!=0)
    {printf("管理密码错误!\n");
    return;
    }
    else
    printf("录入的个数是: ");
  scanf("%d",&n);
  for(i=0;i<n;i++)
  {    printf("\t寝室号:");
       scanf("%s",a.qinshi);
       printf("\t床  位:");
       scanf("%s",a.chuangwei);
       printf("\t姓  名:");
       scanf("%s",a.name);
       printf("\t手机号:");
       scanf("%s",a.phone);
           m=strlen(a.phone);
       if(m!=11) 
       {printf("手机号出现错误!\n"); break;}
       printf("\t学  号:");
       scanf("%ld",&a.num);
    fwrite(&a,sizeof(STU),1,fp);
  }
   fclose(fp);
}
void zhuijia()
 {
    int i,n,m;
    STU a;
    FILE *fp;
    system("cls");
    if((fp=fopen("D:\\学生宿舍系统.dat","ab"))==NULL)
    {printf("error!\n");exit(0);}
    printf("\n\n\t请输入追加人数:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
 {
    printf("\t寝室号:");
    scanf("%s",a.qinshi);
    printf("\t床位:");
    scanf("%s",a.chuangwei);
    printf("\t姓名:");
    scanf("%s",a.name);
    printf("\t手机号:");
    scanf("%s",a.phone);
        m=strlen(a.phone);
       if(m!=11) 
       {printf("手机号出现错误!\n"); break;}
    printf("\t学号:");
    scanf("%ld",&a.num);
    fwrite(&a,sizeof(STU),1,fp);
 }
  fclose(fp);
}
void xianshi()
{STU a;
FILE*fp;
system("cls");
if((fp=fopen("D:\\学生宿舍系统.dat","rb"))==NULL)
{printf("error!\n");exit(0);}
   rewind(fp);
   printf("寝室号\t床位\t姓名\t手机号      \t学号\n");
while(fread(&a,sizeof(STU),1,fp)!=0)
   printf("%s\t%s\t%s\t%s\t%ld\n",a.qinshi,a.chuangwei,a.name,a.phone,a.num);
fclose(fp);
}
void chaxunbyname()
{
    int f=0;
    char na[20];
    STU a;
    FILE *fp;
    fp=fopen("D:\\学生宿舍系统.dat","rb");
    if(fp==NULL)
    {printf("无法打开!\n");exit(1);}
    printf("请输入要查找姓名:");
    scanf("%s",na);
    while(fread(&a,sizeof(STU),1,fp)!=0)
    if(strcmp(na,a.name)==0)
{
    printf("寝室号\t床位\t姓名\t手机号      \t学号\n");
    printf("%s\t%s\t%s\t%s\t%ld\n",a.qinshi,a.chuangwei,a.name,a.phone,a.num);
    f=1;
}
    if(f==0) printf("没有该学生信息。\n");
    fclose(fp);
}
void chaxunbyxuehao()
{ int f=0,x;
  STU a;
      FILE *fp;
      fp=fopen("D:\\学生宿舍系统.dat","rb");
      if(fp==NULL)
      {printf("打开失败!\n");exit(1);}
      printf("请输入要查询的学号:  ");
      scanf("%d",&x);
      while(fread(&a,sizeof(STU),1,fp)!=0)
      if(x==a.num)
      {
      printf("寝室号\t床位\t姓名\t手机号      \t学号\n");
      printf("%s\t%s\t%s\t%s\t%ld\n",a.qinshi,a.chuangwei,a.name,a.phone,a.num);
      f=1;
      }
  if(f==0) printf("没有该学生信息。\n");
  fclose(fp);
}

void chaxun()
{    int a;
     system("cls");
     printf("\n\n\t\t你现在已经进入学生宿舍管理系统\n");
     printf("\t\t\t按姓名查询输入1\n");
     printf("\t\t\t按学号查询输入2\n");
     printf("\t\t\t退出输入3\n");
     printf("\t\t\t请输入命令: ");
     scanf("%d",&a);
     switch(a)
     {case 1:chaxunbyname();break;
      case 2:chaxunbyxuehao();break;
      case 3:break; 
     }
}
void shanchu()
{   int s;
    struct student a[10];
    int i=0, n, f=0, k;
    long num;
    FILE *fp;
    printf("\t\t\t请输入管理密码!");
    scanf("%d",&s);
    if(s!=0)
    {printf("管理密码错误!\n");
        return;
    }
     else
    system("cls");
    {
        fp=fopen("D:\\学生宿舍系统.dat","rb");
        if (fp==NULL)
        {printf("打开D:\\学生宿舍系统.dat 失败!\n");
         exit(1);
        }
        fseek(fp,0,2);
        n=ftell(fp)/sizeof(struct student) ;
        rewind(fp);
        printf("输入学号:");
        scanf("%ld",&num);
        for(i=0;i<n;i++)
        fread (&a[i], sizeof (STU) , 1, fp);
        for(i=0;i<n;i++)
        if (num==a[i].num)
        {  printf("按任意键删除");
           f=1;
           k=1;
           break;
        }
        else f=0;
        fclose (fp);
        if(f==0)
        printf("未找到对应学生信息\n");
        else
        {
          for(i=k;i<n-1;i++)
          a[i]=a[i+1];
          n--;
          fp=fopen("D:\\学生宿舍系统.dat","wb");
          if (fp==NULL)
          { printf("打开D:\\学生宿舍系统.dat 失败!\n");
            exit(1);
          }
          for (i=0;i<n;i++)
          fwrite (&a[i], sizeof(struct student),1,fp);
          fclose(fp);
        }
     getchar();getchar();
    }
}
void xiugai()
{   int  s;
    long num;
    int found = 0;
    STU a;
    FILE *fp;
    system("cls");
    printf("\t\t\t请输入管理密码!");
    scanf("%d",&s);
    if(s!=0)
    {printf("管理密码错误!\n");
    return;
    }
    fp = fopen("D:\\学生宿舍系统.dat", "rb+");
    if (fp == NULL)
    {
        printf("打开D:\\学生宿舍系统.dat失败!\n");
        exit(1);
    }
        printf("请输入要修改学生的学号: ");
        scanf("%ld", &num);

    while (fread(&a, sizeof(STU), 1, fp) != 0)
    {
        if (num == a.num)
        {
            printf("找到学生信息,请输入要修改的信息:\n");
            printf("\t寝室号: ");
            scanf("%s", &a.qinshi);
            printf("\t床位: ");
            scanf("%s", &a.chuangwei);
            printf("\t姓名: ");
            scanf("%s", a.name);
            printf("\t手机号: ");
            scanf("%s", a.phone);

            
            fwrite(&a, sizeof(STU), 1, fp);

            found = 1;
            break;
        }
    }
    if (found == 0)
    {
        printf("未找到该学生信息。\n");
    }
    else
    {
        printf("学生信息已成功修改。\n");
    }
    fclose(fp);
}

int main()
{
    int a;
do
{    printf("           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
    printf("            $    ~_~欢迎进入学生宿舍管理系统~_~   $\n");
    printf("            $ *          录入学生信息输入1          * $\n");
    printf("            $ **         显示学生信息输入2         ** $\n");
    printf("            $ ***        查询学生信息输入3        *** $\n");
    printf("            $ ****       追加学生信息输入4       **** $\n");
    printf("            $ *****      删除学生信息输入5      ***** $\n");
    printf("            $ ******     修改学生信息输入6     ****** $\n");
    printf("            $ *******    退 出 系 统 输入7    ******* $\n");
    printf("                   》_《 输  入  命  令 : ");    
    scanf("%d",&a);
    
    switch(a)
    {
    case 1:shuru();break;
    case 2:xianshi();break;
    case 3:chaxun();break;
    case 4:zhuijia();break;
    case 5:shanchu();break;
    case 6:xiugai();break; 
    case 7:exit(0);
    }
}while(a!=0);
return 0;
}