程序设计职工管理系统

2023-11-16

需求分析

1.1 设计系统的目的分析

本系统要求用 C 语言建立一个职工信息管理系统,本职工信息管理系统可以实现对众多员工信息的管理包含职工信息进行添加查询删除、修改

1.2系统的界面要求 

按任意键便可以进入主菜单,在主菜单上显示出该系统的功能,通过输入数字 0 到 6 来进行选择便可以实现用户所需要的功能,每个模块进入模块内部实现系统的具体功能,实现用户所需要的功能

1.3主体功能分析 

该系统用下面六个功能模块编写,每个模块执行不同的功能,体现了模块化

设计的思想。下面六个模块都是利用 C 语言文件文件操作,向文件中添加数据、修改数据查询数据、删除数据和保存数据。

1.3.1创建、读取和写入文件 

   判断是否有存储信息用的文本文件,若无则提示需建立一个文件

fopen()建立一个文本文件,然后向其中写入数据(例如,向文件中输

“职工号”,“姓名”,“性别”“年龄”“学历”,“工资”址”,“电话”),并对文件进行命名为a.txt

1.3.2 添加职工信息 

通过键盘输入职工人员的职工号、姓名、性别、年龄、职务电话号码、地址信息便可添加到通讯录文件内,添加完毕后,系统会自动询问你是否继续添加,如你想继续添加,再通过键盘输入通讯录人员的姓名、电话号码、地址信息即可实现继续添加。

通过调用add()函数来添加职工信息,可以连续添加多个职工信息。

1.3.3 显示职工信息 

通过前面第一个模块添加职工信息后,之后便可以执行第二个模块,通过第二个模块可以对已有的职工信息进行显示。

通过调用 browser()函数来进行显示所有的职工信息browser()函数可以实现显示全部职工信息

1.3.4 查询职工信息 

调用search()函数来实现查询功能。查询可由四个方式进行:一是根据职工号进行查询,二是根据姓名进行查询。

1.3.5 删除职工信息

调用_delete()函数实现删除功能,删除可由两个方式进行:一是根据职工号进行删除,二是根据姓名进行删除。

1.3.6修改职工信息 

调用 modify()函数来实现修改功能,提供了修改方法为根据职工号进行修改。

1.4 设计要求分析 

①根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,

撰写课程设计报告。

②进一步理解和运用结构化程序设计的思想和方法;

③掌握开发一个小型实用系统的基本方法;  

④学会利用流程图表示算法。

⑤学会调试一个较长程序的基本方法进一步掌握利用 C 语言进行程序设计的能力;

1.5软件的数据结构分析 

1.5.1 软件的函数 

本软件采用了不同的函数来进行定义不同模块的功能,通过调用不同的函数,可以实现不同的功能。软件中采用了五个主体函数来实现添加职工,修改职工,查找职工,显示职工,删除职工的功能。

1.5.2 文件的调用和保存 

系统通过文本方式对用户所添加的信息进行保存。通过保存下来的文本文件用户可以在电脑磁盘中找到用户存入文件,进而可以找到用户所录入的职工信息。


 概要设计

2.1 系统界面设计

做到整洁清楚,能够层层选择进行具体的操作,对用户的请求能够进行合适的反馈。既有输入界面,又有输出界面,每个界面都有详细的指引。

2.2 系统的数据(结构)设计 

系统通过调用不同的函数来实现不同的功能,通过循环调用函数来实现反复输入,实现用户不同的需求。

用户通过代码中的scanf()函数从键盘上输入不同的数字选项,然后通过 swtich case()分支条件语句来实现对不同函数的调用,满足各种需求。

2.2.1 系统的文件功能

系统采用了文本文档进行存取,在 C 盘建立了一个a.txt 文本文档用于存放用户输入的职工信息,打开 C 盘后就能直接看到用户录入的信息,做到简洁和方便。

2.3 系统的模块图 

系统的模块图很直观的反映出软件能够实现的功能,由下面的模块图可以很

直观的看出该职工信息管理系统的添加职工信息、显示职工信息、删除职工信息、修改职工信息功能。

  1. 增加职工信息部分,有九个模块,一步步完善职工信息。
  2. 在显示联系人部分,直接显示所有职工信息。
  3. 查询职工信息部分,有四个模块,可通过按工号查询,按姓名查询,按学历查询,按职务查询,然后显示职工信息。
  4. 在修改职工信息部分,输入要修改的职工的工号,然后根据需要,修改职工的姓名,学历,职务,工资,住址,电话。
  5. 在删除职工信息模块,输入要删除的职工的工号,即可完成删除。
  6. 最后是退出模块,需要保存信息后退出。异常退出可能会导致数据丢失

 

