为什么第二次运行显示员工信息时没有信息

/*******************************************************************************
                   职工工资管理小软件  
*******************************************************************************/
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#define N 20
int NN;
/******************************************************************************
                            函数声明
*******************************************************************************/
void enter();
int  menu();
void input();
void output();
void search();
void search_employeeid();
void search_name();
void edit();
void array();
void array_basesalary();
void array_postwage();
void array_totalwage();
void array_yiliaobaoxian();
void array_gongjijin();
void statistics();
void save();
void load();
void del();
void delE();
void delName();
/******************************************************************************
                         职工类型定义
*******************************************************************************/
struct employee
{
    char  employeeid[10];
    char  name[10];
    int   sex;
    int   age;
    float basesalary;
    float postwage;
    float yiliaobaoxian;
    float gongjijin;
    float totalwage;
};
/******************************************************************************
                         职工变量定义
******************************************************************************/
struct employee emp[N];
struct employee replace;
struct employee *p=emp;
/*****************************************************************************
                        系统主函数
******************************************************************************/
void main()
{
    int c;
    while(1)
    {
        printf("                                                  \n\n\n\n");
        printf("                      欢迎进入职工工资管理系统      \n\n\n");
        printf("                             1 进入管理系统           \n\n");
        printf("                             0 退出                   \n\n");
        printf("                  \n\n\n\n");
        printf("   请输入你选择:                                       \n");
        scanf("%d",&c);
        switch(c)
        {
            case 1:  
                     enter();
                     break;
            case 0:
                     printf("               谢谢使用!\n");
                     exit(0);
        }
    }
}
/*****************************************************************************
 功能:登陆函数,进行密码验证
*****************************************************************************/
void enter()
{ 
    char key[10],password[10]="1";
    int k=1;
    printf("                      请输入密码:                         \n");
    scanf("%s",key);
    while(k<=3)
    {
    if(strcmp(password,key)==0)
    {
        while(1)
        {   
            int a;
            //system("cls");
            a=menu();
            switch(a)
            { 
            case 1:
                     input();break;
            case 2:  
                     output();break;
            case 3:  
                     search();break;
            case 4:
                     edit();break;
            case 5:  
                     array();break;
            case 6:
                     load();statistics();break;
            case 7:
                     del();break;
            case 0:
                     printf("\n\n                         谢谢使用!\n\n\n\n");
                     save();
                     exit(0);
            }
        }
    }
    else
    {
        k++;
        printf("                  输入密码错误!请再次输入:");
        scanf("%s",key);
        if(k>2)
        {   
            if(strcmp(password,key)==0)
                continue;
            else
            {
            printf("              输入密码错误三次,系统将自动退出!\n");
            exit(0);
            }
        }
    }
    }
}
/************************************************************************
功能: 主菜单函数
参数:a 
类型:int
说明: 变量
返回值: a
************************************************************************/
int menu()
{
    int a ;
    printf("\n\n");
    printf("|*****************欢迎进入职工工资管理系统************************|\n");
    printf("|                                                                 |\n");
    printf("|                                                                 |\n");
    printf("|                 1 输入职工信息                                  |\n");
    printf("|                                                                 |\n");
    printf("|                 2 职工信息输出                                  |\n");
    printf("|                                                                 |\n");
    printf("|                 3 职工信息查询                                  |\n");
    printf("|                                                                 |\n");
    printf("|                 4 修改职工信息                                  |\n");
    printf("|                                                                 |\n");
    printf("|                 5 工资排序                                      |\n");
    printf("|                                                                 |\n");
    printf("|                 6 工资统计                                      |\n");
    printf("|                                                                 |\n");
    printf("|                 7 删除职工信息                                  |\n");
    printf("|                                                                 |\n");
    printf("|                 0 退出                                          |\n");
    printf("|                                                                 |\n");
    printf("|                                                                 |\n");
    printf("|****************    ***********************|\n");
    printf("\n\n");
    printf("                  请输入你所选择的选项:");
    scanf("%d",&a);
    while(a>7||a<0)
    {
        printf("               error!\n");
        printf("               请重新输入你所选择的选项:");
        scanf("%d",&a);
    }
    return a;
}
/************************************************************************************
功能:职工信息输入
*************************************************************************************/
void input()
{
    int c;
    p=emp;
    printf("                         进入职工信息输入模块     \n\n\n");
    printf("                         请输入增加职工的数量:   \n\n\n");
    scanf("%d",&NN);
    for(c=0;c<NN;c++,p++)
    {   
        p[c].totalwage=p[c].basesalary+p[c].postwage-p[c].yiliaobaoxian-p[c].gongjijin;
        printf("     请输入第%d个职工信息:\n\n",c+1);
        printf("     请输入职工号:\n");
        scanf("%s",p->employeeid);
        if(strcmp(p->employeeid,"0")!=0) 
        {
        printf("     请输入职工姓名:\n");
        scanf("%s",p->name);
        printf("     请输入职工性别: \n");
        scanf("%d",&p->sex);
        printf("     请输入职工年龄: \n");
        scanf("%d",&p->age);
        printf("     请输入职工基本工资:\n");
        scanf("%f",&p->basesalary);
        printf("     请输入职工岗位工资:\n");
        scanf("%f",&p->postwage);
        printf("     请输入职工医疗保险:\n");
        scanf("%f",&p->yiliaobaoxian);
        printf("     请输入职工公积金:  \n");
        scanf("%f",&p->gongjijin);
        printf("      职工信息输入完成!    \n\n");
        }
        else
            return;
    }
    save();
}
/*******************************************************************************
功能:职工信息输出
********************************************************************************/
void output()
{   
    int j;
    load();
    p=emp;
    printf("                           进入职工信息输出模块      \n\n\n");
    printf("--------------------------------------------------------------------------------\n");
    printf("|职工号  |姓名   |性别 |年龄 |基本工资  |岗位工资  |医疗保险  |公积金  |总工资 |\n");
    printf("--------------------------------------------------------------------------------\n");
    for(j=0;j<NN;j++)
    {
    p[j].totalwage=p[j].postwage+p[j].basesalary-p[j].yiliaobaoxian-p[j].gongjijin;;
    printf("|%8s|%7s|%5d|%5d|   %7.2f|   %7.2f|   %7.2f| %7.2f|%7.2f|\n",p[j].employeeid,p[j].name,p[j].sex,
        p[j].age,p[j].basesalary,p[j].postwage,p[j].yiliaobaoxian,p[j].gongjijin,p[j].totalwage);
    printf("-------------------------------------------------------------------------------\n");
    }
    printf("\n\n          职工信息输出完成!       \n\n");
    getchar();
}
/******************************************************************************功能:职工信息查询
******************************************************************************/
void search()
{
    int j;
    while(1)
    {   
        printf("*********************职工信息查询*********************\n\n\n");
        printf("                    1 按职工号查询                        \n");
        printf("                    2 按职工姓名查询                      \n");
        printf("                    0 退出该项操作                        \n");
        printf("\n\n");
        while(1)
        {
            printf("               请输入你的选择       \n");
            scanf("%d",&j);
            if(j>=0&&j<=2)
            {
                switch(j)
                {
                case 1:
                    search_employeeid();break;
                case 2:
                    search_name();break;
                case 0:
                    return;
                }
            }
            else
            {
                printf("                输入错误!      \n\n");
                printf("                请再次输入你的选择:               \n\n");
            }
            }
        }
    }
