C语言人事管理系统设计
人事综合管理系统C语言
人事管理管理系统[要求](1)某高校关键人员有: 在职人员(行政人员、老师、通常职员)、退休人员和临时工。
现在, 需要存放这些人员人事档案信息: 编号、姓名、性别、年纪、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。
其中, 人员编号唯一, 不能反复。
(2)添加删除功效:能依据学院人事变动情况, 添加删除统计;(3)查询功效: 能依据编号和姓名进行查询;(4)编辑功效(高级): 依据查询对对应统计进行修改, 并存放;(5)统计功效:能依据多个参数进行人员统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或副教授以上)), 统计要求同时显示被统计者信息;(6)排序功效: 根据年纪、来院时间进行排序;保留功效: 能对输入数据进行对应存放;需求分析:依据题目要求, 职员信息是存放在文件中, 所以应该提供对应文件输入输出功效, 在程序中应该有添加删除, 查询, 编辑, 统计, 排序, 保留等程序实现对应操作, 另外菜单式选择方法选择程序功效也是必需需。
另外程序中要求存放模块, 采取方法均为将原文件中全部数据读入内存, 在内存中处理以后以覆盖方法写入文件中重新储存, 这么方法轻易了解、轻易编写, 但当文件中数据量很大时, 这种方法也存在一定难度, 在本程序中将N定为100, 也即最多可储存职员人数为100;总体设计:1、依据以上需求分析, 将程序分成以下多个模块:2、新建档案信息;3、删除信息;4、追加信息;5、搜索查找信息(按姓名或编号搜索);6、浏览全部信息;7、修改信息;8、信息排序;9、信息统计;二、具体设计;1、主函数:〈1〉需求分析:为使系统实施完每部分功效后能够方便回到系统主界面, main()函数设计很简单, 只包含一个menu()函数, 其它全部功效全部经过menu()函数调用来实现, 并经过menu()函数递归调用实现返回主界面功效。
main()函数定义以下:main(){menu();}而menu()定义以下:〈2〉步骤图:void menu(){int n,w1;do{printf("\n\t\t\t\t菜\t单\n");printf("\n\t\t0\t新建档案信息\n\n");printf("\t\t1\t删除信息\n\n");printf("\t\t2\t追加信息\n\n");printf("\t\t3\t搜索查找信息\n\n");printf("\t\t4\t浏览全部信息\n\n");printf("\t\t5\t修改信息\n\n");printf("\t\t6\t信息排序\n\n");printf("\t\t7\t信息统计\n\n");printf("\t\t8\t离开\n\n");printf("\t\t请选择您要进行操作[ ]\b\b"); /**显示一系列功效并提醒选择**/scanf("%d",&n);if(n<0||n>8){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;case 7:data();break;case 8:exit(0);default:{printf("输入错误!请重新输入");menu();}/**依据n值调用各功效函数**/}}2.各功效模块设计:(1)、新建档案信息模块:<1>、数据结构;看各个数据信息, 编号、姓名、性别、年纪、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别, 均为字符串类型, 在文件中以文本形式存放, 每条统计对应一个人员信息, 能够方便信息管理;而数据读进内存中时, 能够以结构体形式, 每一个结构体包含了一个人员全部信息, 多人员信息组成了一个结构体数组。
人事管理系统c课程设计
人事管理系统c 课程设计一、课程目标知识目标:1. 让学生理解人事管理系统的基本概念,掌握其功能模块和操作流程。
2. 使学生掌握数据库管理的基本方法,能够运用SQL语句进行数据查询、插入、修改和删除。
3. 帮助学生了解人力资源管理的基本原则,结合实际案例进行分析。
技能目标:1. 培养学生运用C语言编写简单的人事管理系统功能模块的能力。
2. 培养学生具备数据库设计和操作的能力,能够根据实际需求创建数据库表、编写SQL语句。
3. 提高学生的团队协作能力,通过分组讨论、协作完成项目任务。
情感态度价值观目标:1. 培养学生对待人事管理系统开发的认真态度,注重程序规范和代码质量。
2. 培养学生对人力资源管理的兴趣,激发学生探讨实际问题的热情。
3. 引导学生树立正确的职业观,认识到人事管理系统在企业管理中的重要作用。
课程性质分析:本课程为实践性较强的课程,旨在让学生在掌握基本理论知识的基础上,通过实际操作,提高解决实际问题的能力。
学生特点分析:学生具备一定的C语言基础和数据库知识,但对人事管理系统的整体架构和实际应用尚不了解,需要通过本课程的学习,逐步提高。
教学要求:1. 结合实际案例,注重理论知识与实际操作相结合,提高学生的实践能力。
2. 采用任务驱动教学法,激发学生的学习兴趣,引导学生主动探索。
3. 强化团队合作,培养学生的沟通能力和协作精神。
二、教学内容1. 人事管理系统概述- 了解人事管理系统的基本概念、发展历程和实际应用场景。
- 分析人事管理系统的功能模块和业务流程。
2. 数据库基础- 复习数据库的基本概念,如表、字段、记录等。
- 掌握SQL语句的基本操作,包括数据查询、插入、修改和删除。
3. C语言编程实践- 运用C语言编写人事管理系统中的功能模块,如员工信息录入、查询、修改等。
- 学习如何使用C语言调用数据库接口,实现数据存取。
4. 人力资源管理基础知识- 了解人力资源管理的基本原则、方法和技巧。
人事管理c语言课程设计
人事管理c语言课程设计一、教学目标本课程旨在通过学习人事管理系统C语言编程,让学生掌握C语言的基本语法、数据结构、算法及面向对象编程思想,培养学生具备运用C语言解决实际问题的能力。
具体目标如下:1.知识目标:–掌握C语言的基本语法和编程规范;–理解并运用数据结构、算法解决编程问题;–学习面向对象编程,了解类和对象的概念及应用。
2.技能目标:–能够运用C语言编写简单的程序,解决实际问题;–熟练使用C语言开发工具,如编译器、调试器等;–掌握C语言编程的基本技巧,提高编程效率。
3.情感态度价值观目标:–培养学生的编程兴趣,激发创新精神;–培养学生团队合作、自主学习的良好学习态度;–使学生认识到计算机编程在现代社会的重要性,提高学生的信息素养。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法及面向对象编程。
具体安排如下:1.C语言基本语法:–变量、数据类型、运算符;–控制语句、函数、数组和字符串;–指针、结构体、共用体和位字段。
2.数据结构:–线性表、栈和队列;–链表、树和图。
–排序和查找算法;–递归算法;–动态规划算法。
3.面向对象编程:–类和对象的概念及创建;–继承、封装和多态;–常用类库和接口。
三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:教师讲解C语言的基本语法、数据结构、算法及面向对象编程的概念和原理,引导学生掌握编程知识。
2.讨论法:学生分组讨论编程问题,培养学生的团队合作精神和沟通能力。
3.案例分析法:通过分析实际案例,让学生了解编程在实际应用中的重要性,提高学生的信息素养。
4.实验法:安排实验室实践环节,让学生动手编写代码,培养学生的编程能力和实践能力。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威、实用的C语言编程教材,如《C程序设计语言》等。
2.参考书:提供相关领域的经典著作和优秀教材,如《C Primer Plus》等。
C语言人事管理系统设计
设计题目:人事管理系统设计目录:1.设计任务---------------------------------------------------------------------------------------------12.正文-----------------------------------------------------------------------------------------------------------2(1).系统模块图------------------------------------------------------------------------------------------3 (2).模块说明---------------------------------------------------------------------------------------------3 (3).用户使用说明---------------------------------------------------------------------------------------3 (4).测试结果---------------------------------------------------------------------------------------------33.设计小结--------------------------------------------------------------------------------------------------94.附录-----------------------------------------------------------------------------------------------------------10一.设计任务1、需求分析:人事档案信息采用文件存储,因而要提供文件的输入输出操作;根据学院人事的变动情况,添加删除记录,因而要提供文件的添加删除操作;根据编号和姓名进项查询,所以要提供文件的查找操作;高级编辑功能,就是提供文件的修改操作;统计功能要提供统计操作;排序功能要提供用排序算法对文件记录的排序;另外还要提供键盘式选择菜单以实现功能选择。
人事档案管理系统_c语言
人事档案管理系统_c语言人事档案管理系统是一种用于管理和维护组织内员工档案的软件系统。
随着企业的发展和人力资源管理的进步,人事档案管理系统已经成为企业管理不可或缺的一部分。
本文将介绍一个C语言实现的人事档案管理系统,包括系统设计和功能。
一、系统设计1.系统结构人事档案管理系统主要由以下几个组成部分:• 用户界面模块:用于管理和维护档案等信息与操作。
• 数据库模块:用于存储和管理各类档案资料等数据。
• 后台模块:用于管理人事档案管理系统的整体运作和处理。
2.系统功能设计人事档案管理系统主要功能包括以下几个方面:(1)用户登录,实现用户身份验证和权限管理;(2)新增、编辑、删除、查询员工等记录,实现简单员工档案的管理。
(3)工资信息管理,包括薪资发放、薪资统计等功能。
(4)请假管理,包括请假类型、请假时间、请假理由等。
(5)培训管理,包括员工培训计划、培训内容、培训结果等方面的管理。
(6)人事报表生成与查询,包括人事统计分析、人力资源计划等多个方面的管理。
二、C语言实现1.系统架构首先,需要确定系统的核心模块和需求,例如文件管理、用户管理、员工管理、考勤管理等。
然后,可以使用C语言中的结构体和函数对这些核心模块进行设计和实现。
2.模块设计(1)文件管理文件管理模块用于管理人事档案管理系统的数据文件,包括打开、创建、保存、修改、删除等功能。
由于数据是非常重要的,所以应该对其进行备份和恢复操作。
(2)用户管理用户管理模块用于管理人事档案管理系统的用户信息,包括用户的姓名、密码、权限等。
通过用户管理模块,可以对不同的用户进行身份验证和权限管理。
(3)员工管理员工管理模块用于管理和维护员工的档案信息,包括员工姓名、工号、部门、职位、工资、请假信息等。
通过员工管理模块,可以方便地查询和管理员工的信息。
(4)考勤管理考勤管理模块用于管理员工的考勤信息,包括上班打卡、下班打卡等。
通过考勤管理模块,可以方便地查询和管理员工的请假、加班、旷工等信息。
人事管理管理系统—C语言课程设计
人事管理管理系统[要求]某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。
现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。
其中,人员编号唯一,不能重复。
(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;(2)查询功能:能根据编号和姓名进行查询;(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;(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、主函数:主函数设计的比较简单,只提供输入、处理和输出部分的函数调用。
人事管理系统c课程设计
人事管理系统c 课程设计一、课程目标知识目标:1. 让学生理解人事管理系统的基本概念和功能,掌握系统设计的基本原理;2. 使学生掌握数据库管理、数据查询和更新等基本操作;3. 帮助学生了解我国企事业单位人事管理的相关规定和流程。
技能目标:1. 培养学生运用所学知识设计简单的人事管理系统,具备实际操作能力;2. 提高学生分析问题、解决问题的能力,能够根据实际需求进行系统优化;3. 培养学生团队协作和沟通能力,能在项目中进行有效分工与合作。
情感态度价值观目标:1. 培养学生热爱祖国、热爱人民,树立为人民服务的意识;2. 培养学生具备责任心和敬业精神,养成良好的工作态度;3. 引导学生认识到信息技术在企事业单位人事管理中的重要作用,激发学生深入学习信息技术的兴趣。
课程性质分析:本课程为人事管理系统设计,结合信息技术和企事业单位实际需求,具有较强的实践性和应用性。
学生特点分析:学生为高年级学生,具备一定的信息技术基础和编程能力,对实际应用有较高的兴趣。
教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力;2. 重视团队协作,培养学生的沟通能力和协作精神;3. 关注学生情感态度价值观的培养,使学生在学习过程中形成正确的价值观。
二、教学内容1. 人事管理系统概述- 了解人事管理系统的定义、功能和发展历程;- 掌握人事管理系统在企事业单位中的应用。
2. 数据库管理基础- 学习数据库的基本概念、设计原则和SQL语言;- 掌握人事管理系统数据库的建立、维护和查询方法。
3. 人事管理系统模块设计- 分析人事管理系统的主要模块及其功能;- 学习系统设计的基本流程和方法,包括需求分析、模块划分、界面设计等。
4. 系统实现与测试- 掌握人事管理系统的编程实现,运用所学编程语言进行开发;- 学习系统测试方法,确保系统稳定可靠。
5. 企事业单位人事管理规范- 了解我国企事业单位人事管理的相关规定和流程;- 掌握人事管理系统在实际应用中的注意事项。
人事管理系统c课程设计
人事管理系统c 课程设计一、教学目标本课程旨在通过学习人事管理系统C的相关知识,使学生掌握以下知识目标:1.理解人事管理系统C的基本概念和组成部分;2.掌握人事管理系统C的主要功能和操作方法;3.了解人事管理系统C在现代企业管理中的应用和意义。
同时,通过实践操作和案例分析,培养学生以下技能目标:1.能够熟练操作人事管理系统C进行日常的人事管理;2.能够根据企业实际情况,进行人事管理系统的配置和优化;3.能够运用人事管理系统C进行人力资源数据的分析和决策。
在教学过程中,注重培养学生的情感态度和价值观,使学生:1.认识到人事管理系统C在提高企业效率和降低成本方面的重要性;2.培养学生对新技术的敏感度和积极学习的态度;3.培养学生团队合作和解决问题的能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.人事管理系统C的基本概念和组成部分;2.人事管理系统C的主要功能和操作方法;3.人事管理系统C在现代企业管理中的应用和意义;4.人事管理系统C的配置和优化方法;5.人事管理系统C的数据分析和决策应用。
教学过程中,将结合具体教材和案例,进行详细的讲解和操作演示,确保学生能够全面掌握相关知识。
三、教学方法为了提高教学效果和学生的参与度,本课程将采用多种教学方法:1.讲授法:通过讲解和案例分析,使学生掌握人事管理系统C的基本概念和主要功能;2.讨论法:通过小组讨论和分享,培养学生的思考和解决问题的能力;3.实验法:通过实际操作和模拟实验,使学生熟练掌握人事管理系统C的操作方法;4.案例分析法:通过分析真实案例,使学生了解人事管理系统C在实际企业管理中的应用。
四、教学资源为了支持本课程的教学,将准备以下教学资源:1.教材:选择适合的教材,为学生提供全面的知识体系;2.参考书:提供相关的参考书籍,丰富学生的知识视野;3.多媒体资料:制作教学PPT和视频资料,提高学生的学习兴趣;4.实验设备:准备计算机和相关设备,为学生提供实际操作的机会。
人事管理系统c课程设计
人事管理系统c课程设计一、教学目标本课程旨在通过学习人事管理系统的设计与实现,使学生掌握人力资源管理的基本理论知识,培养学生运用计算机技术进行人事管理的能力。
具体目标如下:1.知识目标:(1)理解人力资源管理的基本概念、原则和方法。
(2)熟悉人事管理系统的基本功能和模块。
(3)掌握数据库设计、编程语言以及软件工程相关知识。
2.技能目标:(1)能够运用人力资源管理理论知识分析和解决实际问题。
(2)具备人事管理系统的设计和开发能力。
(3)学会使用相关编程工具和数据库管理系统。
3.情感态度价值观目标:(1)培养学生热爱祖国、为人民服务的情感态度。
(2)培养学生团结协作、积极进取的精神风貌。
(3)培养学生诚实守信、遵纪守法的良好品质。
二、教学内容本课程主要内容包括:人力资源管理基本理论、人事管理系统设计方法、数据库设计、编程语言以及软件工程相关知识。
具体安排如下:1.人力资源管理基本理论:介绍人力资源管理的基本概念、原则和方法,包括招聘、培训、考核、薪酬等方面。
2.人事管理系统设计方法:讲解人事管理系统的设计思路、流程和技巧,包括需求分析、系统设计、编码和测试等环节。
3.数据库设计:学习数据库的基本概念、设计方法和技巧,掌握数据库管理系统的基本操作。
4.编程语言:学习常用的编程语言,如Java、C++等,掌握基本的编程思想和方法。
5.软件工程:了解软件工程的原理和方法,学会使用相关的软件工程工具。
三、教学方法本课程采用多种教学方法,如讲授法、案例分析法、实验法等,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解理论知识,使学生掌握基本概念和原理。
2.案例分析法:通过分析实际案例,使学生学会运用理论知识分析和解决实际问题。
3.实验法:通过动手实践,使学生掌握编程语言和数据库管理系统的基本操作。
四、教学资源本课程所需教学资源包括:教材、参考书、多媒体资料、实验设备等。
具体资源如下:1.教材:选用国内权威出版的教材,如《人力资源管理》、《数据库原理》等。
基于C的企业级人力资源管理系统设计
基于C的企业级人力资源管理系统设计一、引言随着信息技术的不断发展,企业对于人力资源管理系统的需求也越来越迫切。
一个高效、智能的人力资源管理系统可以帮助企业更好地管理人力资源,提高工作效率,降低成本,实现人力资源的最大化利用。
本文将基于C语言,探讨如何设计一个企业级人力资源管理系统。
二、系统架构设计在设计企业级人力资源管理系统时,首先需要考虑系统的架构。
一个好的系统架构可以保证系统的稳定性、扩展性和安全性。
在基于C 语言开发的系统中,可以采用模块化设计,将系统拆分为多个模块,每个模块负责不同的功能,通过接口进行交互。
这样既方便开发和维护,又能够提高系统的可扩展性。
三、功能模块设计1. 人事管理模块人事管理是企业人力资源管理系统中最核心的功能之一。
通过该模块,可以实现员工信息管理、招聘管理、培训管理等功能。
在C语言中,可以设计相应的数据结构来存储员工信息,并实现增删改查等操作。
2. 薪酬福利模块薪酬福利是员工关注的重点之一。
通过该模块,可以实现薪资计算、福利发放、社保公积金管理等功能。
在C语言中,可以设计算法来实现薪资计算,并与数据库进行交互来存储相关数据。
3. 绩效考核模块绩效考核是评价员工工作表现的重要指标。
通过该模块,可以实现绩效目标设定、考核评分、绩效奖励等功能。
在C语言中,可以设计评分算法来评价员工绩效,并生成相应报表供管理者参考。
4. 培训发展模块培训发展是员工职业生涯规划的重要组成部分。
通过该模块,可以实现培训计划制定、培训资源管理、培训效果评估等功能。
在C语言中,可以设计培训计划生成算法,并实现培训资源的动态调配。
四、技术选型在基于C语言开发企业级人力资源管理系统时,需要考虑到系统的性能、稳定性和安全性。
同时还需要考虑到开发成本和维护成本。
因此,在技术选型上可以选择使用MySQL数据库进行数据存储,使用Socket进行网络通信,使用GTK+进行界面设计等技术。
五、安全性设计在企业级人力资源管理系统中,安全性是至关重要的。
基于C的企业人事管理系统设计与优化
基于C的企业人事管理系统设计与优化一、引言企业人事管理系统是企业内部管理的重要组成部分,它涉及到员工信息管理、薪资福利管理、考勤管理、绩效评估等多个方面。
为了提高企业的管理效率和员工的工作体验,设计一个高效稳定的企业人事管理系统至关重要。
本文将基于C语言,探讨企业人事管理系统的设计与优化。
二、系统需求分析在设计企业人事管理系统之前,首先需要进行系统需求分析。
根据企业规模和特点,确定系统所需功能模块,包括但不限于员工信息管理、薪资福利管理、考勤管理、绩效评估等。
同时,还需要考虑系统的安全性、稳定性和扩展性等方面的需求。
三、系统设计与架构1. 数据库设计在设计企业人事管理系统时,数据库设计是至关重要的一环。
需要合理设计数据库表结构,确保数据存储的有效性和完整性。
可以采用关系型数据库或者NoSQL数据库来存储员工信息、薪资数据等。
2. 模块设计根据系统需求分析的结果,将系统划分为不同的功能模块,每个模块负责处理特定的任务。
比如员工信息管理模块负责员工档案的录入和查询,薪资福利管理模块负责薪资计算和福利发放等。
3. 界面设计界面设计直接影响用户体验,需要简洁明了、操作便捷。
可以采用C语言中的图形库或者GUI库来实现系统界面,提高用户交互体验。
四、系统实现与优化1. C语言编程实现使用C语言编程实现企业人事管理系统,可以充分发挥C语言在系统编程方面的优势。
通过良好的代码结构和逻辑设计,实现系统功能模块之间的协同工作。
2. 系统优化在实现过程中,需要不断对系统进行优化。
可以通过代码优化、算法优化等手段提高系统的运行效率和响应速度。
同时,还可以引入缓存机制、异步处理等技术来提升系统性能。
五、安全性与稳定性保障1. 数据安全企业人事管理涉及大量敏感信息,如员工个人信息、薪资数据等,需要加强数据加密和权限控制,确保数据安全不被泄露。
2. 系统稳定性为了保障系统稳定运行,需要进行充分测试和异常处理。
及时发现并解决潜在问题,确保系统能够长时间稳定运行。
C语言下的企业级人事管理系统设计与开发
C语言下的企业级人事管理系统设计与开发一、引言在当今信息化时代,企业管理系统已经成为企业管理的重要工具之一。
人事管理系统作为其中的一个重要组成部分,对于企业的人力资源管理起着至关重要的作用。
本文将介绍如何利用C语言设计和开发一个企业级人事管理系统,以满足企业对于人力资源管理的需求。
二、系统需求分析在设计和开发企业级人事管理系统之前,首先需要进行系统需求分析。
根据企业的实际需求,人事管理系统应该包括员工信息管理、薪资管理、考勤管理、绩效考核等功能模块。
同时,系统需要具备良好的用户界面和操作体验,方便企业管理员和员工进行操作。
三、系统设计1. 数据库设计在设计人事管理系统时,需要首先设计数据库结构。
数据库中应该包括员工信息表、薪资信息表、考勤信息表、绩效考核表等。
通过合理的数据库设计,可以提高系统的数据存储效率和查询速度。
2. 模块设计根据系统需求分析,可以将人事管理系统划分为多个功能模块,如员工信息管理模块、薪资管理模块、考勤管理模块、绩效考核模块等。
每个模块应该具有清晰的功能界面和相应的操作流程。
3. 界面设计良好的界面设计是提高用户体验的关键。
在设计界面时,应该注重界面布局的合理性和操作按钮的易用性。
同时,界面风格应该符合企业的整体风格,提升企业形象。
四、系统开发1. 环境搭建在进行系统开发之前,需要搭建相应的开发环境。
可以选择合适的集成开发环境(IDE),如Dev-C++、Code::Blocks等。
同时,需要安装相应的数据库管理系统(DBMS),如MySQL、SQLite等。
2. 编码实现根据系统设计所确定的功能模块和界面设计,开始进行编码实现。
在编码过程中,需要遵循良好的编程规范和代码风格,确保代码的可读性和可维护性。
3. 调试测试完成编码后,需要进行系统调试和测试。
通过测试可以发现并解决程序中存在的bug和逻辑错误,确保系统的稳定性和可靠性。
五、系统部署与维护1. 系统部署在完成开发和测试后,可以将人事管理系统部署到企业内部服务器或云服务器上。
人事管理系统c课程设计
人事管理系统c课程设计一、课程目标知识目标:1. 让学生理解人事管理系统的基本概念和功能,掌握其在我国企业中的应用情况。
2. 使学生掌握数据库管理、数据查询和更新等基本操作,并能运用到人事管理系统c课程设计中。
3. 帮助学生了解软件工程的基本原理,掌握系统分析与设计的方法,为今后从事软件开发工作打下基础。
技能目标:1. 培养学生运用所学知识,结合实际需求,独立设计并实现一个简单的人事管理系统。
2. 提高学生运用编程语言(C语言)进行系统开发的能力,熟练掌握相关开发工具和调试技巧。
3. 培养学生团队协作和沟通能力,能在项目中进行有效的分工与合作。
情感态度价值观目标:1. 激发学生对计算机科学和软件工程的兴趣,培养其主动学习的习惯和探究精神。
2. 培养学生具备良好的职业道德和职业素养,认识到人事管理系统在企业管理中的重要性。
3. 引导学生关注社会发展,了解企业需求,树立正确的就业观念,为未来职业生涯规划做好准备。
课程性质:本课程为实践性较强的课程,旨在让学生通过实际操作,掌握人事管理系统c课程设计的方法和技巧。
学生特点:学生具备一定的计算机基础和编程能力,对人事管理系统有一定了解,但实际操作经验不足。
教学要求:结合学生特点和课程性质,采用案例教学、任务驱动、分组合作等教学方法,注重培养学生的实践能力和团队协作精神。
在教学过程中,分解课程目标为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 人事管理系统概述:介绍人事管理系统的基本概念、发展历程、功能模块及应用场景。
教材章节:第一章 人事管理系统概述2. 数据库基础:讲解数据库的基本原理,重点掌握SQL语言及数据库设计方法。
教材章节:第二章 数据库基础3. C语言编程基础:复习C语言编程基础,包括数据类型、运算符、控制结构、函数等。
教材章节:第三章 C语言编程基础4. 人事管理系统设计与实现:分析人事管理系统的需求,学习软件工程的基本原理,进行系统设计与实现。
C语言课程设计报告—人事管理系统1
人事管理系统前言:现代计算机技术的发展为人们的学习、生活、工作提供了很大的帮助, 各行各业都需要特定计算系统的运用, 我们需要了解这些系统是怎么样为我们服务以及他们是怎样编辑出来的。
我们需要学习C语言编程, 根据课堂讲授内容, 做相应的自主练习, 消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题, 逐渐培养编程能力、用计算机解决实际问题的能力, 能够按照要求编辑一些基本的程序, 提高自己的思维能力。
题目:(1)某高校主要人员有: 在职人员(行政人员、教师、一般员工)、退休人员及临时工。
现在需要储存这些人员的人事档案信息, 内容包括编号、姓名、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。
其中, 人员编号唯一, 不能重复。
(2)添加删除功能:能根据学院人事的变动情况, 添加删除记录。
(3)查询功能: 能根据编号和姓名进行查询。
(4)编辑功能(高级): 根据查询对相应的记录进行修改并记录。
(5)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数, 高学历高职称人数), 统计要求同时显示被统计着的信息。
排序功能: 按照年龄、来院时间进行排序。
保存功能: 能对输入的数据进行相应的存储。
分析:我们编辑的程序要能够满足题目的要求, 可以进行这么多的功能的计算!但是在开始我们运行使用程序的时候必须要知道我们要运用这些功能中的哪一个!这就要求我们可以程序中任意选择我们所需要的功能!很显然我们要编辑存储人员的信息自然要运用到文件!而人员的信息必须要以结构体的形式来表示才能够方便我们提取信息!我们选择了要运行的功能分支之后!这些功能是以主函数以外的被调函数!当有需要时被调函数还可以调用其他的被吊函数!例如我们题目中的统计和查询功能, 就可以用这种方式来编辑程序!方便清楚!设计:很显然主程序要用到SWICTH函数, 这样可以选择要运行的那个功能的函数来执行, 而其他的功能函数则不必运行!三、解题思路1.定义结构struct staff{char num[10];char name[20];char sex[10];int age;char title[20];char p_landscape[30];char Qualifications[30];int Service_time;char come_time[30];char category[30];}staff[100];2.主程序进入主菜单函数void main(){menu();}/*******************主菜单函数**********************/void menu(){char w0;do{system("cls");fflush(stdin); /*清除缓冲区输入*/puts("***********************高校人事管理系统**********************\n\n");puts("\t\t\t\t1)增加人员信息\n"); puts("\t\t\t\t2)删除人员信息 \n"); puts("\t\t\t\t3)查询人员信息\n"); puts("\t\t\t\t4)修改人员信息\n"); puts("\t\t\t\t5)统计人员信息\n"); puts("\t\t\t\t6)对人员排序\n");puts("\t\t\t\t7)保存人员信息\n"); puts("\t\t\t\t8)浏览人员信息\n"); puts("\t\t\t\t9)退出\n");printf("\t\t\t\t 请选择 [ ]\b\b"); w0=getchar();}while(w0<'1'||w0>'9'); switch(w0-48){case 1:add();break;case 2:delete_data();break;case 3:search();break;case 4:modify();break; case 5:stastic();break;case 6:sort();break;case 7:save();break;case 8:browse();break;case 9:break;} }(1)查询功能int search_data()/*{int i,flag; char s[30],w0;system("cls");/*清屏*/ n=load(); do{fflush(stdin); /*清除缓冲区输入*/printf(" 通过1)编号 2)姓名 [ ]\b\b"); w0=getchar(); }while(w0<'1'||w0>'2'); if(w0=='1'){/*按编号查找*/ flag=0;puts("输入人员编号:"); scanf("%s",s); for(i=0;i<n;i++){if(strcmp(s,staff[i].num)==0){printf_face();printf_one(staff[i]); flag=1;break;} else continue; }if(flag==0)puts("该人员不存在!"); }else {/*按姓名查找*/ flag=0;puts("输入人员姓名:"); scanf("%s",s); for(i=0;i<n;i++){if(strcmp(s,staff[i].name)==0){printf_face();printf_one(staff[i]);flag=1;break;}else continue;}if(flag==0) puts("该人员不存在!");}return i;void search(){int k;char w1;loop: k=search_data();do{fflush(stdin); /*清除缓冲区输入*/printf("1)回主菜单 2)退出 3)继续查询 [ ]\b\b"); w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')menu();else if(w1=='2')exit(0);void add(){char w0,w1;loop: system("cls");puts("请输入编号(如001):");scanf("%s",s.num);if(test(s.num))goto loop;/*编号重复*/puts("请输入姓名:");scanf("%s",);puts("请输入性别(男,女):");scanf("%s",s.sex);puts("请输入年龄:");scanf("%d",&s.age);puts("请输入职务(教授副教授讲师助教学生后勤人员):");scanf("%s",s.duty);puts("请输入职称 (无初级高级 ):");scanf("%s",s.title);puts("请输入政治面貌( 党员非党员 ):");scanf("%s",s.p_landscape);puts("请输入最高学历(小学初中高中大学硕士学位更高):");scanf("%s",s.Qualifications);puts("请输入任职时间:");scanf("%d",&s.Service_time);puts("请输入来院时间(如20050101):");scanf("%s",e_time);puts("请输入人员类别(行政人员教师一般员工退休人员临时工):");scanf("%s",s.category);do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');switch(w0){case 1:save(s);break;case 2:break;}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续增加人员信息 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')goto loop;else if(w1=='2')menu();else exit(0);}(3)保存信息void save(){char w0;save_all();printf("所有信息已保存!\n");do{fflush(stdin); /*清除缓冲区输入*/printf("1) 回主菜单 2) 退出 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1')menu();else exit(0);}void save_all()/*保存所有数据函数*/{int i;FILE *fp;if((fp=fopen("text.txt","wb"))==NULL){printf("无法打开文件!");exit(0);}for(i=0;i<n;i++){if(staff[i].age!=0)fprintf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",staff[i].num,staff[i].name, staff[i].sex,staff[i].age,staff[i].duty,staff[i].title,staff[i].p_landscape,sta ff[i].Qualifications,staff[i].Service_time,staff[i].come_time,staff[i].category );else continue;}fclose(fp);}(4)删除人员void delete_data(){int k; char w0,w1;loop: k=search_data();if(k<n){do{fflush(stdin); /*清除缓冲区输入*/printf("确认要删除该人员信息? 1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){staff[k].age=0;save_all();puts("该人员信息已被删除!");} } do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续删除数据 2)回主菜单 3)退出w1=getchar();}while(w1<'1'||w1>'3'); if(w1=='1') goto loop; else if(w1=='2')menu(); else exit(0); }(5)修改人员信息 void modify() {int k=0,w0,g; char h[30],w1,w2; loop: g=search_data(); if(g<n){ do{puts("\t\t\t 修改: 1)编号"); puts("\t\t\t 2)姓名"); puts("\t\t\t 3)性别"); puts("\t\t\t 4)年龄"); puts("\t\t\t 5)职务"); puts("\t\t\t 6)职称"); puts("\t\t\t 7)政治面貌"); puts("\t\t\t 8)最高学历"); puts("\t\t\t 9)任职时间"); puts("\t\t\t 10)来院时间"); puts("\t\t\t 11)人员类别"); printf(" 请选择 : [ ]\b\b"); scanf("%d",&w0);}while(w0<1||w0>11); switch(w0){case 1:puts("请输入新编号:");scanf("%s",h);strcpy(staff[g].num,h);break; case 2:puts("请输入姓名:");scanf("%s",h);strcpy(staff[g].name,h);break; case 3:puts("请输入性别:");scanf("%s",h);strcpy(staff[g].sex,h);break; case 4:puts("请输入年龄:");scanf("%d",&k);staff[g].age=k;break; case 5:puts("请输入职务:");scanf("%s",h);strcpy(staff[g].duty,h);break; case 6:puts("请输入职称:");scanf("%s",h);strcpy(staff[g].title,h);break;scanf("%s",h);strcpy(staff[g].p_landscape,h);break;case 8:puts("请输入最高学历:");scanf("%s",h);strcpy(staff[g].Qualifications,h);break;case 9:puts("请输入任职时间:");scanf("%d",&k);staff[g].Service_time=k;break;case 10:puts("请输入来院时间:");scanf("%s",h);strcpy(staff[g].come_time,h);break;case 11:puts("请输入人员类别:");scanf("%s",h);strcpy(staff[g].category,h);break;}do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)保存 2)否[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'2');if(w1=='1'){save_all(); puts("保存修改成功!");}}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续修改 2)回主菜单 3)退出[ ]\b\b");w2=getchar();}while(w2<'1'||w2>'3');if(w2=='1')goto loop;else if(w2=='2')menu();else exit(0);}(6)统计人员信息void stastic(){int i,count;char w0,w1;n=load();if(n==0){puts("没有数据!");getchar();menu();}loop: system("cls");do{fflush(stdin); /*清除缓冲区输入*/printf("通过1)在职人员 2)党员\n");printf(" 3)女工人数 4)最高学历 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'4');if(w0=='1'){/*统计在职人员*/printf_face();for(i=0,count=0;i<n&&staff[i].age;i++)if(strcmp(staff[i].category,"退休人员")!=0&&strcmp(staff[i].category,"临时工")!=0){count++; printf_one(staff[i]);} printf("\t\t\t\t 共有%d 条记录",count); }else if(w0=='2'){/*统计党员*/ printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].p_landscape,"党员count++; printf_one(staff[i]);} printf("\t\t\t\t 共有%d 条记录",count);}else if(w0=='3'){/*统计女工人员*/ printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].sex,"女")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t 共有%d 条记录",count);}else {/*统计高学历人员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].Qualifications,"硕士学位")==0||strcmp(staff[i].Qualifications,"更高")==0){count++; printf_one(staff[i]);} printf("\t\t\t\t 共有%d 条记录",count);} do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)继续统计 2)回主菜单 3)退出 [ ]\b\b"); w1=getchar();}while(w1<'1'||w1>'3'); if(w1=='1') goto loop; else if(w1=='2')menu(); else exit(0); }(6) 排序功能void sort() {int i,j;char w0,w1; struct staff s1; loop: n=load();system("cls"); do{fflush(stdin); /*清除缓冲区输入*/printf("通过 1)年龄 2)来院时间w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){/*按年龄排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(staff[i].age>staff[j].age){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}else {/*按来院时间排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(strcmp(staff[i].come_time,staff[j].come_time)>0){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}printf_face();for(i=0;i<n;i++) /*显示排序结果*/printf_one(staff[i]);do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)回主菜单 2)继续排序 3)退出[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') menu();else if(w1=='2')goto loop;else exit(0);}四、运行与测试报告*********************************高校人事管理系统******************************1)增加人员信息2)删除人员信息3)查询人员信息4)修改人员信息5)统计人员信息6)对人员排序7)保存人员信息8)浏览人员信息9)退出请选择【 1】请输入编号(如001):20071003335请输入姓名:majianbo请输入性别(男,女):nan请输入年龄:20请输入职务(教授副教授讲师助教学生后勤人员): jiaoshou请输入职称 (无初级高级 ):gaoji请输入政治面貌( 党员非党员 ):danyuan请输入最高学历(小学初中高中大学硕士学位更高): shuoshi请输入任职时间:20070901请输入来院时间(如20050101):20070901请输入人员类别(行政人员教师一般员工退休人员临时工): jiaoshi是否保存?1)是 2)否 [1]该信息已成功保存!1)继续增加人员信息 2)回主菜单 3)退出 [ ]程序:#include<stdlib.h>#include <stdio.h>#include <string.h>struct staff/*定义结构体*/{char num[10];/*编号*/char name[20];/*姓名*/char sex[10];/*性别*/int age;/*年龄*/char duty[20];/*职务*/char title[20];/*职称*/char p_landscape[30];/*政治面貌*/char Qualifications[30];/*学历*/int Service_time;/*任职时间*/char come_time[30];/*来院时间*/char category[30];/*人员类别*/}staff[100];struct staff s;int n;void menu();void printf_face()/*显示数据结构项目函数*/{printf("编号姓名性别年龄职务职称政治面貌学历任职时间来院时间人员类别\n");}void printf_one(struct staff p)/*输出单个数据函数*/{printf("%-4s%-7s%-5s%-3d%-7s%-5s%-8s%-12s%-5d%-12s%-3s\n",p.num,,p.se x,p.age,p.duty,p.title,p.p_landscape,p.Qualifications,p.Service_time,e_tim e,p.category);}int load()/*加载函数*/{int i=0;FILE *fp;if((fp=fopen("text.txt","rb"))==NULL){return 0; exit(0);}for(i=0;!feof(fp);i++){ /*输出数据到结构体*/fscanf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",staff[i].num,staff[i].name,staff [i].sex,&staff[i].age,staff[i].duty,staff[i].title,staff[i].p_landscape,staff[i ].Qualifications,&staff[i].Service_time,staff[i].come_time,staff[i].category);} fclose(fp);return i;}int search_data()/*查找单个数据函数*/{int i,flag;char s[30],w0;system("cls");/*清屏*/n=load();do{fflush(stdin); /*清除缓冲区输入*/printf(" 通过1)编号 2)姓名 [ ]\b\b");w0=getchar(); }while(w0<'1'||w0>'2');if(w0=='1'){/*按编号查找*/flag=0;puts("输入人员编号:");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,staff[i].num)==0){printf_face();printf_one(staff[i]);flag=1;break;}else continue;}if(flag==0)puts("该人员不存在!");}else {/*按姓名查找*/flag=0;puts("输入人员姓名:");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,staff[i].name)==0){printf_face();printf_one(staff[i]);flag=1;break;}else continue;}if(flag==0) puts("该人员不存在!");}return i;}void save_all()/*保存所有数据函数*/{int i;FILE *fp;if((fp=fopen("text.txt","wb"))==NULL){printf("无法打开文件!");exit(0);}for(i=0;i<n;i++){if(staff[i].age!=0)fprintf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",staff[i].num,staff[i].name, staff[i].sex,staff[i].age,staff[i].duty,staff[i].title,staff[i].p_landscape,sta ff[i].Qualifications,staff[i].Service_time,staff[i].come_time,staff[i].category );else continue;}fclose(fp);}int test(char h[10])/*检查编号是否重复*/{int i;n=load();for(i=0;i<n;i++)if(strcmp(h,staff[i].num)==0){puts("输入的编号有重复!请重新输入编号!");system("pause");return 1;}return 0;}void single_save(struct staff p)/*保存单个数据函数*/{FILE *fp;if((fp=fopen("text.txt","ab+"))==NULL){printf("无法打开文件!");exit(0);}fprintf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",p.num,,p.sex,p.age,p.duty ,p.title,p.p_landscape,p.Qualifications,p.Service_time,e_time,p.category);printf("该信息已成功保存!\n");fclose(fp);}/*********************************修改模块**********************************/ void modify(){int k=0,w0,g;char h[30],w1,w2;loop: g=search_data();if(g<n){do{puts("\t\t\t修改: 1)编号");puts("\t\t\t 2)姓名");puts("\t\t\t 3)性别");puts("\t\t\t 4)年龄");puts("\t\t\t 5)职务");puts("\t\t\t 6)职称");puts("\t\t\t 7)政治面貌");puts("\t\t\t 8)最高学历");puts("\t\t\t 9)任职时间");puts("\t\t\t 10)来院时间");puts("\t\t\t 11)人员类别");printf(" 请选择 : [ ]\b\b");scanf("%d",&w0);}while(w0<1||w0>11);switch(w0){case 1:puts("请输入新编号:");scanf("%s",h);strcpy(staff[g].num,h);break;case 2:puts("请输入姓名:");scanf("%s",h);strcpy(staff[g].name,h);break;case 3:puts("请输入性别:");scanf("%s",h);strcpy(staff[g].sex,h);break;case 4:puts("请输入年龄:");scanf("%d",&k);staff[g].age=k;break;case 5:puts("请输入职务:");scanf("%s",h);strcpy(staff[g].duty,h);break;case 6:puts("请输入职称:");scanf("%s",h);strcpy(staff[g].title,h);break;case 7:puts("请输入政治面貌:");scanf("%s",h);strcpy(staff[g].p_landscape,h);break;case 8:puts("请输入最高学历:");scanf("%s",h);strcpy(staff[g].Qualifications,h);break;case 9:puts("请输入任职时间:");scanf("%d",&k);staff[g].Service_time=k;break;case 10:puts("请输入来院时间:");scanf("%s",h);strcpy(staff[g].come_time,h);break;case 11:puts("请输入人员类别:");scanf("%s",h);strcpy(staff[g].category,h);break;}do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)保存 2)否[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'2');if(w1=='1'){save_all(); puts("保存修改成功!");}}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续修改 2)回主菜单 3)退出[ ]\b\b");w2=getchar();}while(w2<'1'||w2>'3');if(w2=='1')goto loop;else if(w2=='2')menu();else exit(0);}/************************保存模块******************************/void save(){char w0;save_all();printf("所有信息已保存!\n");do{fflush(stdin); /*清除缓冲区输入*/printf("1) 回主菜单 2) 退出 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1')menu();else exit(0);}/*************************查找模块*****************************/ void search(){int k;char w1;loop: k=search_data();do{fflush(stdin); /*清除缓冲区输入*/printf("1)回主菜单 2)退出 3)继续查询 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')menu();else if(w1=='2')exit(0);else goto loop;}/***************************增加模块*****************************/ void add(){char w0,w1;loop: system("cls");puts("请输入编号(如001):");scanf("%s",s.num);if(test(s.num))goto loop;/*编号重复*/puts("请输入姓名:");scanf("%s",);puts("请输入性别(男,女):");scanf("%s",s.sex);puts("请输入年龄:");scanf("%d",&s.age);puts("请输入职务(教授副教授讲师助教学生后勤人员):");scanf("%s",s.duty);puts("请输入职称 (无初级高级 ):");scanf("%s",s.title);puts("请输入政治面貌( 党员非党员 ):");scanf("%s",s.p_landscape);puts("请输入最高学历(小学初中高中大学硕士学位更高):");scanf("%s",s.Qualifications);puts("请输入任职时间:");scanf("%d",&s.Service_time);puts("请输入来院时间(如20050101):");scanf("%s",e_time);puts("请输入人员类别(行政人员教师一般员工退休人员临时工):");scanf("%s",s.category);do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');switch(w0-48){case 1:single_save(s);break;case 2:break;}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续增加人员信息 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')goto loop;else if(w1=='2')menu();else exit(0);}/*******************************删除模块*****************************/void delete_data(){int k; char w0,w1;loop: k=search_data();if(k<n){do{fflush(stdin); /*清除缓冲区输入*/printf("确认要删除该人员信息? 1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){staff[k].age=0;save_all();puts("该人员信息已被删除!");}}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续删除数据 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') goto loop;else if(w1=='2')menu();else exit(0);}/********************************统计模块*******************************/void stastic(){int i,count;char w0,w1;n=load();if(n==0){puts("没有数据!");getchar();menu();}loop: system("cls");do{fflush(stdin); /*清除缓冲区输入*/printf("通过1)在职人员 2)党员\n");printf(" 3)女工人数 4)最高学历 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'4');if(w0=='1'){/*统计在职人员*/printf_face();for(i=0,count=0;i<n&&staff[i].age;i++)if(strcmp(staff[i].category,"退休人员")!=0&&strcmp(staff[i].category,"临时工")!=0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}else if(w0=='2'){/*统计党员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].p_landscape,"党员")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}else if(w0=='3'){/*统计女工人员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].sex,"女")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}else {/*统计高学历人员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].Qualifications,"硕士学位")==0||strcmp(staff[i].Qualifications,"更高")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)继续统计 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') goto loop;else if(w1=='2')menu();else exit(0);}/*******************************排序模块***********************************/ void sort(){int i,j;char w0,w1;struct staff s1;loop: n=load();system("cls");do{fflush(stdin); /*清除缓冲区输入*/printf("通过 1)年龄 2)来院时间 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){/*按年龄排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(staff[i].age>staff[j].age){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}else {/*按来院时间排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(strcmp(staff[i].come_time,staff[j].come_time)>0){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}printf_face();for(i=0;i<n;i++) /*显示排序结果*/printf_one(staff[i]);do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)回主菜单 2)继续排序 3)退出[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') menu();else if(w1=='2')goto loop;else exit(0);}/********************************浏览模块**************************************/void browse(){int i;char w0;n=load();system("cls");printf_face();for(i=0;i<n ;i++)printf_one(staff[i]);printf("\t\t\t\t共有%d条人员记录\n",n);do{fflush(stdin); /*清除缓冲区输入*/printf(" 1)回主菜单 2)退出 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1') menu();if(w0=='2') exit(0);}/********************************主菜单函数*************************************/void menu(){char w0;do{system("cls");fflush(stdin); /*清除缓冲区输入*/puts("*********************************高校人事管理系统*******************************\n\n");puts("\t\t\t\t1)增加人员信息\n");puts("\t\t\t\t2)删除人员信息 \n");puts("\t\t\t\t3)查询人员信息\n");puts("\t\t\t\t4)修改人员信息\n");puts("\t\t\t\t5)统计人员信息\n");puts("\t\t\t\t6)对人员排序\n");puts("\t\t\t\t7)保存人员信息\n");puts("\t\t\t\t8)浏览人员信息\n");puts("\t\t\t\t9)退出\n");printf("\t\t\t\t请选择 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'9');switch(w0-48){case 1:add();break;case 2:delete_data();break;case 3:search();break;case 4:modify();break;case 5:stastic();break;case 6:sort();break;case 7:save();break;case 8:browse();break;case 9:break;}}/***********************************主函数****************************************/void main(){menu();}。
c语言课程设计之人事管理系统
C语言课程设计之人事管理系统简介人事管理系统是一种用于管理组织内人员信息和管理人力资源的系统。
在本文档中,我们将介绍一个使用C语言编写的简单人事管理系统。
该系统可以实现员工信息的添加、删除、修改和查询,以及一些基本的人事管理功能。
功能模块1. 员工信息管理模块•添加员工信息:包括姓名、工号、职位、部门等基本信息。
•删除员工信息:根据工号删除指定员工的信息。
•修改员工信息:根据工号修改指定员工的信息。
•查询员工信息:可以根据姓名、工号等条件查询员工的信息。
2. 薪资管理模块•发放工资:根据员工的工作时长、加班情况等计算工资并发放。
•调整薪资:可以根据员工表现调整薪资水平。
3. 考勤管理模块•打卡记录:记录员工的上下班打卡情况。
•考勤统计:统计员工的出勤情况,包括迟到、早退、旷工等信息。
系统设计1. 数据结构•员工信息结构体:包括姓名、工号、职位、部门等信息。
•薪资结构体:包括基本工资、加班工资等信息。
•考勤记录结构体:包括打卡时间、出勤情况等信息。
2. 功能实现•员工信息管理:使用链表或数组存储员工信息,实现增删改查操作。
•薪资管理:根据员工的工作情况计算薪资并更新薪资信息。
•考勤管理:记录员工的打卡信息并统计考勤情况。
系统实现1. 界面设计•采用控制台界面,通过菜单选择实现各项功能。
•显示员工信息列表、薪资管理界面和考勤记录界面。
2. 代码实现•使用C语言实现各个功能模块,包括管理员工信息、计算薪资、记录考勤等。
•采用函数封装、模块化设计,提高代码的可读性和可维护性。
测试与验证1. 单元测试•对每个功能模块进行单元测试,确保功能的正确性。
•模拟各种情况,包括正常情况和异常情况。
2. 系统测试•综合测试所有功能模块,验证系统的完整性和稳定性。
•模拟真实使用情况,检查系统的性能和可靠性。
总结通过本文档的介绍,我们了解了一个简单的C语言编写的人事管理系统的设计思路和实现方法。
人事管理系统是组织管理中的重要系统之一,对于提高工作效率和管理人力资源具有重要意义。
c人事管理系统课程设计
c人事管理系统课程设计一、教学目标本课程旨在通过学习c人事管理系统,使学生掌握相关的知识、技能以及情感态度价值观。
具体目标如下:1.理解c人事管理系统的基本概念和原理;2.掌握c人事管理系统的主要组成部分及其功能;3.了解c人事管理系统的发展历程和趋势。
4.能够熟练使用c人事管理系统软件;5.能够独立完成c人事管理系统的安装、配置和维护;6.能够根据实际需求,设计和实施c人事管理系统。
情感态度价值观目标:1.培养学生对c人事管理系统的兴趣和热情;2.培养学生对工作的责任心和敬业精神;3.培养学生团队协作和沟通的能力。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.c人事管理系统的基本概念和原理:介绍c人事管理系统的基本概念,如人事管理、人力资源管理等,以及其原理和作用。
2.c人事管理系统的主要组成部分及其功能:详细讲解c人事管理系统的主要组成部分,如员工信息管理、薪酬管理、考勤管理等,并阐述其功能和应用。
3.c人事管理系统的发展历程和趋势:介绍c人事管理系统的发展历程,分析其未来发展趋势,让学生了解行业动态。
4.c人事管理系统的安装、配置和维护:讲解c人事管理系统的安装、配置和维护方法,培养学生具备实际操作能力。
5.c人事管理系统的设计和实施:结合实际案例,讲解如何设计和实施c人事管理系统,培养学生具备实际项目经验。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
1.讲授法:通过讲解c人事管理系统的基本概念、原理和发展趋势,使学生掌握相关知识。
2.讨论法:学生就c人事管理系统的设计和实施展开讨论,培养学生的思考和沟通能力。
3.案例分析法:分析实际案例,使学生了解c人事管理系统的应用场景和实际效果。
4.实验法:安排实验课程,让学生动手操作c人事管理系统,提高其实际操作能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将选用以下教学资源:1.教材:选用权威、实用的c人事管理系统教材,作为课程主要学习资料。
c人事管理系统课程设计
c人事管理系统课程设计一、课程目标知识目标:1. 理解人事管理系统的基本概念、功能及在企业管理中的应用;2. 掌握人事管理系统的主要模块,如员工信息管理、薪资管理、考勤管理等;3. 学会使用数据库管理人事数据,了解数据查询、更新、删除等基本操作。
技能目标:1. 能够运用所学知识,设计简单的人事管理系统功能模块;2. 学会使用至少一种编程语言(如Java、C#等)实现人事管理系统的部分功能;3. 提高分析问题、解决问题的能力,通过实际操作,学会调试和优化系统。
情感态度价值观目标:1. 培养学生对信息技术学科的兴趣,提高学习积极性;2. 增强学生的团队协作意识,学会与他人共同解决问题;3. 培养学生的创新意识,鼓励敢于尝试、勇于探索的精神。
课程性质:本课程为信息技术学科,旨在让学生了解并掌握人事管理系统的基本知识和技能,提高实际操作能力。
学生特点:学生为高中年级,已具备一定的计算机操作能力和编程基础,对实际应用场景感兴趣。
教学要求:结合课程性质和学生特点,注重理论联系实际,强调实践操作,培养学生的学习兴趣和动手能力。
将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 人事管理系统概述- 了解人事管理系统的概念、作用及发展历程;- 分析人事管理系统在实际企业中的应用场景。
2. 人事管理系统模块介绍- 员工信息管理:学习如何录入、查询、修改和删除员工信息;- 薪资管理:掌握薪资计算、发放及个人所得税处理方法;- 考勤管理:了解考勤制度,学习如何进行考勤数据统计和分析;- 招聘管理:了解招聘流程,学习如何发布招聘信息、筛选简历等。
3. 数据库技术在人事管理系统中的应用- 学习数据库基础知识,如数据表、字段、数据类型等;- 掌握数据库设计原则,学会使用SQL语言进行数据操作;- 结合人事管理系统,设计数据库表结构,实现数据存储和管理。
4. 编程语言实现人事管理系统功能- 选择一种编程语言(如Java、C#等),学习其基本语法和应用;- 结合实际需求,编写程序实现人事管理系统的部分功能;- 学会调试程序,优化系统性能。
C语言课程设计(论文)-高校人事管理系统设计
一、题目要求 (2)1、系统功能的基本要求....................................................................... 错误!未定义书签。
2、提示................................................................................................... 错误!未定义书签。
二、需求分析 (3)三、总体设计 (3)四、详细设计 (4)1、主函数 (4)2、各模块设计 (5)(0)浏览模块------------------------------------------------------------------------6(1)删除模块--------------------------------------------------------------------------------------错误!未定义书签。
(2) 查询模块-------------------------------------------------------------------------------------8(2.1) 按编号查询模块----------------------------------------------------------------------------9(2.2) 按姓名查询模块----------------------------------------------------------------------------9(3)编辑模块............................................................................... 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计题目:人事管理系统设计目录:1.设计任务---------------------------------------------------------------------------------------------12.正文-----------------------------------------------------------------------------------------------------------2(1).系统模块图------------------------------------------------------------------------------------------3 (2).模块说明---------------------------------------------------------------------------------------------3 (3).用户使用说明---------------------------------------------------------------------------------------3 (4).测试结果---------------------------------------------------------------------------------------------33.设计小结--------------------------------------------------------------------------------------------------94.附录-----------------------------------------------------------------------------------------------------------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<stdio.h>#include<stdlib.h>#include<string.h>#include<iomanip>//#include<iostream>#define N 50struct 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<x;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);printf("人员类别:");scanf("%s",p[i]->type);fwrite(p[i],sizeof(struct personnelArchiveInfo),1,fp); }fclose(fp);system("pause");}void zj()//增加模块{system("cls");int i,x;FILE *fp;struct personnelArchiveInfo *p[N];fp=fopen("d://stu.txt","a");if((fp=fopen("d:/stu.txt","a"))==0){ printf("打开文件失败");exit(1); }printf("请输入要增加的人员个数:");scanf("%d",&x);for(i=0;i<x;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);printf("人员类别:");scanf("%s",p[i]->type);fwrite(p[i],sizeof(struct personnelArchiveInfo),1,fp); }fclose(fp); system("pause");}void sc()//删除模块{system("cls");int i,j,x,s=0;char a[10];FILE *fp;struct personnelArchiveInfo *p[N];fp=fopen("d:/stu.txt","r");if((fp=fopen("d:/stu.txt","r"))==0){ printf("打开文件失败");exit(1); }for(i=0;fread(&PAInfo,sizeof(PAInfo),1,fp);i++){p[i]=(struct personnelArchiveInfo *)malloc(sizeof(struct personnelArchiveInfo));*p[i]=PAInfo; }x=i; fclose(fp);fp=fopen("d:/stu.txt","w");if((fp=fopen("d:/stu.txt","w"))==0){ printf("打开文件失败");exit(1); }printf("输入要删除人员的编号:");scanf("%s",a);for(j=0;j<x;j+=1){ if(strcmp(p[j]->No,a)==0){ printf("编号:%s\n",p[j]->No);printf("姓名:%s\n",p[j]->name);printf("性别'1'男,'2'女:%d\n",p[j]->sex);printf("年龄:%d\n",p[j]->age);printf("职务:%s\n",p[j]->job);printf("职称:%s\n",p[j]->post);printf("政治面貌:%s\n",p[j]->politic);printf("最高学历:%s\n",p[j]->edu_level);printf("任职时间:%s\n",p[j]->period);printf("来院时间:%s\n",p[j]->start_time);printf("人员类别:%s\n\n",p[j]->type);printf("是否要删除?'1'是,'0'否:");scanf("%d",&s); if(s) continue;}fwrite(p[j],sizeof(struct personnelArchiveInfo),1,fp); }fclose(fp);system("pause");}void cx()//查询模块{system("cls");int i,j,x,y,s=0;char b[10];FILE *fp;struct personnelArchiveInfo *p[N];fp=fopen("d:/stu.txt","r");if((fp=fopen("d:/stu.txt","r"))==0){ printf("打开文件失败");exit(1); }for(i=0;fread(&PAInfo,sizeof(PAInfo),1,fp);i++){p[i]=(struct personnelArchiveInfo *)malloc(sizeof(struct personnelArchiveInfo));*p[i]=PAInfo; }fclose(fp);x=i;printf("请选择查询方法'1'编号,'0'姓名:");scanf("%d",&s);fp=fopen("d:/stu.txt","w");if((fp=fopen("d:/stu.txt","w"))==0){ printf("打开文件失败");exit(1); }if(s){printf("输入要查询人员的编号:");scanf("%s",b);for(j=0;j<x;j+=1){ if(strcmp(p[j]->No,b)==0){ printf("编号:%s\n",p[j]->No);printf("姓名:%s\n",p[j]->name);printf("性别'1'男,'2'女:%d\n",p[j]->sex);printf("年龄:%d\n",p[j]->age);printf("职务:%s\n",p[j]->job);printf("职称:%s\n",p[j]->post);printf("政治面貌:%s\n",p[j]->politic);printf("最高学历:%s\n",p[j]->edu_level);printf("任职时间:%s\n",p[j]->period);printf("来院时间:%s\n",p[j]->start_time);printf("人员类别:%s\n\n",p[j]->type);printf("是否要修改'1'是,'0'否");scanf("%d",&y);if(y)//编号查询{ system("cls");printf("编号:");scanf("%s",p[j]->No);printf("姓名:");scanf("%s",p[j]->name);printf("性别'1'男,'2'女:");scanf("%d",&p[j]->sex);printf("年龄:");scanf("%d",&p[j]->age);printf("职务:");scanf("%s",p[j]->job);printf("职称:");scanf("%s",p[j]->post);printf("政治面貌:");scanf("%s",p[j]->politic);printf("最高学历:");scanf("%s",p[j]->edu_level);printf("任职时间:");scanf("%s",p[j]->period);printf("来院时间:");scanf("%s",p[j]->start_time);printf("人员类别:");scanf("%s",p[j]->type);fwrite(p[j],sizeof(struct personnelArchiveInfo),1,fp); continue;}fwrite(p[j],sizeof(struct personnelArchiveInfo),1,fp); continue;}fwrite(p[j],sizeof(struct personnelArchiveInfo),1,fp); } } else//姓名查询{printf("输入要查询人员的姓名:");scanf("%s",b);for(j=0;j<x;j+=1){ if(strcmp(p[j]->name,b)==0){ printf("编号:%s\n",p[j]->No);printf("姓名:%s\n",p[j]->name);printf("性别'1'男,'2'女:%d\n",p[j]->sex);printf("年龄:%d\n",p[j]->age);printf("职务:%s\n",p[j]->job);printf("职称:%s\n",p[j]->post);printf("政治面貌:%s\n",p[j]->politic);printf("最高学历:%s\n",p[j]->edu_level);printf("任职时间:%s\n",p[j]->period);printf("来院时间:%s\n",p[j]->start_time);printf("人员类别:%s\n\n",p[j]->type);printf("是否要修改'1'是,'0'否");scanf("%d",&y);if(y){ system("cls");printf("编号:");scanf("%s",p[j]->No);printf("姓名:");scanf("%s",p[j]->name);printf("性别'1'男,'2'女:");scanf("%d",&p[j]->sex);printf("年龄:");scanf("%d",&p[j]->age);printf("职务:");scanf("%s",p[j]->job);printf("职称:");scanf("%s",p[j]->post);printf("政治面貌:");scanf("%s",p[j]->politic);printf("最高学历:");scanf("%s",p[j]->edu_level);printf("任职时间:");scanf("%s",p[j]->period);printf("来院时间:");scanf("%s",p[j]->start_time);printf("人员类别:");scanf("%s",p[j]->type);fwrite(p[j],sizeof(struct personnelArchiveInfo),1,fp);continue;}fwrite(p[j],sizeof(struct personnelArchiveInfo),1,fp);continue;}fwrite(p[j],sizeof(struct personnelArchiveInfo),1,fp); } }fclose(fp); system("pause");}void px()//排序模块{system("cls");int i,j,k,a;FILE *fp;struct personnelArchiveInfo *p[N];fp=fopen("d:/stu.txt","r");if((fp=fopen("d:/stu.txt","r"))==0){ printf("打开文件失败");exit(1); }for(i=0;fread(&PAInfo,sizeof(PAInfo),1,fp);i++){p[i]=(struct personnelArchiveInfo *)malloc(sizeof(struct personnelArchiveInfo));*p[i]=PAInfo; }fclose(fp);printf("选择排序方法'1'年龄'0'来院时间:");scanf("%d",&a);if(a){ for(k=0;k<i-1;k++)for(j=0;j<i-k-1;j++)if((p[j]->age)>(p[j+1]->age)){PAInfo=*p[j];*p[j]=*p[j+1];*p[j+1]=PAInfo;}for(i=0;i<k+1;i++){ printf("编号:%s\n",p[i]->No);printf("姓名:%s\n",p[i]->name);printf("性别'1'男,'2'女:%d\n",p[i]->sex);printf("年龄:%d\n",p[i]->age);printf("职务:%s\n",p[i]->job);printf("职称:%s\n",p[i]->post);printf("政治面貌:%s\n",p[i]->politic);printf("最高学历:%s\n",p[i]->edu_level);printf("任职时间:%s\n",p[i]->period);printf("来院时间:%s\n",p[i]->start_time);printf("人员类别:%s\n\n",p[i]->type); }}else{ for(k=0;k<i-1;k++)for(j=0;j<i-k-1;j++)if(strcmp((p[j]->start_time),(p[j+1]->start_time))>0) {PAInfo=*p[j];*p[j]=*p[j+1];*p[j+1]=PAInfo;}for(i=0;i<k+1;i++){ printf("编号:%s\n",p[i]->No);printf("姓名:%s\n",p[i]->name);printf("性别'1'男,'2'女:%d\n",p[i]->sex);printf("年龄:%d\n",p[i]->age);printf("职务:%s\n",p[i]->job);printf("职称:%s\n",p[i]->post);printf("政治面貌:%s\n",p[i]->politic);printf("最高学历:%s\n",p[i]->edu_level);printf("任职时间:%s\n",p[i]->period);printf("来院时间:%s\n",p[i]->start_time);printf("人员类别:%s\n\n",p[i]->type); }}system("pause");}void tj(){system("cls");int i,j,a,count=0;FILE *fp;struct personnelArchiveInfo *p[N];fp=fopen("d:/stu.txt","r");if((fp=fopen("d:/stu.txt","r"))==0){ printf("打开文件失败");exit(1); }for(i=0;fread(&PAInfo,sizeof(PAInfo),1,fp);i++){p[i]=(struct personnelArchiveInfo *)malloc(sizeof(struct personnelArchiveInfo));*p[i]=PAInfo; }fclose(fp);printf("\t1.统计在职人数\n");printf("\t2.统计党员人数\n");printf("\t3.统计女工人数\n");printf("\t4.统计高学历人数\n");printf("\t5.统计高职称人数\n");printf("\n\t\t请输入1~5选择:"); scanf("%d",&a);switch(a){case 1: for(j=0;j<i;j++){ if(!strcmp(p[j]->job,"无")==0){ count++;printf("编号:%s\n",p[j]->No);printf("姓名:%s\n",p[j]->name);printf("性别'1'男,'2'女:%d\n",p[j]->sex);printf("年龄:%d\n",p[j]->age);printf("职务:%s\n",p[j]->job);printf("职称:%s\n",p[j]->post);printf("政治面貌:%s\n",p[j]->politic);printf("最高学历:%s\n",p[j]->edu_level);printf("任职时间:%s\n",p[j]->period);printf("来院时间:%s\n",p[j]->start_time);printf("人员类别:%s\n\n",p[j]->type); }}printf("在职人数:%d\n",count);break;case 2:for(j=0;j<i;j++){ if(strcmp(p[j]->job,"党员")==0){ count++;printf("编号:%s\n",p[j]->No);printf("姓名:%s\n",p[j]->name);printf("性别'1'男,'2'女:%d\n",p[j]->sex);printf("年龄:%d\n",p[j]->age);printf("职务:%s\n",p[j]->job);printf("职称:%s\n",p[j]->post);printf("政治面貌:%s\n",p[j]->politic);printf("最高学历:%s\n",p[j]->edu_level);printf("任职时间:%s\n",p[j]->period);printf("来院时间:%s\n",p[j]->start_time);printf("人员类别:%s\n\n",p[j]->type); }}printf("党员人数:%d\n",count) ;break;case 3:for(j=0;j<i;j++){ if(p[j]->sex==2){ count++;printf("编号:%s\n",p[j]->No);printf("姓名:%s\n",p[j]->name);printf("性别'1'男,'2'女:%d\n",p[j]->sex);printf("年龄:%d\n",p[j]->age);printf("职务:%s\n",p[j]->job);printf("职称:%s\n",p[j]->post);printf("政治面貌:%s\n",p[j]->politic);printf("最高学历:%s\n",p[j]->edu_level);printf("任职时间:%s\n",p[j]->period);printf("来院时间:%s\n",p[j]->start_time);printf("人员类别:%s\n\n",p[j]->type); }}printf("女工人数:%d\n",count) ;break;case 4: for(j=0;j<i;j++){ if(strcmp(p[j]->edu_level,"大学")==0||strcmp(p[j]->edu_level,"硕士")==0||strcmp(p[j]->edu_level,"博士")==0){ count++;printf("编号:%s\n",p[j]->No);printf("姓名:%s\n",p[j]->name);printf("性别'1'男,'2'女:%d\n",p[j]->sex);printf("年龄:%d\n",p[j]->age);printf("职务:%s\n",p[j]->job);printf("职称:%s\n",p[j]->post);printf("政治面貌:%s\n",p[j]->politic);printf("最高学历:%s\n",p[j]->edu_level);printf("任职时间:%s\n",p[j]->period);printf("来院时间:%s\n",p[j]->start_time);printf("人员类别:%s\n\n",p[j]->type); }}printf("高学历人数:%d\n",count) ;break;case 5:for(j=0;j<i;j++){ if(strcmp(p[j]->job,"总经理")==0||strcmp(p[j]->job,"总裁")==0){ count++;printf("编号:%s\n",p[j]->No);printf("姓名:%s\n",p[j]->name);printf("性别'1'男,'2'女:%d\n",p[j]->sex);printf("年龄:%d\n",p[j]->age);printf("职务:%s\n",p[j]->job);printf("职称:%s\n",p[j]->post);printf("政治面貌:%s\n",p[j]->politic);printf("最高学历:%s\n",p[j]->edu_level);printf("任职时间:%s\n",p[j]->period);printf("来院时间:%s\n",p[j]->start_time);printf("人员类别:%s\n\n",p[j]->type);} }printf("高职称人数:%d\n",count) ;break;default:printf("错误选择") ;break; }system("pause");}void rd()//读取模块{system("cls");int i;FILE *fp;struct personnelArchiveInfo *p[N];fp=fopen("d:/stu.txt","r");if((fp=fopen("d:/stu.txt","r"))==0){ printf("打开文件失败");exit(1);}for(i=0;fread(&PAInfo,sizeof(PAInfo),1,fp);i++){p[i]=(struct personnelArchiveInfo *)malloc(sizeof(struct personnelArchiveInfo));*p[i]=PAInfo;printf("编号:%s\n",p[i]->No);printf("姓名:%s\n",p[i]->name);printf("性别'1'男,'2'女:%d\n",p[i]->sex);printf("年龄:%d\n",p[i]->age);printf("职务:%s\n",p[i]->job);printf("职称:%s\n",p[i]->post);printf("政治面貌:%s\n",p[i]->politic);printf("最高学历:%s\n",p[i]->edu_level);printf("任职时间:%s\n",p[i]->period);printf("来院时间:%s\n",p[i]->start_time);printf("人员类别:%s\n\n",p[i]->type);}printf("是否返回主菜单?");system("pause");fclose(fp);}void main(){ int flag=1;char i;system("color 048");sta();do{system("cls");printf("\n\n");printf("\t\t\t\t人事管理\n\n");printf("\t\t\ta.写入信息\n");printf("\t\t\tb.增加信息\n");printf("\t\t\tc.删除信息\n");printf("\t\t\td.查找和修改信息\n");printf("\t\t\te.选择排序\n");printf("\t\t\tf.统计人数\n");printf("\t\t\tg.退出\n");printf("\n\t\t请输入a~e选择:");i=getchar();switch(i){case 'a':input(); break;case 'b':zj(); break;case 'c':sc(); break;case 'd':cx(); break;case 'e':px();break;case 'f':tj() ;break;case 'g':flag=0;break;default:printf("错误选择\n") ;system("pause");break;}} while(flag==1);printf("\n\t\t\t谢谢使用!\n");}。