图1系统模块图

2.4 系统的流程图 

由于系统流程图较为复杂,采用了分块画出程序流程图。

2.4.1 添加职工信息程序流程图

由添加职工的程序流程图可以看出,在添加职工板块上,有三种信息:

输入工号,姓名,性别,年龄,学历,职务,工资,住址,电话;输入完成后会提示是否继续输入,如果输入Y则继续输入,输入N后返回主菜单。

 

图2添加职工信息流程图

2.4.2 显示职工信息程序流程图

在主菜单上输入 2 后便可以显示职工信息。

 

图3显示职工信息流程图

2.4.3 查询职工流程图

在删除联系人流程图上,分为全部删除和单个删除功能,单个删除设计了按

照姓名删除和按电话号码删除两种选择,在删除时,系统都会询问您是否删除,

以免误删。

 

图4查询职工流程图

2.4.3 修改职工信息流程图

修改联系人界面,输入输入需修改的职工的工号即可。

修改项目:修改姓名,修改学历,修改职务,修改工资,修改地址,修改完毕后系统会提示您是否继续 ,输入Y修改,如不修改,则输入N又返回主界面等待输入。

 

图5修改职工信息流程图

 

 


详细设计

3.1 函数声明 

void read();//读取信息函数
void write();//写入信息函数
void menu();//菜单函数
void add();//添加职工信息函数
void show(int id);//显示职工信息函数
void browser();//显示所有职工信息函数
void search();//查询职工信息函数
void modify();//修改职工信息函数
void _delete();//删除职工信息函数

3.2 读取信息函数

void read()//读入数据
{
  FILE *fp;
  int i = 0;
  if( (fp = fopen("c:\\a.txt","r")) == NULL )
  {
    printf("请新建一个文本文件,文件名为a\n\n\n");
    system("pause");
    system("cls");
    return ;
  }
  fscanf(fp,"%d\n",&n);
  while(i < n)
  {
    fscanf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",work[i].ID,work[i].name,work[i].sex,work[i].age,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel);
    i ++;
  }
  fclose(fp);
}

3.3写入信息函数

void write()//写入数据
{
  FILE *fp;
  int i = 0;
  if( (fp = fopen("c:\\a.txt","w")) == NULL )
  {
    printf("无法打开文件!\n");
    return ;
  }
  fprintf(fp,"%d\n",n);
  while(i < n)
  {
    fprintf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",work[i].ID,work[i].name,work[i].sex,work[i].age,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel);
    i ++;
  }
  fclose(fp);
} 

3.4菜单函数

void menu()//菜单
{
  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("*      0.退出              *\n");
  printf("*                          *\n");
  printf("* * * * * * * * * * * * * **\n");
  printf("请输入选项(0-5): ");
} 

3.5添加职工信息函数

void add()// 从键盘输入
{
  int i;
  int flag;//标记工号是否已存在
  char c;
  read();//输入数据前先将文件中原有的数据读入
  do
  {
    flag = 0;
    printf("请输入职工的工号:               \n\t\t");
    scanf("%s",work[n].ID);
    for(i = 0 ; i < n ; i ++)
    {
      if(strcmp(work[i].ID,work[n].ID) == 0)
      {
        flag = 1;
        break;
      }
    }
    if(flag)
    {
      printf("该工号已存在!\n\n");
      printf("是否继续输入?(Y/N): ");
      scanf("%*c%c",&c);
      if(c == 'N' || c == 'n') break;
      continue;
    }
    printf("请输入职工的姓名:               \n");
    scanf("%s",work[n].name);
    printf("请输入职工的性别:               \n");
    scanf("%s",work[n].sex);
    printf("请输入职工的年龄:               \n");
    scanf("%s",work[n].age);
    printf("请输入职工的学历:               \n");
    scanf("%s",work[n].edu);
    printf("请输入职工的职务:               \n");
    scanf("%s",work[n].position);
    printf("请输入职工的工资:               \n");
    scanf("%s",work[n].wage);
    printf("请输入职工的住址:               \n");
    scanf("%s",work[n].address);
    printf("请输入职工的电话:               \n");
    scanf("%s",work[n].tel);
    printf("是否继续输入?(Y/N): ");
    scanf("%*c%c",&c);
    n ++;
  }while( c != 'N' && c != 'n');
  write();
  printf("\n\n数据已保存!\n\n");
} 

3.6显示职工信息函数

