转载请注明出处:http://blog.csdn.net/u012860063

#include <stdio.h>
#include <windows.h>
#include <string.h>
struct worker
{int num;char name[20];char zhicheng[10];int wages;int reward;long birth;int salary;
}
work[500],work1;
void menu();
void type_in();
void baocun(int);
void scan();
void del();
void search();
void search_zhicheng();
void search_name();
void search_num();
void change();
void order();
void add();
void order_wages();
void order_name();
void order_num();
void menu()
{     printf("\n");printf("                                welcome to                                 \n");printf("                             职工信息管理系统                                   "); printf("******************************************************************************\n"); printf("           1.录入职工信息\n"); printf("           2.浏览职工信息\n");printf("           3.查询职工信息\n"); printf("           4.删除职工信息\n");  printf("           5.修改职工信息\n");printf("           6.职工信息排序\n");printf("           7.添加职工信息\n"); printf("           8.退出\n"); printf("*******************************************************************************\n"); printf("\n");
}
void main()
{ int n,f;while(1){do   {        menu();printf("请输入你需要操作的序号(1—8):\n"); scanf("%d",&n);   if(n>=1&&n<=8)        {f=1;      break; } else{ f=0;printf("您输入有误,请重新选择!");}}while(f==0);     switch(n)  { case 1:printf("               录入职工信息\n");printf("\n");type_in();break;       case 2:printf("               浏览职工信息\n");printf("\n");system("cls");scan();break;  case 3:printf("               查询职工信息\n");printf("\n");system("cls");search();break;       case 4:printf("               删除职工信息\n");printf("\n");system("cls");del();break; case 5:printf("               修改职工信息\n");printf("\n");system("cls");change();break;case 6:printf("               职工信息排序\n");printf("\n");system("cls");order();break; case 7:printf("               添加职工信息\n");printf("\n");system("sls");add();break;case 8:goto loop;     default :break;}}
loop:system("cls"); printf("\n\n\n\n\n\n----------谢谢使用!---------\n\n\n\n\n\n");
}
void type_in()
{    int i,m;printf("请输入需要创建信息的职工人数(1--500):\n"); scanf("%d",&m); for (i=0;i<m;i++) {printf("请输入职工号: "); scanf("%d",&work[i].num);  printf("\n"); printf("请输入姓名:  "); scanf("%s",work[i].name); getchar();printf("请输入职称:  "); scanf("%s",&work[i].zhicheng); printf("请输入基本工资:  "); scanf("%d",&work[i].wages); printf("请输入奖金:  "); scanf("%d",&work[i].reward); printf("请输入生日(格式如19900101):  ");scanf("%d",&work[i].birth); work[i].salary=work[i].wages + work[i].reward;getchar();system("cls"); printf("\n一个职工的信息档案创建完毕!请输入下一个职工的信息\n"); printf("\n");}       baocun(m);
}
void baocun(int m)
{    int i;  FILE *fp;if ((fp=fopen("E:\\worker_list.txt","wb"))==NULL){ printf ("此文件不能打开\n");exit(0); } for (i=0;i<m;i++)if (fwrite(&work[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n"); fclose(fp);
}
int load()
{FILE*fp; int i=0; if((fp=fopen("E:\\worker_list.txt","rb"))==NULL) {printf ("cannot open file\n");exit(0);   }else{  do    {   fread(&work[i],sizeof(struct worker),1,fp); i++;}while(feof(fp)==0); }fclose(fp);return(i-1);
}
void scan()
{int i;int m=load();printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n");for(i=0;i<m;i++)   printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[i].num,work[i].name,   work[i].zhicheng,work[i].wages,work[i].reward,work[i].salary,work[i].birth); printf("按任意键继续\n"); getchar(); getchar();system("cls");
}
void del()
{      int m=load();int i,j,n,t,f;char name1[10];printf("\n 原来的职工信息:\n");  scan();    printf("\n"); printf("请输入要删除的职工的姓名:\n"); scanf("%s",name1); for(f=1,i=0;f&&i<m;i++) {if(strcmp(work[i].name,name1)==0) {   printf("\n已找到此人,原始记录为:\n"); printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n"); printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[i].num,work[i].name,   work[i].zhicheng,work[i].wages,work[i].reward,work[i].salary,work[i].birth);                                          printf("\n确实要删除此人信息请按1,不删除请按0\n");    scanf("%d",&n);if(n==1)  {   for(j=i;j<m-1;j++)   {        work[j]=work[j+1];   } f=0;} }}if(!f) m=m-1;else printf("\n对不起,查无此人!\n"); printf("\n 浏览删除后的所有职工信息:\n");baocun(m);      scan(); printf("\n继续删除请按1,不再删除请按0\n");scanf("%d",&t); switch(t) {case 1:del();break;case 0:break;  default :break;}system("cls");
}
void search()
{   int t,f;do { printf("\n按姓名查询请按1  按职称查询请按2  按职工号查询请按3  进入主函数按4\n"); scanf("%d",&t); if(t>=1&&t<=4) {  f=1; break;} else{   f=0;printf("您输入有误,请重新选择!"); }}while(f==0);system("cls"); while(f==1){  switch(t)  {   case 1:printf("按姓名查询\n");search_name();break; case 2:printf("按职称查询\n");search_zhicheng();break; case 3:printf("按职工号查询\n");search_num();break; case 4:main();break; default:break;  }system("cls");}
}
void search_name()
{  char name1[10];int i,t;  int m=load(); printf("请输入要查找的姓名:\n"); scanf("%s",name1); for(i=0;i<m;i++)if(strcmp(name1,work[i].name)==0){printf("\n已找到此人,其记录为:\n"); printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n"); printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[i].num,work[i].name,   work[i].zhicheng,work[i].wages,work[i].reward,work[i].salary,work[i].birth); break; } if(i==m)printf("\n对不起,查无此人\n");printf("\n");  printf("返回查询函数请按1,继续查询职工号请按2\n"); scanf("%d",&t); switch(t) { case 1:search();break;case 2: break;  default:break;  }
}
void search_zhicheng()
{ char zhicheng1[10]; int i,t;int m=load();printf("请输入要查找的职称:\n"); scanf("%s",zhicheng1); for(i=0;i<m;i++)  if(strcmp(zhicheng1,work[i].zhicheng)==0) {printf("\n已找到此人,其记录为:\n");  printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n"); printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[i].num,work[i].name,   work[i].zhicheng,work[i].wages,work[i].reward,work[i].salary,work[i].birth); break;}  if(i==m) printf("\n对不起,查无此人\n");printf("\n");  printf("返回查询函数请按1,继续查询职工号请按2\n"); scanf("%d",&t); switch(t) {  case 1:search();break; case 2: break;  default:break; }
}
void search_num()
{  int num;int i,t;  int m=load(); printf("请输入要查找的职工号:\n"); scanf("%d",&num); for(i=0;i<m;i++)   if(num==work[i].num){printf("\n已找到此人,其记录为:\n"); printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n"); printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[i].num,work[i].name,   work[i].zhicheng,work[i].wages,work[i].reward,work[i].salary,work[i].birth); break;}if(i==m)printf("\n对不起,查无此人\n");printf("\n");  printf("返回查询函数请按1,继续查询职工号请按2\n"); scanf("%d",&t); switch(t) {case 1:search();break;case 2: break;  default:break;  }
}
void change()
{ int num;char name[20];char zhicheng[10];int wages;int reward;int birth;int salary;int b,c,i,n,t,f;int m=load();                                       printf("\n 原来的职工信息:\n"); scan();                                       printf("\n"); printf("请输入要修改的职工的姓名:\n"); scanf("%s",name); for(f=1,i=0;f&&i<m;i++) {if(strcmp(work[i].name,name)==0){  printf("\n已找到此人,原始记录为:\n");  printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n"); printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[i].num,work[i].name,   work[i].zhicheng,work[i].wages,work[i].reward,work[i].salary,work[i].birth);  printf("\n确实要修改此人信息请按1  不修改请按0\n"); scanf("%d",&n);   if(n==1)    {           printf("\n需要进行修改的选项\n 1.职工号 2.姓名 3.职称 4.基本工资 5.奖金  6.生日 7.实际工资\n");  printf("请输入你想修改的那一项序号:\n");     scanf("%d",&c);     if(c>7||c<1)   printf("\n选择错误,请重新选择!\n");                 }        f=0;  }       }if(f==1)  printf("\n对不起,查无此人!\n");do       {      switch(c)    {   case 1:printf("职工号改为: ");   scanf("%d",&num);       work[i-1].num=num;      break;             case 2:printf("姓名改为: ");  scanf("%s",name);     strcpy(work[i-1].name,name); break;    case 3:printf("职称改为");  scanf("%s",zhicheng); strcpy(work[i-1].zhicheng,zhicheng);  break;         case 4:printf("基本工资改为: "); scanf("%d",&wages); work[i-1].wages=wages; break;        case 5:printf("奖金改为: ");scanf("%d",&reward);    work[i-1].reward=reward;   break;            case 6:printf("生日改为: ");  scanf("%ld",&birth);    work[i-1].birth=birth;    break;         case 7:printf("实际工资改为: ");scanf("%d",&salary);      work[i-1].salary=salary;   break; }printf("\n"); printf("\n是否确定所修改的信息?\n 是 请按1  \n不,重新修改 请按2:  \n"); scanf("%d",&b);  }while(b==2);   printf("\n浏览修改后的所有职工信息:\n"); printf("\n"); baocun(m);  scan();  printf("\n继续修改请按1,不再修改请按0\n"); scanf("%d",&t); switch(t) {   case 1:change();break;case 0:break; default :break;}system("cls");
}
void order()
{   int k,f;do{   printf("\n按姓名排序请按1  按基本工资排序请按2 按职工号排序请按3 进入主函数按4\n");scanf("%d",&k); if(k>=1&&k<=4) {f=1;break;}   else   {  f=0;   printf("您输入有误,请重新选择!"); } }while(f==0);system("cls");  while(f==1) { switch(k) { case 1:printf("\n按姓名排序为(字母由小到大排列):\n");order_name();break;case 2:printf("\n按基本工资排序为(由高到低排列):\n");order_wages();break; case 3:printf("\n按职工号排序为(由小到大排列):\n");order_num();break; case 4:system("cls"); main();break;default:break;   }    system("cls");  }
}
void order_name()
{ int i,j,k;int m=load(); for(i=0;i<m-1;i++) for(j=0;j<m-1-i;j++)if(strcmp(work[j].name,work[j+1].name)>0) {work1=work[j];work[j]=work[j+1];work[j+1]=work1;}baocun(m);printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n");for(j=0;j<m;j++)   printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[j].num,work[j].name,   work[j].zhicheng,work[j].wages,work[j].reward,work[j].salary,work[j].birth);printf("返回排序函数请按1,返回主菜单请按2\n"); scanf("%d",&k); switch(k){   case 1:order();break; case 2:system("cls");main();break;  default:break; }system("cls");
}
void order_wages()
{ int i,k,j;  int m=load();for(i=0;i<m-1;i++) for(j=0;j<m-1-i;j++)  if(work[j].wages<work[j+1].wages){work1=work[j];work[j]=work[j+1];work[j+1]=work1;}  baocun(m);printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n");for(j=0;j<m;j++)  printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[j].num,work[j].name,   work[j].zhicheng,work[j].wages,work[j].reward,work[j].salary,work[j].birth);printf("返回排序函数请按1,返回主菜单请按2\n"); scanf("%d",&k);switch(k)  {case 1:order();break;case 2:system("cls"); main();break; default:break; }system("cls");
}
void order_num()
{ int i,j,k;int m=load(); for(i=0;i<m-1;i++) for(j=0;j<m-1-i;j++) if(work[j].num<work[j+1].num){ work1=work[j];work[j]=work[j+1];work[j+1]=work1;}baocun(m); printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n");for(j=0;j<m;j++) printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[j].num,work[j].name,   work[j].zhicheng,work[j].wages,work[j].reward,work[j].salary,work[j].birth);printf("返回排序函数请按1,返回主菜单请按2\n"); scanf("%d",&k); switch(k){   case 1:order();break; case 2:system("cls"); main();break;  default:break; }system("cls");
}
void add()
{int n=load();int i,m; printf("请输入需要添加信息的职工人数\n"); scanf("%d",&m); for (i=n;i<m+n;i++){printf("请输入职工号: ");scanf("%d",&work[i].num); printf("\n");   printf("请输入姓名:  ");scanf("%s",work[i].name); printf("请输入职称:  ");scanf("%s",&work[i].zhicheng); printf("请输入基本工资:  "); scanf("%d",&work[i].wages);printf("请输入奖金:  "); scanf("%d",&work[i].reward); printf("请输入生日(格式如19900101):  "); scanf("%d",&work[i].birth); getchar();system("cls"); printf("\n一个职工的信息档案添加完毕!请输入下一个职工的信息\n"); work[i].salary=work[i].wages + work[i].reward;   printf("\n");}   baocun(m+n);system("cls");printf("添加职工档案完成。\n这时库存信息为:\n"); scan();
}

员工管理系统(完整版)相关推荐

  1. c语言学生信息系统 完整版,C语言 学生信息管理系统(完整版).docx

    C语言 学生信息管理系统(完整版) 电子科技大学成都学院 程序综合设计论文 论文题目 学生信息管理系统 学生姓名 魏国 学 号 1340840625 专 业 机械设计制造及其自动化 系(分院) 电子工 ...

  2. 学籍管理系统源代码java_java学籍管理系统完整版.zip

    [实例简介] 一个JAVA写的学籍管理系统Demo里面有完整的界面信息,和数据库连接代码.内容很完整 [实例截图] [核心代码] java学籍管理系统完整版 `-- java学籍管理系统完整版 |-- ...

  3. ktv管理系统_7天撸完KTV点歌系统,含后台管理系统(完整版)

    最近手有点痒琢磨着做个啥,朝思暮想还是写个KTV点歌系统,模拟了一下KTV开户的思路,7天累死我了,不过技术点还挺多的,希望你可以看完(〜^㉨^)〜 用Node(Express)教你写KTV点歌系统, ...

  4. 7天撸完KTV点歌系统,含后台管理系统(完整版)

    最近手有点痒琢磨着做个啥,朝思暮想还是写个KTV点歌系统,模拟了一下KTV开户的思路,7天累死我了,不过技术点还挺多的,希望你可以看完(〜㉨)〜 用Node(Express)教你写KTV点歌系统,包括 ...

  5. C# 学生成绩管理系统 完整版

    知识点 一种类似指针的数据结构? 文件的读取和写入 避免乱码 ansi 字符串读取后分割的bug 可能是因为编码问题导致的 为了解决这个bug 写入的时候直接用\r\n分割了 但是解决乱码问题之后可能 ...

  6. 学生成绩管理系统完整版

    学生成绩管理系统能够实现基本的录入.查找.插入.删除.修改.计算平均成绩.根据平均成绩排名和输出等功能. 学生成绩管理系统可以在VC++.Dev-c++等可视化环境中编译 录入(选择1):录入也是创建 ...

  7. C语言学生成绩管理系统文档版,C语言学生信息管理系统(完整版)总结.docx

    电子科技大学成都学院 程序综合设计论文 论文题目 学生信息管理系统 学生姓名 魏国 学 号 1340840625 专 业 机械设计制造及其自动化 系(分院) 电子工程系 授课教师 杜娥 2015年12 ...

  8. 【C++】图书管理系统(完整版)

    图书管理系统功能概览: 登录,注册 学生,老师借书,查看自己当前借书情况,还书. 管理员增加书,查看当前借阅情况,查看当前所有借阅人,图书信息. 代码概览: 各个模块主要负责功能COperationM ...

  9. python学生管理系统教学_Python项目:学生信息管理系统(完整版)

    本文是基于上一篇(python项目:学生信息管理系统(初版))进行了完善,并添加了新的功能. 主要包括有: 学生信息管理系统(完整版) 学生信息管理项目,要求带操作界面,并完成每项操作: +----- ...

  10. 酒店管理与计算机技术结合,(定稿)某酒店内部管理系统的开发与应用(完整版)...

    <某酒店内部管理系统的开发与应用.doc>由会员分享,可免费在线阅读全文,更多与<(定稿)某酒店内部管理系统的开发与应用(完整版)>相关文档资源请在帮帮文库(www.woc88 ...

最新文章

  1. iso镜像文件烧写到U盘
  2. mysql单表多timestamp的current_timestamp设置问题
  3. 网上的一篇spring security详解教程,觉得不错,转过来了
  4. 温州大学《机器学习》课程课件(八、集成学习)
  5. 7个管理和优化网站资源的 Python 工具
  6. Interfaces and Inheritance 接口与继承
  7. C# Action用法
  8. 应用程序添加到服务器,在同一应用程序中的配置服务器和eureka服务器:尝试连接到localhost:8761...
  9. 为啥我的Python这么慢 - 项查找 (二)
  10. Linux使用sendmail发送邮件
  11. hadoop2.X如何将namenode与SecondaryNameNode分开配置
  12. C#属性默认值设置(model实体类)
  13. 使用python实现可视化ftp客户端(本地文件展示和搜索功能、ftp文件展示和搜索功能以及上传和下载功能)
  14. 对数log ln lg 的java实现和mysql实现
  15. 已下载好的OpenCV4.5.5 CMake .cache文件夹
  16. 东软始业教育结业考试
  17. 成功者的13个良好习惯
  18. 我终于又可以在头条上赚钱啦
  19. 小程序购物城项目实战(下篇)
  20. POJO、DO、DTO、AO、BO、VO、JB、DAO、EJB

热门文章

  1. 竣达技术丨机房组态系统综合监控解决方案
  2. 行云创新:车云一体化平台,实现软件定义汽车
  3. 微信支付当前url未注册问题
  4. 论文工具大全+软件简介
  5. sql中向下取整怎么取_Sql Server 里的向上取整、向下取整、四舍五入取整的实例! | 学步园...
  6. css设置内容超出后显示省略号
  7. [转载]Buffon投针实验:究竟为什么是pi?
  8. 从字符串中筛选出连续的数字,并将其放入另一个数组!
  9. matplotlib pyplot 画图基础教程
  10. 服务器所有文件后缀名变了,怎么样批量修改文件扩展名(后缀)