程序设计职工管理系统

这篇具有很好参考价值的文章主要介绍了程序设计职工管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求分析

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 函数声明和结构定义

#define N 100
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

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

struct Worker {//这里的结构体有待改进
    char ID[20];
    char name[20];
    char sex[10];
    char age[10];
    char edu[20];
    char position[20];
    char wage[20];
    char address[50];
    char tel[20];
}work[N];

int n; // 记录数量

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 _delete()//删除职工信息
{
  char delete_ID[20];//删除职工工号
  int i,j;
  int flag;//标记是否有该职工信息
  char c;
  read();
  while(1)
  {
    system("cls");
    flag = 0;
    printf("请输入需删除职工信息的工号:");
    scanf("%s",delete_ID);
    for(i = 0 ; i < n ; i ++)
    {
      if( strcmp(work[i].ID,delete_ID) == 0)
      {
        n --;
        flag = 1;
        for(j = i ; j < n ; j ++)
        {
          work[j] =work[j + 1];
        }
        break;
      }
    }
    if(!flag) printf("\n\n无此员工信息!\n\n");
    else printf("\n\n删除成功!\n");
    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");
  }
}

——————————————————————————————————————————

全部代码:

#define _CRT_SECURE_NO_WARNINGS 1 // 避免实验环境为VS时不必要的报错 
#define N 100
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


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

struct Worker {
    char ID[20];
    char name[20];
    char sex[10];
    char age[10];
    char edu[20];
    char position[20];
    char wage[20];
    char address[50];
    char tel[20];
}work[N];

int n; // 记录数量

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);
}

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);
}

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): ");
}

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");
}

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");
}

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

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;
    }
}

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();
}

void _delete()//删除职工信息
{
    char delete_ID[20];//删除职工工号
    int i, j;
    int flag;//标记是否有该职工信息
    char c;
    read();
    while (1)
    {
        system("cls");
        flag = 0;
        printf("请输入需删除职工信息的工号:");
        scanf("%s", delete_ID);
        for (i = 0; i < n; i++)
        {
            if (strcmp(work[i].ID, delete_ID) == 0)
            {
                n--;
                flag = 1;
                for (j = i; j < n; j++)
                {
                    work[j] = work[j + 1];
                }
                break;
            }
        }
        if (!flag) printf("\n\n无此员工信息!\n\n");
        else printf("\n\n删除成功!\n");
        printf("\n\n是否继续删除(Y/N):");
        scanf("%*c%c", &c);
        if (c == 'N' || c == 'n') break;
    }
    write();
}

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");
    }
}

如果对你有帮助请支持一下哦。文章来源地址https://www.toymoban.com/news/detail-482795.html

到了这里,关于程序设计职工管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 程序设计基础大作业——学生管理系统

    声明:这是本人所写的程序设计期末大作业实验报告,可供大家学习和参考,也希望能得到一些建议和改正,但如果只为抄袭代码,本人必究! 目录 一、任务描述 二、代码实现 三、运行结果 四、实验体会 写一个命令行交互式C语言程序。该程序需要实现下述菜单功能: 1

    2024年02月10日
    浏览(40)
  • ASP.NET程序设计课程设计——学生信息管理系统

    点击查看详细信息 ASP.NET程序设计课程设计——学生信息管理系统 一、实验目的 综合运用们所学的ASP.NET知识,开发学生信息管理系统,完成相关功能: (1)教师管理 (2)学生信息 (3)课程信息 (4)成绩管理 (5)班级管理 二、实验环境 (1)Windows 10 (2)Visual Studio 2

    2024年02月03日
    浏览(42)
  • C语言课程设计_职工工资管理系统

    设计一个职工工资管理系统: (1)输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。 (2)显示记录:根据用户提供的记录或者根据职工姓名

    2024年02月10日
    浏览(26)
  • C语言程序设计——学生学籍管理系统

    一、题目设计及其要求 1、题目:学生学籍管理系统 用数据文件存放学生的学籍,可对学生学籍进行注册、修改、查找、统计、学籍变化等操作。(用文件保存) 2、功能要求: (1)系统以菜单方式工作; (2)登记学生的学号,姓名,性别,年龄,籍贯,学院,专业,班级

    2024年02月11日
    浏览(35)
  • Java Web程序设计——图书管理系统

    这是一个图书管理系统,都是用原生的·Java Web写的,前后端代码都是自己写的。第一次写博客希望大家能够支持。 项目结构图览 采用的工具与技术 前端页面设计:html+css 后端技术:jsp+servlet+javaBean+jdbc+dao 服务器版本:Tomcat8.5 数据库:Mysql数据库 开发工具:Eclipse、Chorme、

    2024年02月09日
    浏览(29)
  • 37基于java的职工管理系统设计与实现

    本章节给大家带来一个基于java的职工管理系统设计与实现,可适用于员工管理系统,企业员工管理系统,公司员工管理系统,企业人事管理系统,基于java职工管理系统,前后端分离,员工考勤管理系统,职工奖惩管理系统,职员合同管理,HR管理系统,人事HR管理系统等;

    2024年02月05日
    浏览(88)
  • 【数据结构】停车场管理系统程序设计

    说明: 该程序设计采用常见基础的数据结构栈和队列实现了一个简单停车场管理系统。在具体设计中,实现了系统页面和停车场的示意图显示,通过调用顺序栈和链队的相关函数,模拟了实际停车场的运营流程。 目录 1 任务内容 2 需求分析 2.1 功能需求 2.2 输入输出需求 3 概

    2024年02月03日
    浏览(33)
  • 【java 程序设计实训】学生请假管理系统

    声明:未经允许,请勿转载 下载链接 https://download.csdn.net/download/weixin_66397563/87976888

    2024年02月08日
    浏览(57)
  • 面向对象程序设计(Java)课程设计——学生信息管理系统(GUI+文件)

    一、团队成员及任务 组长:宗庆亮  计科(智能)22-1  202203200021 负责模块:静态登录界面实现以及学生信息系统管理界面的创建 组员:郑金洲  计科(智能)22-1  202203200022 负责模块:增加,删除,修改以及查询功能的实现 团队博客:面向对象程序设计(Java)课程设计——学生

    2024年02月03日
    浏览(43)
  • 餐厅点单小程序+后台管理管理系统的设计与实现

    本系统仅供学习交流,本文只作本人记录系统设计的流程,以便日后学习巩固。 如有更好的设计框架,欢迎大家留言讨论呀~ 本次系统设计分两大模块,微信点餐小程序客户端的开发,及点餐后台管理信息系统的开发。微信点餐小程序的主要功能有:用户扫码提交订单,支

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包