员工管理程序.doc

上传人:豆**** 文档编号:17521497 上传时间:2022-05-24 格式:DOC 页数:13 大小:146KB
返回 下载 相关 举报
员工管理程序.doc_第1页
第1页 / 共13页
员工管理程序.doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《员工管理程序.doc》由会员分享,可在线阅读,更多相关《员工管理程序.doc(13页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流员工管理程序.精品文档. 头文件#include#include#include#define N 100void menu_handle();/*函数处理菜单*/int menu_choose();/*函数选择菜单*/void input_worker();/*创建文件并对工人信息输入函数*/void save_file(int n);/*文件保存*/int load();/*提取员工数*/void message_output();/*员工信息浏览函数*/void add_worker();/*员工添加函数*/void dele_work

2、er();/*员工信息删除函数*/void fine();/*员工信息查询函数*/void fine_num();/*员工号查询函数*/void fine_name();/*按姓名查询函数*/void sort_age();/*按年龄排序函数*/void sort_pay();/*按工资排序函数*/void sort();/*排序函数处理*/void change(struct worker *p,int n);/*交换元素*/ 主函数void main()printf(nttt计算机工程系n);printf(ntttttt 计Y111班);printf(ntttttt 朱 建 国n); me

3、nu_handle();/*调用菜单函数*/ 菜单文件 菜单选择函数int menu_chooose()int shuzi;/*定义数字选择的变量 s*/char s2;/printf(n);printf(t n);printf(t * 欢 * 1.员工信息输入 * 职 *n);printf(t * * 2.员工信息输出 * *n);printf(t * 迎 * 3.添加员工信息 * 工 *n);printf(t * * 4.删除员工信息 * *n);printf(t * 进 * 5.员工信息查询 * 档 *n);printf(t * * 6.员工信息排序 * *n);printf(t * 入

4、 * 7. 退出程序 * 案 *n);printf(t nn);printf( * 请选择 1-7 *n);/*选择菜单*/for( ; ; )scanf(%s,s);/*输入数字*/shuzi=atoi(s);/*字符转换*/if(shuzi7|shuzi1)printf(ttt输入错误nnttt请重新输入 1-7 ! nnttt退出请按 7 !n);elsebreak;return(shuzi); 菜单处理函数void menu_handle()for( ; ; )switch ( menu_chooose() )/*调用菜单选择函数*/ case 1:printf( ttt员工信息输出n

5、n );input_worker(); break;case 2: system(cls); printf(ttt员工信息输出n); message_output(); break;case 3: system(cls); printf(ttt添加员工信息nn); add_worker(); break;case 4: system(cls); printf(ttt删除员工信息nn); dele_worker(); break;case 5: system(cls); printf(ttt员工信息查询nn); fine(); break;case 6: system(cls); printf(

6、ttt员工信息排序nn); sort(); break;case 7: system(cls); printf(nnnnnnnnnnnnn); printf(ttt n); printf(ttt n); printf(ttt n); printf(ttt 谢谢使用n); printf(ttt 再见 n); printf(ttt n); printf(ttt n); printf(ttt nn); printf(nnnnnnnn); return;struct workerint num;/*- 员工号*/char name10;/*- 姓名*/char sex10;/*- 性别*/int ag

7、e;/*- 年龄*/char position10;/*-职位*/int pay;/*-工资*/workN; 员工信息输入函数void input_worker() /*定义一个员工信息输入的函数*/int n,i;printf(输入员工数:);scanf(%d,&n);FILE *fp; /*定义一个指向员工信息数组的指针文件*/struct worker *p; /*定义员工数组及指向员工的指针*/if(fp=fopen(workermessage,wb)=NULL) /*创建一个存储员工信息的文件*/printf(不能打开该文件);exit(0);for(p=work,i=1;pnum)

8、;printf(n);printf(输入姓名:);scanf(%s,p-name);printf(n);printf(输入性别:);scanf(%s,p-sex);printf(n);printf(输入年龄:);scanf(%d,&p-age);printf(n);printf(输入职位:);scanf(%s,p-position);printf(n);printf(输入工资:);scanf(%d,&p-pay);printf(nnn);fwrite(p,sizeof(struct worker),1,fp);fclose(fp);printf(输入完成nnnnn); 提取员工数int loa

9、d()/*定义一个能获取员工数的函数*/FILE *fp;/*定义指针文件*/int i;struct worker *p=work;/*定义一个指向结构体数组的指针*/if(fp=fopen(workermessage,rb)=NULL)printf(不能打开该文件);exit(0);for(i=0;feof(fp)=0;i+)fread(p,sizeof(struct worker),1,fp);fclose(fp);return(i-1);/*以返还的形式找到员工数*/ 文件存储函数void save_file(int n)/*定义一个文件储存函数*/int i;FILE *fp;if(

10、fp=fopen(workermessage,wb)=NULL) /*创建一个存储员工信息的文件*/printf(不能打开该文件);exit(0);for(i=0;in;i+)fwrite(&worki,sizeof(struct worker),1,fp);fclose(fp); 员工信息浏览函数void message_output()/*员工信息输出函数*/int n;/*定义一个员工数变量*/n=load();/*将员工数赋值给n*/struct worker *p;/*定义员工数组及指向员工的指针*/FILE *fp;if(fp=fopen(workermessage,rb)=NUL

11、L)/*打开存储员工信息的文件*/printf(不能打开该文件);exit(0);printf(ntt员工号t姓名t性别t年龄t职位t工资n);for(p=work;pnum,p-name,p-sex,p-age,p-position,p-pay);/*输出员工信息*/fclose(fp); 员工信息添加函数void add_worker()/*定义一个员工信息添加函数*/int n,m,i,j=1; /*定义添加的员员工数*/m=load();printf(输入添加多少名员工:);scanf(%d,&n); /*输入员工数*/FILE *fp; /*定义一个指向员工信息数组的指针文件*/st

12、ruct worker *p; /*定义员工数组及指向员工的指针*/if(fp=fopen(workermessage,ab)=NULL) /*创建一个存储员工信息的文件*/printf(不能打开该文件);exit(0);for(p=work+m,i=m;inum);printf(n);printf(输入姓名:);scanf(%s,p-name);printf(n);printf(输入性别:);scanf(%s,p-sex);printf(n);printf(输入年龄:);scanf(%d,&p-age);printf(n);printf(输入职位:);scanf(%s,p-position)

13、;printf(n);printf(输入工资:);scanf(%d,&p-pay);printf(n);fwrite(p,sizeof(struct worker),1,fp);fclose(fp);printf(输入完成nnnnn); 员工信息删除函数void dele_worker()/*定义员工信息删除函数*/int n,m,i,j,flag,x;/*定义员工数变量、选择数字、标志*/char wk10;/*定义一个数组用于提醒输入错误*/struct worker *p;/*定义结构体指针*/n=load();/*调用提取员工数的函数*/message_output();/*调用员工信

14、息输出函数*/p=work;/*指针p指向结构体数组*/loop:printf(输入要删除的姓名);scanf(%s,wk);for(i=0;iname,wk)=0)printf(找到此人n此人原本信息:n);flag=1;printf(ntt员工号t姓名t性别t年龄t职位t工资n);printf(ntt%dt%st%st%dt%st%dn,(p+i)-num,(p+i)-name,(p+i)-sex,(p+i)-age,(p+i)-position,(p+i)-pay);printf(n是否删除?n是 请按1 n否请 按0 n);scanf(%d,&m);if(m=1)for(j=i;jnu

15、m=(p+j+1)-num;strcpy(p+j)-name,(p+(j+1)-name);strcpy(p+j)-sex,(p+j+1)-sex);(p+j)-age,(p+j+1)-age;strcpy(p+j)-position,(p+j+1)-position);(p+j)-pay,(p+j+1)-pay;n=load();*/ workj.num=workj+1.num; strcpy(workj.name,workj+1.name);strcpy(workj.sex,workj+1.sex);workj.age=workj+1.age; strcpy(workj.position,

16、workj+1.position);workj.pay=workj+1.pay;if(flag!=1)printf(tttt查无此人!n);if(flag=1)n=n-1;save_file(n);/*保存文件*/message_output();/*刷新数组*/printf(继续删除请按(1)n退出请按(2)n);/*选择菜单*/scanf(%d,&x);switch(x)case 1:goto loop;break;case 2:printf(谢谢使用!n);break; 员工信息查询函数void fine()int m;/*定义变量提示输入*/char s10;/*定义一个数组用于提醒输

17、入*/printf(按员工号查询请按 1: nn按姓名查询请按 2: nn退出查询请按 3:n );for( ; ; )/*防止输入错误*/scanf(%s,s);/*输入数字*/m=atoi(s);/*字符转换*/if(m3)printf(ttt输入错误!请重新输入1-3n);elsebreak;switch(m)/*选择查询方式*/case 1:fine_num();/*调用按员工号查询函数*/break;case 2:fine_name();/*调用按姓名查询函数*/break;case 3:printf(谢谢使用!n);break;按员工号查询函数void fine_num()int