void show(int id)
{
  printf("职工号: %s\n",work[id].ID);
  printf("姓名: %s\n",work[id].name);
  printf("性别: %s\n",work[id].sex);
  printf("年龄: %s\n",work[id].age);
  printf("学历: %s\n",work[id].edu);
  printf("职务: %s\n",work[id].position);
  printf("工资: %s\n",work[id].wage);
  printf("住址: %s\n",work[id].address);
  printf("电话: %s\n",work[id].tel);
  printf("\n\n\n");
}

3.7显示所有职工信息函数

void browser()//显示所有职工信息
{
  int i;
  read();
  if(n == 0) printf("无记录!\n\n");
  else
    for(i = 0 ; i < n ; i ++)
    {
      show(i);
    }
} 

3.8查询职工信息函数

void search()//查询信息
{
  char num;
  int flag,i;
  char s_id[20] ;//查询工号
  char s_name[20] ;//查询姓名
  char s_edu[20] ; //查询学历
  char s_position[20] ;//查询职位
  char c;//指令Y?N
  read();//打开程序后,要查询以前的数据,要先读入
  while(1)
  {
    system("cls");
    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("*  输入其他任意键退出本模块   *\n");
    printf("* * * * * * * * * * * * * * * *\n");
    printf("请输入指令(1-4):");
    scanf("%*c%c",&num);
    if(num < '1' || num > '4')
    {
      printf("错误指令!\n\n");
      system("pause");
      continue;
    }
    system("cls");
    flag = 0;//用来标记职工信息是否存在
    if(num == '1')//按工号查询
    {
      printf("请输入您要查询职工的工号:");
      scanf("%s",s_id);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].ID,s_id) == 0)
        {
          show(i);
          flag = 1;//标记
          break;
        }
      }
    }
    else if(num == '2')//按姓名查询
    {
      printf("请输入您要查询职工的姓名:");
      scanf("%s",s_name);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].name,s_name) == 0)
        {
          show(i);
          flag = 1;//标记
        }
      }
    }
    else if(num == '3')//按学历查询
    {
      printf("请输入您要查询职工的学历:"); 

      scanf("%s",s_edu);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].edu,s_edu) == 0)
        {
          show(i);
          flag = 1;//标记
        }
      }
    }
    else if(num == '4')//按职务查询
    {
      printf("请输入您要查询职工的职务:");
      scanf("%s",s_position);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].position,s_position) == 0)
        {
          show(i);
          flag = 1;//标记
        }
      }
    }
    if(!flag)//判断是否有该职工信息
    {
      printf("\n\n无该职工信息!\n\n");
    }
    printf("\n\n是否继续查询(Y/N):"); 

    scanf("%*c%c",&c);
    if(c == 'N' || c == 'n') break;
  }
} 

3.9修改职工信息函数

