C语言人事管理系统设计
- 格式:doc
- 大小:215.50 KB
- 文档页数:19
设计题目:人事管理系统设计
目录:
1.设计任务---------------------------------------------------------------------------------------------12.正 文-----------------------------------------------------------------------------------------------------------2
(1).系统模块图------------------------------------------------------------------------------------------3
(2).模块说明---------------------------------------------------------------------------------------------3
(3).用户使用说明---------------------------------------------------------------------------------------3
(4).测试结果---------------------------------------------------------------------------------------------3
3.设 计 小 结--------------------------------------------------------------------------------------------------9
4.附录-----------------------------------------------------------------------------------------------------------10
一.设计任务
1、需求分析:人事档案信息采用文件存储,因而要提供文件的输入输出操作;根据学院人事的变动情况,添加删除记录,因而要提供文件的添加删除操作;根据编号和姓名进项查询,所以要提供文件的查找操作;高级编辑功能,就是提供文件的修改操作;统计功能要提供统计操作; 排序功能要提供用排序算法对文件记录的排序; 另外还要提供键盘式选择菜单以实现功能选 择。
2、总体设计:整体设计为数据输入模块、数据添加模块、数据删除模块、数据查询模块、数据修改模 块、数据统计模块、数据排序模块。
3、详细设计
数据结构采用结构体:
Struct personnelArchiveInfo
{ Char No[10]; //编号
Char name[10]; //姓名
Int sex; //性别
Int age; //年龄
Char job[10]; //职务
Char post[10]; //职称
Char politic[10]; //政治面貌
Char edu_level[10]; //最高学历
Char period[10]; //任职时间
Char start_time[10]; //来院时间
Char type[10]; //人员类别
}PAInfo;
(1)数据输入模块 把员工信息写入人事档案文件。
(2)数据添加模块 用追加的方式把新增员工信息写入人事档案文件。
(3)数据删除模块 根据人员编号查找要删除的人员,从文件中读一条记录,查看编号是否要删除,如果
是,则舍弃,不再写入文件;否则重新写入文件。
(4)数据查询模块 把编号和姓名作为查询字段,用基本查找算法查找人事档案文件,把符合查找要求的
记录输出。
(5)数据修改模块 查找要修改的记录,修改之。先读记录,若是要修改的记录,则修改信息,把修改后的 信息写入文件;否则直接写入文件。
(6)数据排序模块 通过菜单选择年龄或者来院时间, 把数据从文件中读出来, 任意选择一种排序算法对记 录进行排序,输出排序结果。
(7)数据统计模块 通过菜单选择统计字段:在职人数、党员人数、女工人数、高学历人数、高职称人数。
例如选择党员人数,则统计运算伪码如下:
Count=0; //记录在职人数
While(文件未读完)
{
读一条记录;
If(政治面貌是党员)
{ Count++;
输出该条记录;
}}
其他字段的统计运算与次类似.
二.正文
1. 系统模块图
人事管理系统
2.模块说明
(1).主函数:显示封面和菜单;
(2).输入模块:建立文件,输入数据;
(3).增加模块:追加新数据到文件;
(4).删除模块:先读取数据,再将要删除的数据去掉后重新写入文件;
(5).排序模块:读取文件,选择排序;
(6).统计模块:选择要统计的人的数量;
(7).退出模块:主函数中。
3.用户使用说明
源程序需用visual C++运行。其它按系统说明操作。
人 事
管 理
系 统
输
入 增
加 删
除 查
询 排
序 统
计 退
出
修
改
4.测试结果
封面
略
主菜单
输入模块
增加模块
删除模块
查询模块
选择排序
统计模块
三.设计小结
C语言课程设计经过2周的实习终于落幕了。不断的复习理论知识、编程、
调试、改错,直至存盘,同样的环节、同样的工作步骤,重复又重复,枯燥而乏味;看似简单的程序题,编写后调试却屡屡出错。如何改如何错,怎么编写怎么调试失败,心烦而意乱。但在不断的调试成功中,不断的激励着我,每次看到运行结果是自己所想的时候感觉很有成就感。最后的成功让我感到付出的一切都很值得。
当然,这次的程序存在着一些瑕疵和不足,相信下次我能编出更好的程序。
参考文献
[1]。谭浩强。C程序设计(第二版)。北京。清华大学出版社,1999
[2]。谭浩强。张基温。C语言程序设计(第三版)。北京。高等教育出版社,2006.8
[3]。谭浩强。C程序设计(第三版)。北京。清华大学出版社,2006
五.附录
#include
#include
#include
#include
//#include
#define N 50
struct personnelArchiveInfo
{
char No[10]; //编号
char name[10]; //姓名
int sex; //性别
int age; //年龄
char job[10]; //职务
char post[10]; //职称
char politic[10]; //政治面貌
char edu_level[10]; //最高学历
char period[10]; //任职时间
char start_time[10]; //来院时间
char type[10]; //人员类别
}PAInfo;
void sta()//封面
{ int i,j;
printf("\n\n");
for(j=0;j<3;j++)
{ printf("\t");
for(i=0;i<68;i++)
printf("*");
printf("\n");}
printf("\t**************三峡大学理学院2010级光信息科学与技术专业**************\n");
printf("\t**************\t《高级语言程序设计》课程设计\t\t************\n");
printf("\t**************\t\t说明书\t\t\t\t************\n");
printf("\t**************\t设计题目:人事管理系统设计\t\t************\n");
printf("\t**************\t班级:光信\t\t\t\t************\n");
printf("\t**************\t学号:2010146108\t\t\t\t************\n");
printf("\t**************\t姓名:张俊\t\t\t\t************\n");
printf("\t**************\t完成时间:2011.11.15\t\t\t************\n");
for(j=0;j<4;j++)
{ printf("\t");
for(i=0;i<68;i++)
printf("*");
printf("\n");}
system("pause");}
void input()//输入模块
{system("cls");
int i,x;
FILE *fp;
struct personnelArchiveInfo *p[N];
fp=fopen("d://stu.txt","w");
if((fp=fopen("d:/stu.txt","w"))==0)
{ printf("打开文件失败");
exit(1); }
printf("请输入要输入的人员个数:");
scanf("%d",&x);
for(i=0;i
{ p[i]=(struct personnelArchiveInfo *)malloc(sizeof(struct personnelArchiveInfo));
printf("编号:");scanf("%s",p[i]->No);
printf("姓名:");scanf("%s",p[i]->name);
printf("性别'1'男,'2'女:");scanf("%d",&p[i]->sex);
printf("年龄:");scanf("%d",&p[i]->age);
printf("职务(没有则填无):");scanf("%s",p[i]->job);
printf("职称(总裁,总经理,部门经理,技术总监,组长,普通员工):");scanf("%s",p[i]->post);
printf("政治面貌(党员,团员,群众):");scanf("%s",p[i]->politic);
printf("最高学历(博士,硕士,大学,高中,初中,小学):");scanf("%s",p[i]->edu_level);
printf("任职时间:");scanf("%s",p[i]->period);
printf("来院时间:");scanf("%s",p[i]->start_time);