18、m,n,q,x,flag;/*定义m存储员工号,n表示员工数,q提醒输入*/char s10;/*用于提醒输入*/struct worker *p;/*结构体指针*/n=load();/*调用提取数组地址函数*/message_output();/*调用信息输出函数*/system(cls);/*清屏*/loop:printf(输入要查询的员工号: );/*返回输入*/scanf(%d,&m);for(p=work;pnum)/*如果查到的数组与输入的数组相同*/printf(此员工信息如下:nn);printf(ntt员工号t姓名t性别t年龄t职位t工资n);printf(ntt%dt%st

19、%st%dt%st%dn,p-num,p-name,p-sex,p-age,p-position,p-pay);flag=1;printf(查询下一个请按(1)n返回上一级请按(2)n退出请按(3)n);scanf(%d,&x);system(cls);switch(x) /*用于选择是否继续查询*/case 1:goto loop;break;case 2:fine();break;case 3:printf(谢谢使用!n);break;if(flag!=1)printf(查无此人!n);for( ; ; )/*用于防止输入错误*/printf(重新输入请按(1)退出请按(2) n);sca

20、nf(%s,s);/*输入数字*/q=atoi(s);if(q2)printf(输入错误!);elsebreak;switch(q) /*用于选择是否继续查询*/case 1:goto loop;break;case 2:printf(谢谢使用!n);break; 按姓名查询函数void fine_name()int n,m,flag,x; /* 定义n员工数,m提醒输入*/char name10,s10;/*定义数组name存储需要查找的姓名,s用于提醒输入*/struct worker *p;n=load();/*调用提取数组地址函数*/message_output();system(cl

21、s);loop:printf(输入要查询的姓名: );/*返回输入*/scanf(%s,name);for(p=work;pname,name)=0)/*如果结构体数组与输入的数组相同,输出该数组*/printf(此员工信息如下:nn);printf(ntt员工号t姓名t性别t年龄t职位t工资n);printf(ntt%dt%st%st%dt%st%dn,p-num,p-name,p-sex,p-age,p-position,p-pay);flag=1;printf(查询下一个请按(1)nn返回上一级请按(2)nn退出请按(3)n);scanf(%d,&x);system(cls);/*清屏*

22、/switch(x) /*用于选择是否继续查询*/case 1:goto loop;break;case 2:fine();break;case 3:printf(谢谢使用!n);break;if(flag!=1)printf(查无此人!);for( ; ; )/*防止输入错误*/printf(n重新输入请按(1)退出请按(2) n);scanf(%s,s);/*输入数字*/m=atoi(s);if(m2)printf(输入错误!n);elsebreak;switch(m)/*选择是否返回*/case 1:goto loop;break;case 2:break; 按年龄排序函数void so

