朱芳祥-人力资源开发与管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

本科生C语言课程设计论文课程名称C语言课程设计教师姓名朱莉本科生姓名李百蝉本科生学号20111002986本科生专业地质学所在院系地球科学学院日期:2013年12月26日目录目录...................................................................................................................................................21.课程论文题目...................................................................................................................................32.程序设计思路...................................................................................................................................33.功能模块图.......................................................................................................................................44.程序代码...........................................................................................................................................45.程序运行结果.................................................................................................................................306.课程设计总结.................................................................................................................................327.致谢................................................................................................................................................328.参考文献.........................................................................................................................................32一课程论文题目某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;(2)查询功能:能根据编号和姓名进行查询;(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;(4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息;(5)排序功能:按照年龄、来院时间进行排序;(6)保存功能:能对输入的数据进行相应的存储;二程序设计思路根据题目要求,人事信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将M定为2000,也即最多可储存的职工人数为2000;根据以上需求分析,将程序分成以下几个模块:1.添加和删除****添加人员信息并保存(1)****按名称和编号查询与删除记录并保存(2)2.查询与编辑****按名称和编号查询****重新编辑信息并保存3.统计****统计在职人数****统计党员人数****统计女工人数****统计硕士以上学历和副教授以上职称人数****将统计得到的信息保存在worker3.txt文件中4.排序****按年龄进行排序(1)****按来院时间进行排序(2)三功能模块图四程序代码1、主函数:主函数设计的比较简单,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图如下程序开始显示一系列功能根据n的值调用个功能模块函数结束输入n,判断是否是0~4NYmain(){intn,w;do{puts(\t\t***********************高校人事管理*************************\n\n\n);puts(\t\t\t\t1.添加或删除\n);puts(\t\t\t\t2.查询与编辑\n);puts(\t\t\t\t3.统计\n);puts(\t\t\t\t4.排序\n);puts(\t\t\t\t5.退出\n);puts(\t\t*************************************************************\n);printf(选择你要的服务(1-5):[]\b\b);scanf(%d,&n);if(n1||n5){w=1;getchar();}elsew=0;}while(w==1);switch(n){case1:retify();main();break;case2:sear_edit();main();break;case3:stat();main();break;case4:row();main();break;case5:exit(0);break;}}structworker{intnum;charname[20];charsex[10];intold;charzhicheng[20];charzhiwei[20];charmianmao[20];charxueli[20];intcome_time;intwork_time;intleibie;}wor[N];1.添加与删除模块,此模块有(1),(2)两个模块构成。voidretify(){intn,w;do{puts(\t\t***************删除或添加人员的信息****************\n\n\n\n\n);puts(\t\t\t\t1.添加);puts(\t\t\t\t2.删除);printf(请选择服务(1-2):[]\b\b);scanf(%d,&n);if(n1||n2){w=1;getchar();}elsew=0;}while(w==1);switch(n){case1:tianjia();break;case2:shanchu();break;}}(1).添加模块:开始输入你要添加人的信息并且显示在屏幕中对原文件进行添加并保存voidtianjia(){FILE*fp;inti,number;structworkerwor_t[N];printf(您要添加的人的人数:);scanf(%d,&number);printf(输入添加人的信息:\n);for(i=0;inumber;i++){printf(编号:\n);scanf(%d,&wor_t[i].num);printf(姓名:\n);scanf(%s,wor_t[i].name);printf(性别:\n);scanf(%s,wor_t[i].sex);printf(年龄:\n);scanf(%d,&wor_t[i].old);printf(职称:\n);scanf(%s,wor_t[i].zhicheng);printf(职位:\n);scanf(%s,wor_t[i].zhiwei);printf(政治面貌:\n);scanf(%s,wor_t[i].mianmao);printf(学历:\n);scanf(%s,wor_t[i].xueli);printf(来院时间:\n);scanf(%d,&wor_t[i].come_time);printf(在院工作时间:\n);scanf(%d,&wor_t[i].work_time);printf(在职与否:在职请按1,不在职请按2\n);scanf(%d,&wor_t[i].leibie);printf(您刚才输入的人的信息\n);printf(%d%s%s%d%s%s%s%s%d%d%d\n,wor_t[i].num,wor_t[i].name,wor_t[i].sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao,wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie);}if((fp=fopen(D:\\txt\\worker.txt,a+))==NULL){printf(\nCannotopenfile\n);exit(0);}for(i=0;inumber;i++){fprintf(fp,\n%d%s%s%d%s%s%s%s%d%d%d,wor_t[i].num,wor_t[i].name,wor_t[i].sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao,wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie);}fclose(fp);}(2).删除模块该模块的功能是根据编号和姓名先查询出该人的信息,然后从原文件中删除该人的信息。流程图如下,程序voidshanchu(){FILE*fp,*fp1;inti,number,k,j,m;structworkerworker1[M],worker2[M];inta[N];charb[N][20];printf(您要删除的人的人数:\n);scanf(%d,&number);for(i=0;inumber;i++){printf(输入删除人的信息的编号和姓名:\n);printf(输入删除人的编号:\n);scanf(%d,&a[i]);printf(输入删除人的姓名:\n);scanf(%s,b[i]);printf(您刚才输入的人的信息的编号和姓名:\n);printf(%d%s\n,a[i],b[i]);}if((fp=fopen(worker.txt,r))==NULL){printf(\nCannotopenfile\n);getch();exit(0);}for(i=0;!feof(fp);i++)开始输入要删除记录的编号和姓名该人存在与否?显示:该人在????删除原文件中该人的信息并且保存YNfscanf(fp,%d%s%s%d%s%s%s%s%d%d%d\n,&worker2[i].num,worker2[i

1 / 46
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功