人事管理C语言课程设计Word文档格式.docx
- 文档编号:18243293
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:33
- 大小:520.65KB
人事管理C语言课程设计Word文档格式.docx
《人事管理C语言课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《人事管理C语言课程设计Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
根据查询对相应的记录进行修改,并存储;
(4)统计功能:
能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息;
(5)排序功能:
按照年龄、来院时间进行排序;
(6)保存功能:
能对输入的数据进行相应的存储;
一.需求分析:
根据题目要求,人事信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。
另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将RS定为100,也即最多可储存的职工人数为100;
二总体设计:
根据以上需求分析,将程序分成以下几个模块:
1浏览:
****浏览文件(0)
2删除
****删除记录
(1)
3查询
****按名称查询
(2)
****按编号查询(3)
4编辑
****查询名称编辑信息(4)
****查询编号编辑信息(5)
5统计
****统计在职人数(6)
****统计党员人数(7)
****统计女工人数(8)
****统计硕士以上学历人数(9)
****统计副教授以上职称人数(10)
6排序
****按年龄进行排序(11)
****按来院时间进行排序(12)
7保存
****将输入的记录进行保存(13)
三详细设计;
1、主函数:
主函数设计的比较简单,只提供输入、处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
其流程图如下
程序
voidmain()
{do
{intn;
puts("
****************************************************\n"
);
****************人事管理系统************************\n"
**请选择以下选项后面的数字输入以确定您要进行的操作**\n"
选项:
"
浏览:
****浏览文件(0)"
删除"
****删除记录
(1)"
查询"
****按名称查询
(2)"
****按编号查询(3)"
编辑"
****查询名称编辑信息(4)"
****查询编号编辑信息(5)"
统计"
****统计在职人数(6)"
****统计党员人数(7)"
****统计女工人数(8)"
****统计硕士以上学历人数(9)"
****统计副教授以上职称人数(10)"
排序"
****按年龄进行排序(11)"
****按来院时间进行排序(12)"
保存"
****将输入的记录进行保存(13)"
退出"
****退出(14)"
printf("
请输入选项号:
"
scanf("
%d"
&
n);
switch(n)
{case0:
browse();
break;
case1:
dele();
case2:
searname();
case3:
searnum();
case4:
channame();
case5:
channum();
case6:
sumzzrs();
case7:
sumdyrs();
case8:
sumngrs();
case9:
sumssysxlrs();
case10:
sumfjsyszhichers();
case11:
sortage();
case12:
sortlysj();
case13:
save();
case14:
return;
default:
输入错误"
}
}while
(1);
}
2、各功能设计模块
(1)浏览模块
该模块的功能是显示文件的所有信息,流程图如下
voidbrowse()
{inti=0,j;
if((fp=fopen("
renshi.txt"
"
r"
))==NULL)
{printf("
cannotopenthisfile\n"
return;
while(!
feof(fp))
{fscanf(fp,"
%s%s%s%d%s%d%s%d%s%d%s"
per[i].num,per[i].name,per[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++;
\n\n当前文件内容是:
\n\n"
for(j=0;
j<
i;
j++)
%s%s%s%d%s%d%s%d%s%d%s\n"
per[j].num,per[j].name,per[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);
\n"
\n\n\npressanykeytocontinue\n\n\n"
getchar();
(2)删除模块
该模块的功能是根据编号删除记录的信息,删除空行,后面的前移,浏览。
流程图如下
voiddele()
{inti=0,j,k=0;
charnum[10];
请输入您要删除的记录的编号:
%s"
num);
w"
{if(strcmp(per[j].num,num)!
=0)
fprintf(fp,"
trim();
browse();
(3)按名称查询模块
该模块的功能是根据名字查询记录。
流程如下
voidsearname()
charname[8];
请输入您要查询的记录的姓名:
name);
a+"
))==0)
您要的信息如下:
{if(strcmp(per[j].name,name)==0)
k++;
if(k==0)
没有您要的信息"
(4)按编号查询模块
该模块功能是根据记录编号查询记录。
流程路如下
(5)
voidsearnum()
请输入您要查询的记录的编号:
r+"
{if(strcmp(per[j].num,num)==0)
(6)查询名称编辑模块
该模块先根据名字查找记录,然后修改记录。
voidchanname()
{inti=0,j,k;
请输入您要编辑的记录的姓名:
请输入您要修改的项所对应的数字:
(编号对应的数字为1,其他项依次为2,3,4...))"
k);
请输入这一项修改后的值"
{switch(k)
{case1:
scanf("
per[j].num);
per[j].name);
per[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);
printf("
{fprintf(fp,"
}
(7)查询编号编辑信息模块
该模块是先根据记录的编号查询记录,而后编辑记录。
voidchannum()
请输入您要编辑的记录的编号:
(8)根据在职人数进行统计模块
voidsumzzrs()
if(i==0)
这是一个空文件"
在职人员数量是%d人\n"
i);
(7)根据党员人数进行统计模块
voidsumdyrs()
{inti=0,j,count=0;
{if(strcmp(per[j].zzmm,"
党员"
)==0)
per[j].num,per[j].name,per[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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人事管理 语言 课程设计