C语言课程设计-人事管理管理系统Ⅱ.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言课程设计-人事管理管理系统Ⅱ.pdf》由会员分享,可在线阅读,更多相关《C语言课程设计-人事管理管理系统Ⅱ.pdf(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、人事管理管理系统人事管理管理系统要求某高校主要人员有:在职人员行政人员、教师、一般员工、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;(2)查询功能:能根据编号和姓名进行查询;(3)编辑功能高级:根据查询对相应的记录进行修改,并存储;(4)统计功能:能根据多种参数进行人员的统计在职人数、党员人数、女工人数、高学历高职称人数硕士学位以上或者副教授以上 ,统计要求同时显示被统计者的信息;(5)排序功能:按照年龄、来
2、院时间进行排序;(6)保存功能:能对输入的数据进行相应的存储;一.需求分析:根据题目要求,人事信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将RS 定为 100,也即最多可储存的职工人数为100;二总体设计:根据以上需求分析,将程序分成以下几个模块:1
3、 1 浏览浏览:*浏览文件浏览文件(0)(0)2 2 删除删除*删除记录删除记录(1)(1)3 3 查询查询*按名称查询按名称查询(2)(2)*按编号查询按编号查询(3)(3)4 4 编辑编辑*查询名称编辑信息查询名称编辑信息(4)(4)*查询编号编辑信息查询编号编辑信息(5)(5)5 5 统计统计*统计在职人数统计在职人数(6)(6)*统计党员人数统计党员人数(7)(7)*统计女工人数统计女工人数(8)(8)*统计硕士以上学历人数统计硕士以上学历人数(9)(9)*统计副教授以上职称人数统计副教授以上职称人数(10)(10)6 6 排序排序*按年龄进行排序按年龄进行排序(11)(11)*按来院
4、时间进行排序按来院时间进行排序(12)(12)7 7 保存保存*将输入的记录进行保存将输入的记录进行保存(13)(13)1三 详细设计;1、主函数:主函数设计的比拟简单,只提供输入、处理和输出局部的函数调用。其中各功能模块用菜单方式选择。其流程图如下程程开始显示一系列功能N输入 n,判断是否是 014Y根据 n 的值调用个功能模块函数结束void main()void main()dodo int n;int n;puts(*n);puts(*n);puts(*puts(*人事管理系统人事管理系统*n);*n);puts(*puts(*请选择以下选项后面的数字输入以确定您要进行的操作请选择以下
5、选项后面的数字输入以确定您要进行的操作*n);*n);puts(puts(选项选项:);:);puts(puts(浏览浏览:);:);puts(puts(*浏览文件浏览文件(0);(0);puts(puts(删除删除););puts(puts(*删除记录删除记录(1);(1);puts(puts(查询查询););puts(puts(*按名称查询按名称查询(2);(2);puts(puts(*按编号查询按编号查询(3);(3);puts(puts(编辑编辑););puts(puts(*查询名称编辑信息查询名称编辑信息(4);(4);puts(puts(*查询编号编辑信息查询编号编辑信息(5);(
6、5);puts(puts(统计统计););序序2puts(puts(*统计在职人数统计在职人数(6);(6);puts(puts(*统计党员人数统计党员人数(7);(7);puts(puts(*统计女工人数统计女工人数(8);(8);puts(puts(*统计硕士以上学历人数统计硕士以上学历人数(9);(9);puts(puts(*统计副教授以上职称人数统计副教授以上职称人数(10);(10);puts(puts(排序排序););puts(puts(*按年龄进行排序按年龄进行排序(11);(11);puts(puts(*按来院时间进行排序按来院时间进行排序(12);(12);puts(puts
7、(保存保存););puts(puts(*将输入的记录进行保存将输入的记录进行保存(13);(13);puts(puts(退出退出););puts(puts(*退出退出(14);(14);printf(printf(请输入选项号请输入选项号:);:);scanf(%d,&n);scanf(%d,&n);switch(n)switch(n)case 0:browse();break;case 0:browse();break;case 1:dele();break;case 1:dele();break;case 2:searname();break;case 2:searname();break
8、;case 3:searnum();break;case 3:searnum();break;case 4:channame();break;case 4:channame();break;case 5:channum();break;case 5:channum();break;case 6:sumzzrs();break;case 6:sumzzrs();break;case 7:sumdyrs();break;case 7:sumdyrs();break;case 8:sumngrs();break;case 8:sumngrs();break;case 9:sumssysxlrs();
9、break;case 9:sumssysxlrs();break;case 10:sumfjsyszhichers();break;case 10:sumfjsyszhichers();break;case 11:sortage();break;case 11:sortage();break;case 12:sortlysj();break;case 12:sortlysj();break;case 13:save();break;case 13:save();break;case 14:return;case 14:return;default:printf(default:printf(输
10、入错误输入错误););while(1);while(1);2 2、各功能设计模块各功能设计模块(0 0)浏览模块浏览模块该模块的功能是显示文件的所有信息,流程图如下该模块的功能是显示文件的所有信息,流程图如下3显示所有信息按任意键显示下一屏按任意键继续程序程序void browse()void browse()int i=0,j;int i=0,j;if(fp=fopen(renshi.txt,r)=NULL)if(fp=fopen(renshi.txt,r)=NULL)printf(cannot open this filen);printf(cannot open this filen);
11、return;return;while(!feof(fp)while(!feof(fp)fscanf(fp,%s%s%s%d%s%d%s%d%s%d%s,peri.num,peri.name,peri.sex,&pfscanf(fp,%s%s%s%d%s%d%s%d%s%d%s,peri.num,peri.name,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb)eri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&per
12、i.zgxl,peri.rzsj,&peri.lysj,peri.rylb);i+;i+;printf(nnprintf(nn 当前文件内容是当前文件内容是:nn);:nn);for(j=0;ji;j+)for(j=0;ji;j+)printf(%s%s%s%d%s%d%s%d%s%d%sn,perj.num,perj.name,perj.sex,perprintf(%s%s%s%d%s%d%s%d%s%d%sn,perj.num,perj.name,perj.sex,perj.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,p
13、erj.lysj,perj.rylb);j.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb);fclose(fp);fclose(fp);printf(n);printf(n);printf(nnnpress any key to continuennn);printf(nnnpress any key to continuennn);getchar();getchar();printf(n);printf(n);(1 1)删除模块删除模块该模块的功能是根据编号删除记录的信息,删除空行,后
14、面的前移,浏览。流程图如下该模块的功能是根据编号删除记录的信息,删除空行,后面的前移,浏览。流程图如下4开始输入要删除记录的编号删除记录Y是否找到记录?N显示没有找到程序程序void dele()void dele()int i=0,j,k=0;int i=0,j,k=0;char num10;char num10;printf(printf(请输入您要删除的记录的编号请输入您要删除的记录的编号:);:);scanf(%s,num);scanf(%s,num);if(fp=fopen(renshi.txt,r)=NULL)if(fp=fopen(renshi.txt,r)=NULL)print
15、f(cannot open this filen);printf(cannot open this filen);return;return;while(!feof(fp)while(!feof(fp)fscanf(fp,%s%s%s%d%s%d%s%d%s%d%s,peri.num,peri.name,peri.sex,&peri.fscanf(fp,%s%s%s%d%s%d%s%d%s%d%s,peri.num,peri.name,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.
16、lysj,peri.rylb);age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb);i+;i+;fclose(fp);fclose(fp);if(fp=fopen(renshi.txt,w)=NULL)if(fp=fopen(renshi.txt,w)=NULL)printf(cannot open this filen);printf(cannot open this filen);return;return;for(j=0;ji;j+)for(j=0;ji;j+)if(strcmp
17、(perj.num,num)!=0)if(strcmp(perj.num,num)!=0)fprintf(fp,%s%s%s%d%s%d%s%d%s%d%sn,perj.num,perj.name,perj.sex,perj.agfprintf(fp,%s%s%s%d%s%d%s%d%s%d%sn,perj.num,perj.name,perj.sex,perj.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb);e,perj.zhiwu,perj.zhiche,perj.zzmm,perj
18、.zgxl,perj.rzsj,perj.lysj,perj.rylb);fclose(fp);fclose(fp);trim();trim();5browse();browse();printf();printf();getchar();getchar();(2 2)按名称查询模块按名称查询模块该模块的功能是根据名字查询记录。流程如下该模块的功能是根据名字查询记录。流程如下开始输入要查询记录的名字显示记录Y是否找到记录?N显示没有找到程序程序void searname()void searname()int i=0,j,k=0;int i=0,j,k=0;char name8;char na
19、me8;printf(printf(请输入您要查询的记录的姓名请输入您要查询的记录的姓名:);:);scanf(%s,name);scanf(%s,name);if(fp=fopen(renshi.txt,a+)=0)if(fp=fopen(renshi.txt,a+)=0)printf(cannot open this filen);printf(cannot open this filen);return;return;while(!feof(fp)while(!feof(fp)fscanf(fp,%s%s%s%d%s%d%s%d%s%d%s,peri.num,peri.name,peri
20、.sex,&peri.fscanf(fp,%s%s%s%d%s%d%s%d%s%d%s,peri.num,peri.name,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb);age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb);i+;i+;printf(printf(您要的信息如下您要的信息如下:n);:n);for(j=0;ji;j+)for(
21、j=0;ji;j+)if(strcmp(perj.name,name)=0)if(strcmp(perj.name,name)=0)printf(%s%s%s%d%s%d%s%d%s%d%sn,perj.num,perj.name,perj.sex,perj.agprintf(%s%s%s%d%s%d%s%d%s%d%sn,perj.num,perj.name,perj.sex,perj.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb);e,perj.zhiwu,perj.zhiche,p
22、erj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb);k+;k+;6 if(k=0)if(k=0)printf(printf(没有您要的信息没有您要的信息););return;return;fclose(fp);fclose(fp);browse();browse();printf();printf();getchar();getchar();(3 3)按编号查询模块按编号查询模块该模块功能是根据记录编号查询记录。流程路如下该模块功能是根据记录编号查询记录。流程路如下开始输入要查询记录的编号显示记录Y是否找到记录?N显示没有找到(4 4)程序程序v
23、oid searnum()void searnum()int i=0,j,k=0;int i=0,j,k=0;char num10;char num10;printf(printf(请输入您要查询的记录的编号请输入您要查询的记录的编号:);:);scanf(%s,num);scanf(%s,num);if(fp=fopen(renshi.txt,r+)=NULL)if(fp=fopen(renshi.txt,r+)=NULL)printf(cannot open this filen);printf(cannot open this filen);return;return;while(!fe
24、of(fp)while(!feof(fp)fscanf(fp,%s%s%s%d%s%d%s%d%s%d%s,peri.num,peri.name,peri.sex,&peri.fscanf(fp,%s%s%s%d%s%d%s%d%s%d%s,peri.num,peri.name,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb);age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri
25、.lysj,peri.rylb);i+;i+;7printf(printf(您要的信息如下您要的信息如下:n);:n);for(j=0;ji;j+)for(j=0;ji;j+)if(strcmp(perj.num,num)=0)if(strcmp(perj.num,num)=0)printf(%s%s%s%d%s%d%s%d%s%d%sn,perj.num,perj.name,perj.sex,perj.agprintf(%s%s%s%d%s%d%s%d%s%d%sn,perj.num,perj.name,perj.sex,perj.age,perj.zhiwu,perj.zhiche,per
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 人事管理 管理 系统
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内