23、rt_age()int n,i,j,x,y,m;/*定义员工数n,中间变量t,和循环变量i、j、y用于选择菜单*/struct worker t;/*中间变量*/n=load();/*调用函数赋值员工数*/message_output();system(cls);loop:printf(ttt从大到小排序请按(1)nnttt从小到大排序请按(2)nn);scanf(%d,&m);switch(m)case 1: for(i=0;in-1;i+)/*二次循环大到小排序*/for(x=i+1;xworki.age)t=workx;workx=worki;worki=t;break;case 2:/

24、*二次循环小到大排序*/for(i=0;in-1;i+)for(x=1+i;xn;x+)if(workx.ageworki.age)t=workx;workx=worki;worki=t;break;printf(ntt员工号t姓名t性别t年龄t职位t工资n);for(j=0;jn;j+)/*输出排序后的信息*/printf(ntt%dt%st%st%dt%st%dn,workj.num,workj.name,workj.sex,workj.age,workj.position,workj.pay);printf(返回上一级请按 (1) n返回排序方式选择请按(2)n退出请按(3)nn);sc

25、anf(%d,&y);system(cls);/*清屏*/switch(y)/*选择是否返回*/case 1:goto loop;break;case 2:sort();break;case 3:printf(ttt谢谢使用n);break; 按工资排序函数void sort_pay()int n,i,j,m,x,y;/*定义员工数n,中间变量t,循环变量i,j*/struct worker t;/*中间变量*/n=load();/*赋值员工数*/message_output();/*用于刷新数组内容*/system(cls);/*清屏*/loop:printf(ttt从大到小排序请按(1)n

26、nttt从小到大排序请按(2)nn);scanf(%d,&m);switch(m)case 1: for(i=0;in-1;i+)/*二次循环大到小排序*/for(x=i+1;xworki.pay)t=workx;workx=worki;worki=t;break;case 2:/*二次循环小到大排序*/for(i=0;in-1;i+)for(x=1+i;xn;x+)if(workx.ageworki.age)t=workx;workx=worki;worki=t;break;printf(ntt员工号t姓名t性别t年龄t职位t工资n);for(j=0;j3|m1)printf(tttt输入错误!n);elsebreak;switch(m)/*选择排序方式*/case 1:sort_age();/*按年龄*/break;case 2:sort_pay();/*按工资*/break; case 3:printf(谢谢使用!n);break; 修改信息函数/*void xiugai()int m;printf(修改员工号请按(1)n修改姓名请按(2)n修改年龄请按(3)n);printf(修改职位请按(4)n修改工资请按(5)n返回主菜单请按(6);scanf(%d,&m);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com