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);