- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言课程设计
——人事管理系统
题目要求:
人事管理管理系统
[要求]
某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。
添加删除功能:能根据学院人事的变动情况,添加删除记录;
查询功能:能根据编号和姓名进行查询;
编辑功能(高级):根据查询对相应的记录进行修改,并存储;
统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息;
排序功能:按照年龄、来院时间进行排序;
保存功能:能对输入的数据进行相应的存储;
需求分析:
根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件存贮,这样的方法在一定程度上提高了对数据处理的灵活性,较容易理解,但存在处理中遇到以外情况而丢失数据的风险,另外当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,基本上能满足要求;
总体设计:
根据以上需求分析,将程序分成以下几个模块:
新建数据文件(build new data);
添加记录(add data);
删除记录(delete data);
按工号搜索(search by number);
按姓名搜索(search by name);
浏览全部数据(browse all);
修改数据(modify the data);
排序功能(order the volume);
统计功能(data a volume);
系统功能模块图如下:
详细设计;
主函数:
〈1〉需求分析:
为使系统执行完每部分功能后能够方便的回到系统主界面,main()函数设计的较简单,只包含一个menu()函数,其余的全部功能都通过menu()函数调用来实现,并通过menu()函数的递归调用实现返回主界面的功能。
main()函数定义如下:
main()
{menu();}
而menu()定义如下:
〈2〉流程图:
menu()
{int n,w1;
do
{printf(\n\t\t\t\tMENU\n);
printf(\t\t0\tbuild new data\n\n);
printf(\t\t1\tdelete data\n\n);
printf(\t\t2\tadd data\n\n);
printf(\t\t3\tsearch by number\n\n);
printf(\t\t4\tsearch by name\n\n);
printf(\t\t5\tbrowse all\n\n);
printf(\t\t6\tmodify the data\n\n);
printf(\t\t7\torder the volume\n\n);
printf(\t\t8\tdata a volume\n\n);
printf(\t\t9\texit\n\n);
printf(\tplease choice and enter a number [ ]\b\b);
scanf(%d,n);
if(n0||n8)
{w1=1;
getchar();}
else w1=0;
}
while(w1==1);
switch(n)
{case 0:build();break; /*********调用新建数据文件函数*******/
case 1:del();break; /*********调用删除数据函数***********/
case 2:add();break; /*********调用添加数据函数***********/
case 3:snum();break; /*********调用按工号搜索函数*********/
case 4:sname();break; /*********调用按姓名搜索函数*********/
case 5:browse();break; /*********调用浏览数据函数************/
case 6:modify();break; /*********调用修改数据函数************/
case 7:order();break; /
文档评论(0)