当前位置:文档之家› C语言-人事管理系统

C语言-人事管理系统

菜\t单\n");
prin tf("\n\t\t0\t
新建档案信息\n\n");
prin tf("\t\t1\t
删除信息\n\n");
prin tf("\t\t2\t
追加信息\n\n");
prin tf("\t\t3\t
搜索查找信息\n\n");
prin tf("\t\t4\t
浏览所有信息\n\n");
(2)查询功能:能根据编号和姓名进行查询;
(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;
(4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女
工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要
求同时显示被统计者的信息;
(5)排序功能:按照年龄、来院时间进行排序;
}
else w1=0;
}
while(w 1==1);
离开\n\n");
请选择您要进行的操作[]\b\b");
/**显示一系列
/**
输入n并判断是否
属于0到8**/
switch( n)
{
case O:build();break;
case 1:del();break;
case 2:add();break;
FILE *fp;
if((fp=fope n("workerOO.txt","w"))==NULL)
{
prin tf("ca n not build file\n");
prin tf_back();/*输入用户要输入的
学生的个数N*/
}
printf("您要输入的人数是(0-%d)?:",N);
scan f("%d",&m);
二、总体设计:
根据以上需求分析,将程序分成以下几个模块:
1、新建档案信息;
2、删除信息;
3、追加信息;
4、搜索查找信息(按姓名或者编号搜索);
5、浏览全部信息;
6、修改信息;
7、信息排序;
8信息统计;
三、详细设计;
1、主函数:
〈1〉需求分析:
为使系统执行完每部分功能后能够方便的回到系统主界面,main()函数设计的
(6)保存功能:能对输入的数据进行相应的存储;
一、需求分析:
根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入 输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程 序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另 外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存, 在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、 容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程 序中将N定为100,也即最多可储存的职工人数为100;
n=m;
for(i=0;i< n;i++)
{
printf("\n请输入第%d个工作人员的信息\n",i+1);
input(i);/*从0到N调用输入
函数in put*/
}
for(p=0;p<=i;p++)
if((fpri ntf(fp,"%s\t%s\t%1s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",wk[p]
prHale Waihona Puke n tf("\t\t5\t
修改信息\n\n");
prin tf("\t\t6\t
信息排序\n\n");
prin tf("\t\t7\t
信息统计\n\n");
prin tf("\t\t8\t prin tf("\t\t功能并提示选择**/
sca nf("%d",&n); if(n< 0|| n>8) { w1=1; getchar();
.nu m,wk[p]. name,wk[p].sex,wk[p].age,wk[p].zhiwu,wk[p].
zhiche ng,wk[p].zhe ngzhi,wk[p].xueli,wk[p].re nzhisj,wk[p].laiya nsj,wk
char laiya nsj[8];
char leibie[15];
}wk[N],s;
其中N是宏定义形式定义的字符,临时定义为100,wk[N],为存放人员信息的结 构体数组,而S为临时的结构体,用来保存信息处理过程中的临时数据。
〈2〉、流程图如下:
〈3〉、程序:
int build()
{
int i,m, n,p;
人事管理管理系统
[要求]
某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时
工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职 务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人 员编号唯一,不能重复。
(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;
case 3:search();break;
case 4:browse();break;
case 5:modify();break;
case 6:order();break;
case 7:data();break;
case 8:exit(0);
default:{printf("输入错误!请重新输入");menu();}
/**根据n的值调用各功能函数**/
}
}
2、各功能模块设计:
(1)、新建档案信息模块:
<1>、数据结构;
看各个数据信息,编号、姓名、性别、年龄、职务、职称、政治面貌、最高学 历、任职时间、来院时间、人员类别,均为字符串类型,在文件中以文本形式 存放,每条记录对应一个人员的信息,可以方便信息的管理;而数据读进内存 中时,可以以结构体的形式,每一个结构体包含了一个人员的全部信息,多的 人员的信息组成了一个结构体数组。定义如下:
struct worker
{char num[11];
char n ame[10];
char sex[2];
char age[3];
char zhiwu[15];
char zhiche ng[15];
char zhe ngzhi[15];
char xueli[15];
char ren zhisj[8];
很简单,只包含一个menu()函数,其余的全部功能都通过menu()函数调用来实 现,并通过menu()函数的递归调用实现返回主界面的功能。
main()函数定义如下:
mai n()
{me nu();}而menu()定义如下:
〈2〉流程图:
void menu()
int n,w1;
do
{
prin tf("\n\t\t\t\t
相关主题