人事管理管理系统—C语言课程设计

2019-01-27 13:54

C语言课程设计报告 人事管理管理系统

[要求]

某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1) 添加删除功能:能根据学院人事的变动情况,添加删除记录; (2) 查询功能:能根据编号和姓名进行查询; (3) 编辑功能(高级):根据查询对相应的记录进行修改,并存储;

(4) 统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、

高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息;

(5) 排序功能:按照年龄、来院时间进行排序; (6) 保存功能:能对输入的数据进行相应的存储;

一.需求分析:

根据题目要求,人事信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将RS定为100,也即最多可储存的职工人数为100;

二总体设计:

根据以上需求分析,将程序分成以下几个模块: 1浏览:

****浏览文件(0) 2 删除

****删除记录(1) 3查询

****按名称查询(2) ****按编号查询(3) 4 编辑

****查询名称编辑信息(4) ****查询编号编辑信息(5) 5 统计

****统计在职人数(6) ****统计党员人数(7) ****统计女工人数(8)

****统计硕士以上学历人数(9) ****统计副教授以上职称人数(10) 6 排序

1

C语言课程设计报告

****按年龄进行排序(11)

****按来院时间进行排序(12) 7 保存

****将输入的记录进行保存(13) 三 详细设计;

1、主函数:

主函数设计的比较简单,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图如下 程开始 显示一系列功能 N 输入n,判断是否是0~14 Y 根据n的值调用个功能模块函数 结束 void main() { do { int n;

puts(\ puts(\人事管理系统************************\\n\ puts(\请选择以下选项后面的数字输入以确定您要进行的操作**\\n\ puts(\选项:\ puts(\浏览:\

puts(\ ****浏览文件(0)\ puts(\ 删除\

puts(\ ****删除记录(1)\ puts(\ 查询\

puts(\ ****按名称查询(2)\

2

C语言课程设计报告

puts(\ ****按编号查询(3)\ puts(\ 编辑\

puts(\ ****查询名称编辑信息(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(\ switch(n)

{ case 0:browse();break; case 1:dele();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();break; case 14:return;

default: printf(\输入错误\ }

}while(1); }

2、 各功能设计模块 (0) 浏览模块

该模块的功能是显示文件的所有信息,流程图如下

3

C语言课程设计报告

显示所有信息 按任意键显示下一屏 按任意键继续 程序

void browse() { int i=0,j;

if((fp=fopen(\ { printf(\ return; }

while(!feof(fp))

{ fscanf(fp,\er[i].sex,&per[i].age,per[i].zhiwu,&per[i].zhiche,per[i].zzmm,&per[i].zgxl,per[i].rzsj,&per[i].lysj,per[i].rylb); i++; }

printf(\当前文件内容是:\\n\\n\ for(j=0;j

{ printf(\r[j].sex,per[j].age,per[j].zhiwu,per[j].zhiche,per[j].zzmm,per[j].zgxl,per[j].rzsj,per[j].lysj,per[j].rylb); }

fclose(fp); printf(\

printf(\ getchar(); printf(\}

(1) 删除模块

该模块的功能是根据编号删除记录的信息,删除空行,后面的前移,浏览。流程图如下

4

C语言课程设计报告

开始 输入要删除记录的编号 删除记录 Y 是否找到记录? N 显示没有找到 程序

void dele()

{ int i=0,j,k=0; char num[10];

printf(\请输入您要删除的记录的编号: \ scanf(\

if((fp=fopen(\ { printf(\ return; }

while(!feof(fp))

{ fscanf(fp,\.sex,&per[i].age,per[i].zhiwu,&per[i].zhiche,per[i].zzmm,&per[i].zgxl,per[i].rzsj,&per[i].lysj,per[i].rylb); i++; }

fclose(fp);

if((fp=fopen(\ { printf(\ return; }

for(j=0;j

{ if(strcmp(per[j].num,num)!=0)

fprintf(fp,\.sex,per[j].age,per[j].zhiwu,per[j].zhiche,per[j].zzmm,per[j].zgxl,per[j].rzsj,per[j].lysj,per[j].rylb);

5


人事管理管理系统—C语言课程设计.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:武汉理工大学第四届学位评定委员会第一次会议授予博士硕士学位公

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: