职工信息管理系统(C语言)(可简单修改为学生信息管理系统)

源代码:可以修改为学生管理系统,不太难,就没写注释,与其找其他人的文章不如留言问问我,直接这种的都搞定了。


 代码很简单,直接复制到.cpp即可使用。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
struct worker
{
  char ID[20];//工号
  char name[20];//姓名
  char sex[5];//性别
  char born[20];//生日
  char edu[20];//学历
  char position[20];//职务
  char wage[10];//工资
  char address[100];//住址
  char tel[15];//电话
}work[1000];
int n ; 

//文件读写模块
void read()//读入数据
{
  FILE *fp;
  int i = 0;
  if( (fp = fopen("d:\\date.txt","r")) == NULL )
  {
    printf("请在D盘根目录下新建一个文本文件,文件名为date\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].born,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("d:\\date.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].born,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel);
    i ++;
  }
  fclose(fp);
} 

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

//显示模块
void output_inf(int id)
{
  printf("\t\t  工号: %s\n",work[id].ID);
  printf("\t\t  姓名: %s\n",work[id].name);
  printf("\t\t  性别: %s\n",work[id].sex);
  printf("\t\t出生年月: %s\n",work[id].born);
  printf("\t\t  学历: %s\n",work[id].edu);
  printf("\t\t  职务: %s\n",work[id].position);
  printf("\t\t  工资: %s\n",work[id].wage);
  printf("\t\t  住址: %s\n",work[id].address);
  printf("\t\t  电话: %s\n",work[id].tel);
  printf("\n\n\n");
}
void show()//显示所有职工信息
{
  int i;
  read();
  if(n == 0) printf("无记录!\n\n");
  else
    for(i = 0 ; i < n ; i ++)
    {
      output_inf(i);
    }
} 