void modify()//修改职工信息
{
  char change_ID[20];//需修改的职工的工号
  int number;//职工信息在数据中的位置
  char num;//指令
  char message[100];//修改的信息
  char c;//指令Y?N
  int flag;
  int i;
  read();
  while(1)
  {
    flag = 0;
    system("cls");
    printf("请输入需修改的职工的工号:");
    scanf("%s",change_ID);
    for(i = 0 ; i < n ; i ++)
    {
      if( strcmp(work[i].ID,change_ID) == 0 )
      {
        number = i;
        flag = 1;
        break;
      }
    }
    if(!flag)
    {
      printf("\n\n无此员工信息!!\n\n");
      printf("\n\n是否继续修改(Y/N):");
      scanf("%*c%c",&c);
      if(c == 'N' || c == 'n') break;
      continue;
    }
    printf("\n\n* * * * * * * * 修改* * * * * * *\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("*    输入其他任意键退出本模块   *\n");
    printf("* * * * * * * * * * * * * * * * *\n");
    printf("请输入指令(1-6):");
    scanf("%*c%c",&num);
    if(num < '1' || num > '6')
    {
      printf("错误指令!\n\n");
      system("pause");
      continue;
    }
    system("cls");
    printf("请输入修改后的信息:");
    scanf("%s",message);
    switch(num)
    {
      case '1' : strcpy(work[number].name,message); break;
      case '2' : strcpy(work[number].edu,message); break;
      case '3' : strcpy(work[number].position,message); break;
      case '4' : strcpy(work[number].wage,message); break;
      case '5' : strcpy(work[number].address,message); break;
      case '6' : strcpy(work[number].tel,message); break;
    }
    system("cls");
    printf("\n\n是否继续修改(Y/N):");
    scanf("%*c%c",&c);
    if(c == 'N' || c == 'n') break;
  }
  write();
} 

3.10删除职工信息函数

void modify()//修改职工信息
{
  char change_ID[20];//需修改的职工的工号
  int number;//职工信息在数据中的位置
  char num;//指令
  char message[100];//修改的信息
  char c;//指令Y?N
  int flag;
  int i;
  read();
  while(1)
  {
    flag = 0;
    system("cls");
    printf("请输入需修改的职工的工号:");
    scanf("%s",change_ID);
    for(i = 0 ; i < n ; i ++)
    {
      if( strcmp(work[i].ID,change_ID) == 0 )
      {
        number = i;
        flag = 1;
        break;
      }
    }
    if(!flag)
    {
      printf("\n\n无此员工信息!!\n\n");
      printf("\n\n是否继续修改(Y/N):");
      scanf("%*c%c",&c);
      if(c == 'N' || c == 'n') break;
      continue;
    }
    printf("\n\n* * * * * * * * 修改* * * * * * *\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("*    输入其他任意键退出本模块   *\n");
    printf("* * * * * * * * * * * * * * * * *\n");
    printf("请输入指令(1-6):");
    scanf("%*c%c",&num);
    if(num < '1' || num > '6')
    {
      printf("错误指令!\n\n");
      system("pause");
      continue;
    }
    system("cls");
    printf("请输入修改后的信息:");
    scanf("%s",message);
    switch(num)
    {
      case '1' : strcpy(work[number].name,message); break;
      case '2' : strcpy(work[number].edu,message); break;
      case '3' : strcpy(work[number].position,message); break;
      case '4' : strcpy(work[number].wage,message); break;
      case '5' : strcpy(work[number].address,message); break;
      case '6' : strcpy(work[number].tel,message); break;
    }
    system("cls");
    printf("\n\n是否继续修改(Y/N):");
    scanf("%*c%c",&c);
    if(c == 'N' || c == 'n') break;
  }
  write();
} 

3.11主函数

int main()
{
  int num;
  n = 0;
  while(1)
  {
    menu();
    scanf("%d",&num);
    system("cls");
    switch(num)
    {
      case 1: add(); break;
      case 2: browser(); break;
      case 3: search();  break;
      case 4: modify();  break;
      case 5: _delete();  break;
      case 0: printf("谢谢使用!\n\n"); return 0;
      default :printf("\n--->无效的指令!\n\n\n");
    }
    system("pause");
    system("cls");
  }
}

以上代码为完整代码,代码测试就自己试试吧。

如果对你有帮助请支持一下哦。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

程序设计职工管理系统 的相关文章

  • CentOS 7安装谷歌浏览器Chrome失败

    问题描述 CentOS 7安装谷歌浏览器Chrome失败 安装上但是点击图标加载但是打不开 谷歌官网下载地址 https www google cn intl zh CN chrome 初步解决 起初我也去搜索了别的博主分享的问题与解决方法

随机推荐

  • linux怎么进入etc目录,Linux 系统的/etc目录

    etc目录下的重要文件 etc sysconfig network 指定服务器上的网络配置信息 etc rc d init d network 网络配置脚本信息 网络配置脚本 开机经过脚本文件来读取相应的配置文件 提供初始化设置 经过 et
  • Origin 2017 给曲线加标记符号

    最近在用Origin 2017画曲线图 需要给图像得曲线加上不同得标记符号用以区分 把操作步骤记录下来 免得忘了 1 用Origin 2017打开一个曲线图 在任意一条曲线上点击右键弹出菜单 选择 绘图更改为 选择 点线图 2 选择之后 可
  • myeclispe

    1 快捷键 ctrl alt h 查哪里调用该方法 ctrl o直接查方法 Ctrl Shift F格式化代码 ctrl f 当前页面快速搜索 ctrl shift r全局搜索类或者 xml文件等 ctrl h file search 全局
  • Springboot程序开启远程DEBUG

    一 远程debug的原理 Spring Boot程序远程debug的原理主要是通过在启动时指定JVM参数来启用远程调试模式 并在调试器中连接到程序所在的调试地址 从而实现对程序的远程调试 具体步骤如下 在运行Spring Boot程序时 在
  • 【2023考研】数据结构常考应用典型例题(含真题)

    前言 本文针对 数据结构 博主花了几天时间列出了考研常考的应用题型 讲解详细 方便复习 各类题型所涉及的知识点包括但不限于队列 二叉排序树 平衡二叉树 哈夫曼树及哈夫曼编码 图的存储 最小生成树 关键路径 排序算法等等 标题即为考点 例题出
  • P1010 [NOIP1998 普及组] 幂次方 递归模拟

    题目描述 任何一个正整数都可以用 2 的幂次方表示 例如 137 2 7 2 3 2 0 同时约定方次用括号来表示 即 a b可表示为a b 由此可知 137 可表示为 2 7 2 3 2 0 进一步 7 2 2 2 2 0 2 1 用 2
  • Macbook air 安装Windows 10 错误:no bootable device insert boot disk and press any key 终极解决办法

    macbook型号 air 2012 当前操作系统 Catalina 安装工具 boot camp assistant 要安装的双系统 windows 10专业版 下载来源于微软官方 出现问题 安装系统时提示 no bootable dev
  • 硬件描述测试软件库中74138,数字系统设计与Verilog HDL课后习题

    习题1 1 1现代EDA技术的特点有哪些 1 2什么是Top down设计方式 1 3数字系统的实现方式有哪些 各有什么优缺点 1 4什么是IP复用技术 IP核对EDA技术的应用和发展有什么意义 1 5用硬件描述语言设计数字电路的优势是什么
  • 关于SQLyog创建的数据库不显示的问题

    最初的问题是这样的 创建了很多数据库 然而只显示一个mysql 用show databases语句 所有的数据库又能显示出来 原因是 创建连接的时候数据 库的那一栏填了mysql 重新创建 不用填写即可 这样就好了 网上搜了好多解决办法 都
  • Sudo 堆缓冲区溢出致本地提权漏洞(CVE-2021-3156)

    1 漏洞描述 2021年1月26日 Sudo发布安全通告 修复了一个类Unix操作系统在命令参数中转义反斜杠时存在基于堆的缓冲区溢出漏洞 当sudo通过 s或 i命令行选项在shell模式下运行命令时 它将在命令参数中使用反斜杠转义特殊字符
  • macbook pro换固态硬盘ssd与移植mac os x系统

    macbook买了一年多了 当时选择了macbook pro 2012 最近一段时间 开机越来越慢了差不多要2分钟 没办法只好给电脑硬盘升级了 准备 1 淘宝上700元左右200多G固态硬盘 2 一个空的移动 1T 硬盘用来系统备份移植 t
  • webpack打包报错:if (!scriptUrl) throw new Error(“Automatic publicPath is not supported in this browser“)

    翻车现场 ERROR in Error D Work test webpack demo 05 打包图片资源 src index html 104 if scriptUrl throw new Error Automatic publicP
  • tq210-kernel 3.0.8 NFS+文件系统

    2016 11 25 kernel 4 1 33的网卡驱动一直没有调通 先放一放 先利用板子带的kernel3 0 8来做个文件系统 busybox 是一个工具箱 单个bin文件实现常用的ls cd 等等命令 堪称瑞士军刀 编译很简单 看看
  • 《C++ primer》练习3.17:改写单词为大写

    最近看 C primer 有这样一个题目 从cin读入一组词并把它们存入一个vector 对象 然后设法把所有词都改写为大写形式 输出改变后的结果 每个词占一行 考察 怎么输入字符串 怎么存入vector对象 怎么对字符串字符处理 代码 i
  • Object.equals方法的重写

    简要说明下 重写equals 一般都需要重写Object hashCode方法 因为ObjectA equals ObjectB 时 按理说 ObjectA hashCode ObjectB hashCode 但是重写equals 不重写h
  • 查看linux用户密码

    需要root用户 用户名在 etc passwd这个文件中 密码在 etc shadow中 cat etc passwd cat etc shadow root 6 1WtyW6O0baQmTkDG o YXXTOZSb7hP4Hitigz
  • MATRIX: 1 ctf challenge

    MATRIX 1 About Release Back to the Top Name Matrix 1 Date release 19 Aug 2018 Author Ajay Verma Series Matrix Download B
  • OpenAI-ChatGPT最新官方接口《微调ChatGPT模型》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(四)(附源码)

    微调ChatGPT模型 前言 Introduction 导言 What models can be fine tuned 哪些模型可以微调 Installation 安装 Prepare training data 准备训练数据 CLI d
  • VC下MFC程序自删除(自杀)几种方法的实践与探讨

    在VC下做了个MFC的程序 想让他运行后 自动删除自己 在网上看了些资料 方法也有一些 都实践了一下 感觉对MFC的程序 使用cmd exe可能更合适一些 其他的方法也蛮好 蛮经典的 不过我感觉用在MFC程序上就不太合适了 我实践的方法有三
  • 程序设计职工管理系统

    需求分析 1 1 设计系统的目的分析 本系统要求用 C 语言建立一个职工信息管理系统 本职工信息管理系统可以实现对众多员工信息的管理 包含对职工信息进行添加 查询 删除 修改 1 2系统的界面要求 按任意键便可以进入主菜单 在主菜单上显示出