/*******************************************************************************
功能:按职工号查询函数
*******************************************************************************/
void search_employeeid()
{
    char employeeid[10];
    int k,j;
    p=emp;
    printf("*********************按职工号查询职工信息*****************************\n\n\n\n");
    printf("        请输入要查询职工的职工号:                                        \n\n");
    scanf("%s",employeeid);
    for(k=0;k<NN;k++)
    {
        if(strcmp(employeeid,p->employeeid)==0)
        {
            j=k;
            p[j].totalwage=p[j].postwage+p[j].basesalary-p[j].yiliaobaoxian-p[j].gongjijin;;    
    printf("--------------------------------------------------------------------------------\n");
    printf("|职工号  |姓名   |性别 |年龄 |基本工资  |岗位工资  |医疗保险  |公积金  |总工资 |\n");
    printf("|%8s|%7s|%5d|%5d|   %7.2f|   %7.2f|   %7.2f| %7.2f|%7.2f|\n",p[j].employeeid,p[j].name,p[j].sex,
        p[j].age,p[j].basesalary,p[j].postwage,p[j].yiliaobaoxian,p[j].gongjijin,p[j].totalwage);
    printf("--------------------------------------------------------------------------------\n");
    break;
        }
        else
    {
        printf("                    not found\n");
        return;
    }
    }
}
/*****************************************************************************
功能:按职工姓名查询函数
*****************************************************************************/
void search_name()
{
    char name[10];
    int flog=0;
    int f,j;
    p=emp;
    printf("******************************按职工姓名查询职工信息***********************\n\n\n");
    printf("                              请输入要查询职工的姓名:                       \n\n");
    scanf("%s",name);
    for(f=0;f<NN;f++,p++)
    {
        if(strcmp(name,p->name)==0)
        {
            j=f;
            p[j].totalwage=p[j].postwage+p[j].basesalary-p[j].yiliaobaoxian-p[j].gongjijin;;
    printf("--------------------------------------------------------------------------------\n");
    printf("|职工号  |姓名   |性别 |年龄 |基本工资  |岗位工资  |医疗保险  |公积金  |总工资 |\n");
    printf("|%8s|%7s|%5d|%5d|   %7.2f|   %7.2f|   %7.2f| %7.2f|%7.2f|\n",p[j].employeeid,p[j].name,p[j].sex,
        p[j].age,p[j].basesalary,p[j].postwage,p[j].yiliaobaoxian,p[j].gongjijin,p[j].totalwage);
    printf("--------------------------------------------------------------------------------\n");
    break;
        }
    else
    {
        printf("                not  found \n\n");
        return;
    }
    }
    getchar();
}
/*******************************************************************************
功能:职工信息修改函数
*******************************************************************************/
void edit()
{
    char e[10];
    int g=0,j;
    char flog;
    p=emp;
    printf("                         请输入你要修改职工的职工号:       \n");
    scanf("%s",e);
    for(g=0;g<NN;g++)
    {   
    //    if(*e==p[g].employeeid)
        if(strcmp(e,p->employeeid)==0)
        {
             j=g;
             p[j].totalwage=p[j].postwage+p[j].basesalary-p[j].yiliaobaoxian-p[j].gongjijin;
            printf("--------------------------------------------------------------------------------\n");
            printf("|职工号  |姓名   |性别 |年龄 |基本工资  |岗位工资  |医疗保险  |公积金  |总工资 |\n");
            printf("|%8s|%7s|%5d|%5d|   %7.2f|   %7.2f|   %7.2f| %7.2f|%7.2f|\n",p[j].employeeid,p[j].name,p[j].sex,
        p[j].age,p[j].basesalary,p[j].postwage,p[j].yiliaobaoxian,p[j].gongjijin,p[j].totalwage);
            printf("--------------------------------------------------------------------------------\n");    
             printf("         是否要修改该职工信息?y(是)or n(否)?\n\n");
             getchar();
             scanf("%c",&flog);
             if(flog == 'y')
             {
               printf("              请输入新姓名:\n");
               scanf("%s",p->name);
               printf("              请输入性别:  \n");
               scanf("%d",&p->sex);
               printf("              请输入年龄:  \n");
               scanf("%d",&p->age);
               printf("              请输入基本工资:\n");
               scanf("%f",&p->basesalary);
               printf("              请输入岗位工资:\n");
               scanf("%f",&p->postwage);
               printf("              请输入职工医疗保险:\n");
               scanf("%f",&p->yiliaobaoxian);
               printf("              请输入职工公积金:  \n");
               scanf("%f",&p->gongjijin);
               printf("                   修改职工信息成功!   \n\n");
             }
            if(flog == 'n')
            {
            printf("             退出该项操作!      \n\n");
            return;
            }
        save();    
    }
    if(g==NN)
    {
        printf("                    not found   \n\n\n");
        return;
    }
}
}
/************************************************************************
功能:职工工资排列函数
************************************************************************/
void array()
{
    int j;
    while(1)
    {
        printf("*************************工资排序*********************\n\n");
        printf("                        1 按基本工资排序              \n\n");
        printf("                        2 按岗位工资排序              \n\n");
        printf("                        3 按总工资排序                \n\n");
        printf("                        4 按医疗保险排序              \n\n");
        printf("                        5 按公积金排序                \n\n");
        printf("                        0 退出                        \n\n");
        printf("\n\n\n");
        while(1)
        {
         printf("                         请输入你的选择:            \n\n");
         scanf("%d",&j);
         if(j>=0&&j<=5)
         {
             switch(j)
             {
             case 1:
                 array_basesalary();break;
             case 2:
                 array_postwage();break;
             case 3:
                 array_totalwage();break;
             case 4:
                 array_yiliaobaoxian();break;
             case 5:
                 array_gongjijin();break;
             case 0:
                 return;
             }
         }
         else
         {
             printf("                输入错误!\n\n\n");
             printf("                请再次输入你的选择:\n\n");
         }
        }
    }
}
/**************************************************************************
功能:按基本工资排列(选择法)
***************************************************************************/
void array_basesalary()
{
    int i,j,k;
    p=emp;
    for(i=0;i<NN-1;i++)
    {
        k=i;
        for(j=i+1;j<NN;j++)
        {
            if(p[k].basesalary<p[j].basesalary)
            k=j;
        }
        if(k!=i)
        {   
            replace=emp[k];
            emp[k]=emp[i];
            emp[i]=replace;
        }
    }
    for(j=0;j<NN;j++)
    {
    p[j].totalwage=p[j].postwage+p[j].basesalary-p[j].yiliaobaoxian-p[j].gongjijin;
    printf("--------------------------------------------------------------------------------\n");
    printf("|职工号  |姓名   |性别 |年龄 |基本工资  |岗位工资  |医疗保险  |公积金  |总工资 |\n");
    printf("|%8s|%7s|%5d|%5d|   %7.2f|   %7.2f|   %7.2f| %7.2f|%7.2f|\n",p[j].employeeid,p[j].name,p[j].sex,
        p[j].age,p[j].basesalary,p[j].postwage,p[j].yiliaobaoxian,p[j].gongjijin,p[j].totalwage);
    }
    printf("--------------------------------------------------------------------------------\n");
}
/************************************************************************
功能:按岗位工资排列(冒泡法)
*************************************************************************/
void array_postwage()
{
    int i,j;
    p=emp;
    for(i=0;i<NN;i++)
    {
        for(j=0;j<NN-i;j++)
        {
          if(p[j].postwage<p[j+1].postwage)
          {
            replace=emp[j];
            emp[j]=emp[j+1];
            emp[j+1]=replace;
          }
        }
    }
        for(j=0;j<NN;j++)
    {
    p[j].totalwage=p[j].postwage+p[j].basesalary-p[j].yiliaobaoxian-p[j].gongjijin;
    printf("--------------------------------------------------------------------------------\n");
    printf("|职工号  |姓名   |性别 |年龄 |基本工资  |岗位工资  |医疗保险  |公积金  |总工资 |\n");
   printf("|%8s|%7s|%5d|%5d|   %7.2f|   %7.2f|   %7.2f| %7.2f|%7.2f|\n",p[j].employeeid,p[j].name,p[j].sex,
        p[j].age,p[j].basesalary,p[j].postwage,p[j].yiliaobaoxian,p[j].gongjijin,p[j].totalwage);
    }
    printf("--------------------------------------------------------------------------------\n");
}
/************************************************************************
功能:按医疗保险排列(冒泡法)
************************************************************************/
void array_yiliaobaoxian()
{
    int i,j;
    p=emp;
    for(i=0;i<NN;i++)
    {
        for(j=0;j<NN-i;j++)
        {
          if(p[j].yiliaobaoxian<p[j+1].yiliaobaoxian)
          {
            replace=emp[j];
            emp[j]=emp[j+1];
            emp[j+1]=replace;
          }
        }
    }
        for(j=0;j<NN;j++)
    {
    p[j].totalwage=p[j].postwage+p[j].basesalary-p[j].yiliaobaoxian-p[j].gongjijin;
    printf("--------------------------------------------------------------------------------\n");
    printf("|职工号  |姓名   |性别 |年龄 |基本工资  |岗位工资  |医疗保险  |公积金  |总工资 |\n");
    printf("|%8s|%7s|%5d|%5d|   %7.2f|   %7.2f|   %7.2f| %7.2f|%7.2f|\n",p[j].employeeid,p[j].name,p[j].sex,
        p[j].age,p[j].basesalary,p[j].postwage,p[j].yiliaobaoxian,p[j].gongjijin,p[j].totalwage);
    }
    printf("--------------------------------------------------------------------------------\n");
}
/************************************************************************
功能:按公积金排列(选择法)
************************************************************************/
void array_gongjijin()
{
    int i,j,k;
    p=emp;
    for(i=0;i<NN-1;i++)
    {
        k=i;
        for(j=i+1;j<NN;j++)
        {
            if(p[k].gongjijin<p[j].gongjijin)
            k=j;
        }
        if(k!=i)
        {   
            replace=emp[k];
            emp[k]=emp[i];
            emp[i]=replace;
        }
    }
    for(j=0;j<NN;j++)
    {
    p[j].totalwage=p[j].postwage+p[j].basesalary-p[j].yiliaobaoxian-p[j].gongjijin;
    printf("--------------------------------------------------------------------------------\n");
    printf("|职工号  |姓名   |性别 |年龄 |基本工资  |岗位工资  |医疗保险  |公积金  |总工资 |\n");
    printf("|%8s|%7s|%5d|%5d|   %7.2f|   %7.2f|   %7.2f| %7.2f|%7.2f|\n",p[j].employeeid,p[j].name,p[j].sex,
        p[j].age,p[j].basesalary,p[j].postwage,p[j].yiliaobaoxian,p[j].gongjijin,p[j].totalwage);
    }
    printf("--------------------------------------------------------------------------------\n");
}
/************************************************************************
功能:按总工资排列(插入法)
************************************************************************/
void array_totalwage()
{ 
    int i,j;
    p=emp;
    for(i=1;i<NN;i++)
    {
        replace=emp[i];
        for(j=i-1;j>=0&&p[i].totalwage>p[i].totalwage;j--)
        {
            emp[j+1]=emp[j];
            emp[j+1]=replace;
        }
    }
        for(j=NN-1;j>=0;j--)
    {
    p[j].totalwage=p[j].postwage+p[j].basesalary-p[j].yiliaobaoxian-p[j].gongjijin;;
    printf("--------------------------------------------------------------------------------\n");
    printf("|职工号  |姓名   |性别 |年龄 |基本工资  |岗位工资  |医疗保险  |公积金  |总工资 |\n");
    printf("|%8s|%7s|%5d|%5d|   %7.2f|   %7.2f|   %7.2f| %7.2f|%7.2f|\n",p[j].employeeid,p[j].name,p[j].sex,
        p[j].age,p[j].basesalary,p[j].postwage,p[j].yiliaobaoxian,p[j].gongjijin,p[j].totalwage);
    }
    printf("--------------------------------------------------------------------------------\n");
}
/*************************************************************************
功能:工资统计函数
**************************************************************************/
void statistics()
{
    int z,a=0,b=0,c=0;
    p=emp;
    for(z=0;z<NN;z++)
    {
    if(p[z].totalwage>3000)
    {
        a++;
        continue;
    }
    if(p[z].totalwage>=2000&&p[z].totalwage<=3000)
    {
        b++;
        continue;
    }
    if(p[z].totalwage<=2000&&p[z].totalwage>0)
    {
        c++;
        continue;
    }
    }
    printf("        总工资在3000元以上的职工人数有:    %d\n\n",a);
    printf("        总工资在2000元至3000元的职工人数有:%d\n\n",b);
    printf("        总工资在2000元以下的职工人数有:    %d\n\n",c);
    getchar();
}
/***************************************************************************
功能:导出函数
***************************************************************************/
void save()
{
    int k;
    FILE *fp;
    p=emp;
    if((fp=fopen("emp_list","wb"))==NULL)
    {
        printf("              Create file error!\n");
        return;
    }
    for(k=0;k<NN;k++,p++)
    {
    if(fwrite(p,sizeof(struct employee),1,fp)!=1)
    {
        printf("        file save error!\n\n");
        break;
    }
    else 
        continue;
    }
    getchar();
    fclose(fp);
}
/***********************************************************************
功能:导入函数
***********************************************************************/
void load()
{ 
    int l;
    FILE *fp;
    p=emp;
    if((fp=fopen("emp_list","rb"))==NULL)
    {
        printf("              Create file error!\n");
        exit(0);
    }
    for(l=0;l<NN;l++,p++)
    {
    if(fread(p,sizeof(struct employee),1,fp)!=1)
    {
        printf("        file read error!\n\n");
        break;
    }
    else
        continue;
    }
    getchar();
    fclose(fp);
}
/***********************************************************************
功能:删除函数
***********************************************************************/
void del()
{
int in;   
while(1)
{
  printf("                            ************************\n");
  printf("                            |    1.按职工号码删除  |\n");
  printf("                            |                      |\n");
  printf("                            |    2.职工按姓名删除  |\n");
  printf("                            |                      |\n");
  printf("                            |    3.返回上一级菜单  |\n");
  printf("                            ************************\n");
  printf("                               请在1~3之间选择: ");
  scanf("%d",&in);
  if(in<1 || in>3)
  {
   printf("\a输入有误,请重新输入!\n");
   continue;
  }
  else
   break;
}
switch(in)
{
  case 1:
   delE();
   break;
  case 2:
   delName();
   break;
  case 3:
   break;
}
}
/* 删除函数,按职工号码删除*/
void delE()
{ 
 char employeeid[10];
  char ch;
  int t,i,j;
  p=emp;
  printf("\n--------------------    请输入要删除的职工的姓名   ------------------------");
  printf("\n输入: ");
     scanf("%s",employeeid);
     for(i=0;i<NN;i++)
     {
   if((strcmp(employeeid,p[i].employeeid))==0)
   {
   t=i;
   printf("--------------------------------------------------------------------------------\n");
   printf("|职工号  |姓名   |性别 |年龄 |基本工资  |岗位工资  |医疗保险  |公积金  |总工资 |\n");
   printf("|%8s|%7s|%5d|%5d|   %7.2f|   %7.2f|   %7.2f| %7.2f|%7.2f|\n",p[t].employeeid,p[t].name,p[t].sex,
   p[t].age,p[t].basesalary,p[t].postwage,p[t].yiliaobaoxian,p[t].gongjijin,p[t].totalwage);
   printf("--------------------------------------------------------------------------------\n");
   printf("\n确定要删除吗?(Y / N)");
   scanf(" %c",&ch);
   printf("\n");
   if(ch=='y' || ch=='Y')
   {
    for(j=i;j<NN-1;j++)
    {
     p[j]=p[j+1];
    }
     system("cls");
    printf("\n\n\n\n\n\t\t\t删除成功\n");
    printf("\n\n\n按任意键继续操作:");
    getchar();getchar();   
    NN--;
    break; 
   }
   }
      }
}
/* 删除函数,按职工姓名删除*/
void delName()
{ 
 char name[10];
  char ch;
  int t,i,j;
  p=emp;
  printf("\n--------------------    请输入要删除的职工的姓名   ------------------------");
  printf("\n输入: ");
     scanf("%s",name);
     for(i=0;i<NN;i++)
     {
   if((strcmp(name,p[i].name))==0)
   {
   t=i;
   printf("--------------------------------------------------------------------------------\n");
   printf("|职工号  |姓名   |性别 |年龄 |基本工资  |岗位工资  |医疗保险  |公积金  |总工资 |\n");
   printf("|%8s|%7s|%5d|%5d|   %7.2f|   %7.2f|   %7.2f| %7.2f|%7.2f|\n",p[t].employeeid,p[t].name,p[t].sex,
   p[t].age,p[t].basesalary,p[t].postwage,p[t].yiliaobaoxian,p[t].gongjijin,p[t].totalwage);
   printf("--------------------------------------------------------------------------------\n");
   printf("\n确定要删除吗?(Y / N)");
   scanf(" %c",&ch);
   printf("\n");
   if(ch=='y' || ch=='Y')
   {
    for(j=i;j<NN-1;j++)
    {
     p[j]=p[j+1];
    }
     system("cls");
    printf("\n\n\n\n\n\t\t\t删除成功\n");
    printf("\n\n\n按任意键继续操作:");
    getchar();getchar();   
    NN--;
    break; 
   }
   }
      }
}



文件应该没写进去吧
fopen("emp_list.txt", "wb")
fopen("emp_list.txt", "rb");
而且程序有bug,输完第一个后,第二个没让我输入职工号

img