C语言课程设计(论文)-高校人事管理系统设计36113.pdf
《C语言课程设计(论文)-高校人事管理系统设计36113.pdf》由会员分享,可在线阅读,更多相关《C语言课程设计(论文)-高校人事管理系统设计36113.pdf(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 一、题目要求.2 1、系统功能的基本要求.错误!未定义书签。2、提示.错误!未定义书签。二、需求分析.3 三、总体设计.3 四、详细设计.4 1、主函数.4 2、各模块设计.5 (0)浏览模块-6(1)删除模块-错误!未定义书签。(2)查询模块-8 (2.1)按编号查询模块-9 (2.2)按姓名查询模块-9(3)编辑模块.错误!未定义书签。(4)统计模块.错误!未定义书签。(4.1)在职人数统计模块-11 (4.2)党员人数统计模块-11 (4.3)女工人数统计模块-11 (4.4)高学历高职称人数统计模块-11(5)排序模块.错误!未定义书签。(5.1)按年龄排序模块-16 (5.2)按来
2、院时间模块-16(6)保存模块.错误!未定义书签。五、上机操作.18 六、完整程序.18 七、运行结果截图.33 八、总结与感想.33 一、题目要求 某高校主要人员有:在职人员(行政人员、教师、一般人员)、退休人员和临时工。现在需要储存这些人员的人事档案信息,内容包括编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。(1)添加删除功能:能根据学院人事的变动情况,添加删除记录。(2)查询功能:能根据编号和姓名进行查询。(3)编辑功能(高级):根据查询对相应的记录进行修改并储存。(4)统计功能:能根据多种参数进行人员的统计(在职人数
3、、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息。(5)排序功能:按照年龄、来院时间进行排序。(6)保存功能:能对输入的数据进行相应的储存。二、需求分析 根据题目要求,需要把仪器仪表信息的的数据存储在文件里,所以需要提供文件的输入输出等操作;在程序中要提供修改,删除,查找等操作;另外还应该提供键盘式选择菜单实现功能选择。三、总体设计 人事管理系统 删除模块 查询模块 编辑模块 统计模块 排序模块 保存模块 按编号查询 按姓名查询 在职人数统计 党员人数统计 女工人数统计 高学历高职称统计 按年龄排序 按来院时间排序 四、详细设计 1、主函数
4、 主函数只提供输入输出和功能处理的函数调用。其各功能模块用菜单方式选择。将 main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。【程序】*主函数*/int main()do int cz;puts(*n);puts(*人事管理系统*n);puts(*请选择以下选项后面的数字输入以确定您要进行的操作*n);puts(选项:);puts(浏览:);puts(*浏览文件(0);puts(删除);puts(*删除记录(1);puts(查询);puts(*按名称查询(2);puts(*按编号查询(3);puts(编辑);puts(*
5、查询名称编辑信息(4);puts(*查询编号编辑信息(5);puts(统计);puts(*统计在职人数(6);puts(*统计党员人数(7);puts(*统计女工人数(8);puts(*统计硕士以上学历人数(9);puts(*统计副教授以上职称人数(10);puts(排序);puts(*按年龄进行排序(11);puts(*按来院时间进行排序(12);puts(保存);puts(*将输入的记录进行保存(13);puts(退出);puts(*退出(14);printf(请输入选项号:);scanf(%d,&cz);switch(cz)case 0:blose();break;case 1:dele
6、();break;case 2:searname();break;case 3:searnum();break;case 4:channame();break;case 5:channum();break;case 6:sumzzrs();break;case 7:sumdyrs();break;case 8:sumngrs();break;case 9:sumssysxlrs();break;case 10:sumfjsyszhichers();break;case 11:sortage();break;case 12:sortlysj();break;case 13:save();brea
7、k;case 14:return 0;default:printf(对不起,您没有按要求输入);while(1);2、各模块设计(0)浏览模块 void blose()int i=0,j;if(fp=fopen(renshi.txt,r)=NULL)printf(cannot open this filen);return;while(!feof(fp)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.r
8、zsj,&peri.lysj,peri.rylb);i+;printf(nn当前文件内容是:nn);for(j=0;ji;j+)printf(%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);fclose(fp);printf(n);printf(nnnpress any key to continuennn);getchar();printf(n);(1)删除模块 void
9、dele()int i=0,j,k=0;char num10;printf(请输入您要删除的记录的编号:);scanf(%s,num);if(fp=fopen(renshi.txt,r)=NULL)printf(cannot open this filen);return;while(!feof(fp)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);
10、i+;fclose(fp);if(fp=fopen(renshi.txt,w)=NULL)printf(cannot open this filen);return;for(j=0;ji;j+)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.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb);fclose(fp);trim();blose();prin
11、tf();getchar();(2)查询模块(2.1)按编号查询 void searname()int i=0,j,k=0;char name8;printf(请输入您要查询的记录的姓名:);scanf(%s,name);if(fp=fopen(renshi.txt,r+)=NULL)printf(cannot open this filen);return;while(!feof(fp)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
12、,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb);i+;printf(您要的信息如下:n);for(j=0;ji;j+)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.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb);k+;if(k=0)printf(没有您要的信息);return;fclose(fp);blose()
13、;printf();getchar();(2.2)按姓名查询 void searnum()int i=0,j,k=0;char num10;printf(请输入您要查询的记录的编号:);scanf(%s,num);if(fp=fopen(renshi.txt,r+)=NULL)printf(cannot open this filen);return;while(!feof(fp)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,&pe
14、ri.zgxl,peri.rzsj,&peri.lysj,peri.rylb);i+;printf(您要的信息如下:n);for(j=0;ji;j+)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.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb);k+;if(k=0)printf(没有您要的信息);return;fclose(fp);blose();print
15、f();getchar();(3)编辑模块 void channame()int i=0,j,k;char name8;printf(请输入您要编辑的记录的姓名:);scanf(%s,name);if(fp=fopen(renshi.txt,r)=NULL)printf(cannot open this filen);return;while(!feof(fp)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,pe
16、ri.rzsj,&peri.lysj,peri.rylb);i+;fclose(fp);trim();if(fp=fopen(renshi.txt,w)=NULL)printf(cannot open this filen);return;printf(请输入您要修改的项所对应的数字:(编号对应的数字为,其他项依次为,3,4.);scanf(%d,&k);printf(请输入这一项修改后的值);for(j=0;ji;j+)if(strcmp(perj.name,name)=0)switch(k)case 1:scanf(%s,perj.num);break;case 2:scanf(%s,pe
17、rj.name);break;case 3:scanf(%s,perj.sex);break;case 4:scanf(%d,&perj.age);break;case 5:scanf(%s,perj.zhiwu);break;case 6:scanf(%d,&perj.zhiche);break;case 7:scanf(%s,perj.zzmm);break;case 8:scanf(%d,&perj.zgxl);break;case 9:scanf(%s,perj.rzsj);break;case 10:scanf(%d,&perj.lysj);break;case 11:scanf(%
18、s,perj.rylb);break;case 12:return;default:printf(输入错误);for(j=0;ji;j+)fprintf(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);fclose(fp);trim();blose();printf();getchar();void channum()int i=0,j,k;char num10;pri
19、ntf(请输入您要编辑的记录的编号:);scanf(%s,num);if(fp=fopen(renshi.txt,r)=NULL)printf(cannot open this filen);return;while(!feof(fp)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);i+;fclose(fp);if(fp=fopen(renshi.t
20、xt,w)=NULL)printf(cannot open this filen);return;printf(请输入您要修改的项所对应的数字:(编号对应的数字为,其他项依次为,3,4.);scanf(%d,&k);printf(请输入这一项修改后的值);for(j=0;ji;j+)if(strcmp(perj.num,num)=0)switch(k)case 1:scanf(%s,perj.num);break;case 2:scanf(%s,perj.name);break;case 3:scanf(%s,perj.sex);break;case 4:scanf(%d,&perj.age)
21、;break;case 5:scanf(%s,perj.zhiwu);break;case 6:scanf(%d,&perj.zhiche);break;case 7:scanf(%s,perj.zzmm);break;case 8:scanf(%d,&perj.zgxl);break;case 9:scanf(%s,perj.rzsj);break;case 10:scanf(%d,&perj.lysj);break;case 11:scanf(%s,perj.rylb);break;case 12:return;default:printf(输入错误);for(j=0;ji;j+)fpri
22、ntf(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);fclose(fp);trim();blose();printf();getchar();(4)统计模块(4.1)在职人数统计 void sumzzrs()int i=0,j;if(fp=fopen(renshi.txt,r)=NULL)printf(cannot open this filen);return;w
23、hile(!feof(fp)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);i+;if(i=0)printf(这是一个空文件);return;printf(在职人员数量是%d人 n,i);for(j=0;ji;j+)printf(%s%s%s%d%s%d%s%d%s%d%sn,perj.num,perj.name,perj.sex,perj.age,
24、perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb);fclose(fp);trim();blose();printf();getchar();(4.2)党员人数统计 void sumdyrs()int i=0,j,count=0;if(fp=fopen(renshi.txt,r)=NULL)printf(cannot open this filen);return;while(!feof(fp)fscanf(fp,%s%s%s%d%s%d%s%d%s%d%s,peri.num,peri.name,p
25、eri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb);i+;if(i=0)printf(这是一个空文件);return;for(j=0;ji;j+)if(strcmp(perj.zzmm,党员)=0)printf(%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,p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 论文 高校 人事管理系统 设计 36113
限制150内