//查询模块
void que()//查询信息
{
  char num;
  int flag,i;
  char q_id[20] ;//查询工号
  char q_name[20] ;//查询姓名
  char q_edu[20] ; //查询学历
  char q_position[20] ;//查询职位
  char c;//指令Y?N
  read();//打开程序后,要查询以前的数据,要先读入
  while(1)
  {
    system("cls");
    printf("\t\t******************查询********************\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       1.按工号查询        *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       2.按姓名查询        *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       3.按学历查询        *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       4.按职务查询        *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*    输入其他任意键退出本模块     *\n");
    printf("\t\t******************************************\n");
    printf("\t\t请输入指令(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("\t\t请输入您要查询职工的工号:");
      scanf("%s",q_id);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].ID,q_id) == 0)
        {
          output_inf(i);
          flag = 1;//标记
          break;
        }
      }
    }
    else if(num == '2')//按姓名查询
    {
      printf("\t\t请输入您要查询职工的姓名:");
      scanf("%s",q_name);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].name,q_name) == 0)
        {
          output_inf(i);
          flag = 1;//标记
        }
      }
    }
    else if(num == '3')//按学历查询
    {
      printf("\t\t请输入您要查询职工的学历:"); 

      scanf("%s",q_edu);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].edu,q_edu) == 0)
        {
          output_inf(i);
          flag = 1;//标记
        }
      }
    }
    else if(num == '4')//按职务查询
    {
      printf("\t\t请输入您要查询职工的职务:");
      scanf("%s",q_position);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].position,q_position) == 0)
        {
          output_inf(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 mod()//修改职工信息
{
  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\t\t******************修改********************\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       1.修改姓名         *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       2.修改学历         *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       3.修改职务         *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       4.修改工资         *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       5.修改住址         *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       6.修改电话         *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*    输入其他任意键退出本模块     *\n");
    printf("\t\t******************************************\n");
    printf("\t\t请输入指令(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 del()//删除职工信息
{
  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();
} 

//菜单模块
void menu()//菜单
{
  printf("\t\t************职工信息管理系统菜单**********\n");
  printf("\t\t*                    *\n");
  printf("\t\t*       1.录入职工信息      *\n");
  printf("\t\t*                    *\n");
  printf("\t\t*       2.显示职工信息      *\n");
  printf("\t\t*                    *\n");
  printf("\t\t*       3.查询职工信息      *\n");
  printf("\t\t*                    *\n");
  printf("\t\t*       4.修改职工信息      *\n");
  printf("\t\t*                    *\n");
  printf("\t\t*       5.删除职工信息      *\n");
  printf("\t\t*                    *\n");
  printf("\t\t*       0.退出          *\n");
  printf("\t\t*                    *\n");
  printf("\t\t******************************************\n");
  printf("\t\t请输入指令(0-5): ");
} 

int main()
{
  int num;
  n = 0;
  system("color 0B");
  while(1)
  {
    menu();
    scanf("%d",&num);
    system("cls");
    switch(num)
    {
      case 1: input(); break;
      case 2: show(); break;
      case 3: que();  break;
      case 4: mod();  break;
      case 5: del();  break;
      case 0: printf("谢谢使用!\n\n"); return 0;
      default :printf("\n--->无效的指令!\n\n\n");
    }
    system("pause");
    system("cls");
  }
}

 

 

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
职工信息管理系统是一种常见的管理系统,它可以帮助企业和组织管理员工的基本信息、工作信息以及其他相关信息。以下是一个简单职工信息管理系统C语言代码示例,供您参考: ``` #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_WORKERS 100 struct worker { char name[20]; int age; char gender; int salary; }; int num_workers = 0; struct worker workers[MAX_WORKERS]; int main() { int choice; while (1) { printf("Welcome to the worker information management system!\n"); printf("1. Add a new worker\n"); printf("2. Delete a worker\n"); printf("3. Modify a worker\n"); printf("4. Search for a worker\n"); printf("5. Display all workers\n"); printf("6. Exit\n"); printf("Please enter your choice: "); scanf("%d", &choice); switch (choice) { case 1: add_worker(); break; case 2: delete_worker(); break; case 3: modify_worker(); break; case 4: search_worker(); break; case 5: display_workers(); break; case 6: exit(0); default: printf("Invalid choice! Please try again.\n"); } } return 0; } void add_worker() { if (num_workers == MAX_WORKERS) { printf("The maximum number of workers has been reached!\n"); return; } printf("Please enter the name of the worker: "); scanf("%s", workers[num_workers].name); printf("Please enter the age of the worker: "); scanf("%d", &workers[num_workers].age); printf("Please enter the gender of the worker (M/F): "); scanf(" %c", &workers[num_workers].gender); printf("Please enter the salary of the worker: "); scanf("%d", &workers[num_workers].salary); printf("New worker added successfully!\n"); num_workers++; } void delete_worker() { char name[20]; int i, j; printf("Please enter the name of the worker to delete: "); scanf("%s", name); for (i = 0; i < num_workers; i++) { if (strcmp(name, workers[i].name) == 0) { for (j = i; j < num_workers - 1; j++) { workers[j] = workers[j + 1]; } num_workers--; printf("Worker deleted successfully!\n"); return; } } printf("Worker not found!\n"); } void modify_worker() { char name[20]; int i; printf("Please enter the name of the worker to modify: "); scanf("%s", name); for (i = 0; i < num_workers; i++) { if (strcmp(name, workers[i].name) == 0) { printf("Please enter the new age of the worker: "); scanf("%d", &workers[i].age); printf("Please enter the new gender of the worker (M/F): "); scanf(" %c", &workers[i].gender); printf("Please enter the new salary of the worker: "); scanf("%d", &workers[i].salary); printf("Worker modified successfully!\n"); return; } } printf("Worker not found!\n"); } void search_worker() { char name[20]; int i; printf("Please enter the name of the worker to search for: "); scanf("%s", name); for (i = 0; i < num_workers; i++) { if (strcmp(name, workers[i].name) == 0) { printf("Name: %s\n", workers[i].name); printf("Age: %d\n", workers[i].age); printf("Gender: %c\n", workers[i].gender); printf("Salary: %d\n", workers[i].salary); return; } } printf("Worker not found!\n"); } void display_workers() { int i; printf("Name\tAge\tGender\tSalary\n"); for (i = 0; i < num_workers; i++) { printf("%s\t%d\t%c\t%d\n", workers[i].name, workers[i].age, workers[i].gender, workers[i].salary); } } ``` 这个示例代码中使用了结构体来存储职工的基本信息,包括姓名、年龄、性别和工资。程序提供了添加、删除、修改、查找和显示职工信息的功能。注意,这只是一个简单的示例,实际的职工信息管理系统可能会更加复杂和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程图一乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值