2022年C语言-人事管理系统 .pdf
《2022年C语言-人事管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言-人事管理系统 .pdf(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、华中科技大学 c 语言实习人事管理管理系统要求 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。(1) 添加删除功能:能根据学院人事的变动情况,添加删除记录;(2) 查询功能:能根据编号和姓名进行查询;(3) 编辑功能(高级):根据查询对相应的记录进行修改,并存储;(4) 统计功能: 能根据多种参数进行人员的统计(在职人数、 党员人数、 女工人数、高学历高职称人数 (硕士学位以上或者副教授以上) ) ,统计要求同时显
2、示被统计者的信息;(5) 排序功能:按照年龄、来院时间进行排序;(6) 保存功能:能对输入的数据进行相应的存储;一、需求分析:根据题目要求, 职工信息是存放在文件中的, 所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作, 另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块, 采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N 定名师资料总结 - - -精品资料欢迎下载 -
3、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 35 页 - - - - - - - - - 华中科技大学 c 语言实习为 100,也即最多可储存的职工人数为100;二、总体设计:根据以上需求分析,将程序分成以下几个模块:1、 新建档案信息;2、 删除信息;3、 追加信息;4、 搜索查找信息(按姓名或者编号搜索) ;5、 浏览全部信息;6、 修改信息;7、 信息排序;8、 信息统计;三、详细设计;1、 主函数:1需求分析:为使系统执行完每部分功能后能够方便的回到系统主界面,main() 函数设计的很简单,只包含一个
4、menu() 函数, 其余的全部功能都通过menu() 函数调用来实现,并通过 menu() 函数的递归调用实现返回主界面的功能。main()函数定义如下:main() menu(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 35 页 - - - - - - - - - 华中科技大学 c 语言实习而 menu() 定义如下:2流程图:void menu() int n,w1; do printf(ntttt 菜t 单n); printf(ntt0t 新建档案信息
5、nn); printf(tt1t 删除信息 nn); printf(tt2t 追加信息 nn); printf(tt3t 搜索查找信息 nn); printf(tt4t 浏览所有信息 nn); printf(tt5t 修改信息 nn); printf(tt6t 信息排序 nn); printf(tt7t 信息统计 nn); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 35 页 - - - - - - - - - 华中科技大学 c 语言实习printf(tt8t 离开n
6、n); printf(tt请选择您要进行的操作 bb); /*显示一系列功能并提示选择 */ scanf(%d,&n); if(n8) w1=1; getchar(); else w1=0; while(w1=1); /*输入 n 并判断是否属于 0 到 8*/ switch(n) case 0:build();break; case 1:del();break; case 2:add();break; case 3:search();break; case 4:browse();break; case 5:modify();break; case 6:order();break; 名师资料总
7、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 35 页 - - - - - - - - - 华中科技大学 c 语言实习case 7:data();break; case 8:exit(0); default:printf( 输入错误!请重新输入 );menu(); /*根据 n 的值调用各功能函数 */ 2、各功能模块设计:(1) 、新建档案信息模块:、数据结构;看各个数据信息, 编号、姓名、性别、年龄、职务、职称、政治面貌、 最高学历、任职时间、来院时间、人员类别,均为字符串类
8、型,在文件中以文本形式存放,每条记录对应一个人员的信息,可以方便信息的管理; 而数据读进内存中时, 可以以结构体的形式, 每一个结构体包含了一个人员的全部信息,多的人员的信息组成了一个结构体数组。定义如下:struct worker char num11; char name10; char sex2; char age3; char zhiwu15; char zhicheng15; char zhengzhi15; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 35
9、 页 - - - - - - - - - 华中科技大学 c 语言实习char xueli15; char renzhisj8; char laiyansj8; char leibie15; wkN,s; 其中 N 是宏定义形式定义的字符, 临时定义为 100,wkN, 为存放人员信息的结构体数组,而 S 为临时的结构体,用来保存信息处理过程中的临时数据。2 、流程图如下:3 、程序:int build() int i,m,n,p; FILE *fp; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
10、- - - 第 6 页,共 35 页 - - - - - - - - - 华中科技大学 c 语言实习if(fp=fopen(worker00.txt,w)=NULL) printf(can not build filen); printf_back(); /*输入用户要输入的学生的个数 N*/ printf( 您要输入的人数是 (0-%d)?:,N); scanf(%d,&m); n=m; for(i=0;in;i+) printf(n 请输入第 %d 个工作人员的信息 n,i+1); input(i); /*从 0 到 N 调用输入函数 input*/ for(p=0;p=i;p+) if(
11、fprintf(fp,%st%st%1st%st%st%st%st%st%st%st%sn,wkp.num,wkp.name,wkp.sex,wkp.age,wkp.zhiwu,wkp. zhicheng,wkp.zhengzhi,wkp.xueli,wkp.renzhisj,wkp.laiyansj,wkp.leibie)!=1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 35 页 - - - - - - - - - 华中科技大学 c 语言实习printf(can
12、not write the datann); /*将结构体数组中的数据写入文件 */ fclose(fp); /*关闭文件 */ printf_back(); (2) 、追加模块:1需求分析 该模块的功能是拥护需要增加新的员工记录,从键盘输入并逐条写入到原来的文件中去,其中输入号码是要防止号码重复,重复时报告错误, 重新输入。 为方便用户管理和查看, 该模块采用的方式是用先把原来文件中的数据读入内存,保存在内存中,然后在内存中的数据后面增加新的数据,操作完成后用写的方式打开文件,用覆盖的方式写入。2流程图:3程序:int add() 名师资料总结 - - -精品资料欢迎下载 - - - - -
13、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 35 页 - - - - - - - - - 华中科技大学 c 语言实习int i,m,n,p; FILE *fp; n=load(); /*调用加载函数load 将文件中的数据读入内存*/ if(n=-1) printf(n 对不起 ,还没有档案 ,请新建一个档案 n); menu(); printf( 您要追加的人数是 (0-%d)?: bbb,N-n); scanf(%d,&m); /*输入要追加的人员个数m*/ for(i=n+1;i=m+n;i+) printf(n 追加第
14、 %d 个工作人员的信息 n,i-n); input(i); /*从 n 到 k 调用输入函数input( i)*/ if(fp=fopen(worker00.txt,a+)=NULL) printf(can not open filen); printf_back(); /*调用 */ for(p=n+1;p=m+n;p+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 35 页 - - - - - - - - - 华中科技大学 c 语言实习fprintf(fp,%s
15、t%st%1st%st%st%st%st%st%st%st%sn,wkp.num,wkp.name,wkp.sex,wkp.age,wkp.zhiwu,wkp. zhicheng,wkp.zhengzhi,wkp.xueli,wkp.renzhisj,wkp.laiyansj,wkp.leibie); /*从 0 到 k 以覆盖的方式写入文件并保存*/ fclose(fp); printf_back(); /*关闭文件 */ (3)修改模块:1 需求分析: 该模块的功能是显示所有信息,考虑到记录较多, 采用分屏显示, 显示完所有的记录后,由用户输入需要修改的人员的号码,查找成功后,显示查找结果
16、, 并询问拥护修改人员的哪部分记录,根据用户选择修改相应的信息,然后保存修改后的结果;2 流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 35 页 - - - - - - - - - 华中科技大学 c 语言实习3 程序;modify() int i,n,k,p,w0=1,w1,w2=0; FILE *fp; n=load(); do k=-1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
17、心整理 - - - - - - - 第 11 页,共 35 页 - - - - - - - - - 华中科技大学 c 语言实习printf_face(); for(i=0;i=n;i+) printf_one(i); do printf(nn 请输入你要修改的信息的编号ntt 编号: bb); scanf(%s,s.num); for(i=0;i=n;i+) if(strcmp(s.num,wki.num)=0) k=i; s=wki; if(k=-1) printf(nn 没有找到您所需的信息! 请重新输入 !n); while(k=-1); printf_face(); printf_on
18、e(k); w1=modify_data(k); if(w1=1) printf(n 修改成功 !nn 要继续修改吗 ?nntt1t 是nntt2t 保存并名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 35 页 - - - - - - - - - 华中科技大学 c 语言实习返回nt bb); scanf(%d,&w0); w2=1; else w0=0; if(w2=1) wkk=s; if(w0!=1&w2=1) fp=fopen(worker00.txt,w);
19、for(p=0;pnntt1t 编号ntt2t 姓名 ntt3t 性别ntt4t 年龄ntt5t 职务ntt6t 职称ntt7t 政治面貌 ntt8t 学历ntt9t 任职时间ntt10t 来院时间 ntt11t 在职类别 nnttt bb); scanf(%d,&c); if(c11|c11|c1); do switch(c) case 1:printf( 旧的编号是%s,wki.num);input_num(i,i-1);break; case 2:printf(旧的姓名是%s,请输入新的姓名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
20、 - - - 名师精心整理 - - - - - - - 第 14 页,共 35 页 - - - - - - - - - 华中科技大学 c 语言实习名:,wki.name);scanf(%s,wki.name);break; case 3:printf(旧的性别是%s,请输入新的性别:,wki.sex);scanf(%1s,wki.sex);break; case 4:printf(旧的年龄是%s,请输入新的年龄:,wki.age);scanf(%s,wki.age);break; case 5:printf(旧的职务是%s,请输入新的职务:,wki.zhiwu);scanf(%s,wki.zh
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言-人事管理系统 2022 语言 人事管理系统
限制150内