软件工程课程设计报告人事管理系统

合集下载

软件工程课程设计-人事管理系统(可编辑优质文档)

软件工程课程设计-人事管理系统(可编辑优质文档)

软件工程课程设计-人事管理系统(可编辑优质文档)软件工程课程设计-人事管理系统(可编辑优质文档)一、引言人事管理系统是一种集成化的软件系统,旨在优化和简化人事部门的工作流程和管理过程。

本文将介绍一个可编辑优质文档的人事管理系统的设计与实现。

二、系统概述人事管理系统是基于软件工程理论和技术开发的一个综合性管理系统,旨在改善和优化企业的人力资源管理过程。

系统的主要功能包括员工信息管理、考勤管理、招聘管理、绩效管理和报表统计等。

三、系统设计1. 员工信息管理在该系统中,可以录入和管理员工的基本信息,包括姓名、性别、出生日期、部门、职位、工资等。

同时,系统支持对员工信息进行查询、修改和删除等操作。

2. 考勤管理系统能够记录和管理员工的出勤情况,包括正常考勤、迟到、早退、请假和加班等。

通过与系统的集成,员工可以使用指纹识别等方式进行考勤打卡,实现自动化和精确化的考勤管理。

3. 招聘管理该系统提供了一套完整的招聘流程管理功能,包括发布招聘信息、简历筛选、面试安排和录用等。

招聘管理功能不仅节约了人力资源部门的时间和精力,还可以提高招聘效率和招聘质量。

4. 绩效管理系统支持对员工的绩效进行评估和管理,包括设定绩效指标、考核分数录入、绩效排名和薪资调整等。

通过与考勤管理和员工信息管理的结合,系统可以自动生成绩效报告和分析数据。

5. 报表统计系统能够自动生成各类人事管理报表,可以根据需求自定义报表样式和内容。

通过数据的可视化展示,管理人员能够及时了解企业的人力资源情况,为决策提供参考依据。

四、系统实现技术1. 前端技术人事管理系统的前端采用现代化的Web技术进行实现,包括HTML、CSS和JavaScript等。

前端界面设计简洁美观,用户友好,支持响应式布局,适配不同设备和屏幕尺寸。

2. 后端技术人事管理系统的后端采用了流行的开发框架和技术,如Java、Spring Boot和MySQL等。

采用面向对象的设计思想,系统结构清晰,模块化程度高,易于扩展和维护。

人事管理系统软件工程实验报告

人事管理系统软件工程实验报告

人事管理系统软件工程实验报告一、实验目的本次实验旨在设计并实现一个人事管理系统软件,通过该软件能够实现对员工信息、薪资、考勤等相关数据的管理和查询操作,提高人事管理的效率和准确性。

二、实验内容1.需求分析在开始实验之前,首先对人事管理系统的需求进行分析。

通过与实际使用人事管理系统的工作人员交流,了解到系统需要实现以下功能:(1)员工信息的录入和修改。

(2)员工薪资的计算和调整。

(3)员工考勤记录的登记和查询。

(4)员工离职和入职的管理。

(5)系统管理员的权限管理。

2.系统设计基于需求分析的结果,开始进行系统设计。

首先确定系统的基本架构,采用三层架构:界面层、业务逻辑层和数据持久层。

(1)界面层:实现用户与系统的交互,提供操作界面和数据展示窗口。

(2)业务逻辑层:负责处理用户的请求,进行数据的操作和逻辑判断。

(3)数据持久层:负责将数据存储到数据库中,实现数据的持久化。

3.编码实现根据系统设计的结果,开始进行编码实现。

根据项目需要,采用JAVA语言进行开发,并利用相关开发工具进行开发。

编码实现过程中,需要注意代码的规范性和可读性。

4.系统测试在实现阶段完成之后,进行系统的功能测试。

测试主要包括单元测试和综合测试。

在测试过程中,需要模拟实际使用场景,测试各个功能是否正常运行,并对可能出现的异常情况进行测试。

5.系统部署和运行在系统开发和测试通过后,将系统部署到服务器上,并进行系统的运行。

在运行过程中,需要保证系统的稳定性和安全性。

三、实验结果本次实验设计并实现了一个人事管理系统软件。

通过该软件,能够实现对员工信息、薪资、考勤等相关数据的管理和查询操作。

系统界面友好,功能完善,能够满足人事管理的各项需求。

四、实验总结通过本次实验,我深入了解了软件工程的开发流程和方法。

在实验过程中,我学习了需求分析、系统设计、编码实现、系统测试和部署运行等各个环节的具体操作。

在实验中,我积极与实际使用人事管理系统的工作人员交流,了解到系统的具体需求,并以此为基础进行系统的设计和实现。

软件工程课程设计报告_人事管理系统

软件工程课程设计报告_人事管理系统

软件工程课程设计题目人事管理系统1.课程题目人事管理系统设计2.概述2.1本课题的来源A公司是一家以寿险营销为目的的寿险公司,公司员工众多业务流量大,为了方便管理,我制作了一个人事管理系统。

主要通过员工基本信息录入、修改、查询、删除以及员工考勤等方面来对员工综合考评。

以便对员工发放工资进行合理分配。

这样能提高领导的人事管理水平还能提高员工的积极性。

通过现代计算机技术与企业管理相结合,实现人事管理系统的科学化、信息化、现代化,并且适合一般人群使用。

企业人事管理是相对企业部员工的管理。

集人员、考勤、工资、员工培训、系统功能等于一体的大型管理系统,为公司在人事管理等方面提供极大的方便。

本软件是以中小型企业为背景而设计开发的,界面美观、使用方便。

本系统主要以人员管理、考勤管理、统计分析管理、工资核算等,是企业人事管理必不可缺的好帮手。

2.2本课题目的、实现功能与预期成果2.2.1目的目前市面上流行的人事管理系统不少。

但是,对于A公司来说,不需要大型的数据库系统。

只需要一个操作方便,功能实用,能满足本中心对数据的管理及需求的系统。

我们的目标就是在于开发一个功能实用、操作方便,简单明了的人事管理系统。

2.2.2实现功能能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面的工作,基本满足人事日常业务的需要。

2.2.3预期成果所做出的人事管理系统能让A公司管理层在操作简单的前提下并有效的提高对该公司的人事管理,并通过该系统提高员工的能力。

尽量使本系统做到是一个科学化、信息化、简单使用的人事管理系统。

3.系统分析3.1系统调研正式开发管理信息系统之前进行调研是非常必要的,必要对现行系统进行详细的调查,明确用户需求,保证开发的新系统的功能与用户的要求相吻合,避免耗费大量的人力、物力、财力,新系统的开发却失败的悲剧发生。

3.2可行性分析概述可行性分析是在A公司的要求和系统调研的基础上进行的,对新系统的开发从社会、技术、经济、管理等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。

软件工程课程设计-人事管理系统

软件工程课程设计-人事管理系统

目录一、系统概述 (2)二、需求分析 (2)三、建立系统用例模型 (3)四、建立系统动态模型 (4)五、系统类模型 (7)六、数据库概念模型设计 (9)七、可行性研究 (11)八、详细设计 (12)九、总结 (39)十、参考文献 (39)一、系统概述随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。

对于大中型企业来说,利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件;计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

不同的企业具有不同的人事管理制度,这就决定了不同的企业需要不同的人事管理系统。

二、需求分析需求分析是介于系统分析阶段和软件设计阶段之间的重要桥梁。

一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现测试直至维护的主要基础。

良好的分析活动有助于避免或尽早发现早期的错误,从而提高软件生产率,降低开发成本,改进软件质量.该系统分为4个模块:用户管理模块、人事信息管理模块、员工调动管理模块和薪酬管理模块。

用户登管理模块:该模块是对登陆该系统的用户的用户名及密码进行管理。

分为用户登录和注册新用户两项。

不同的用户拥有不同的权限。

人事信息管理模块:该模块是关于公司的人事信息维护,首先是对入职员工的基本信息的录入、修改、浏览等操作;其次是员工人事档案、合同档案等基本信息的管理和公司的部门管理;最后,并对公司的人事信息从工种,专业,学历等属性进行统计分析。

员工调动管理模块:该模块是对员工的职位调动进行管理的,员工调动主要分为内部调动和外部调动两方面,内部调动为本城市中部门间的调动,外部调动为分公司间的调动。

软件工程概论课程设计人事管理系统

软件工程概论课程设计人事管理系统

软件学院课程设计报告书课程名称软件工程导论设计题目企业人事档案管理系统专业班级学号姓名指导教师20xx年月目录1 设计时间 (3)2 设计目的 (3)3设计任务 (3)4 设计内容 (3)4.1设计内容概述 (3)4.1.1组织机构概述 (4)4.1.2现业务流程介绍与分析 (4)4.1.3新业务流程介绍与分析 (5)4.2.需求分析 (7)4.2.1总体目标 (8)4.2.2具体目标 (8)4.2.3系统数据建模 (9)4.2.4系统功能建模 (10)4.2.5数据字典 (12)4.3总体设计 (14)4.3.1总体设计HIPO技术 (14)4.3.2代码设计 (16)4.3.3数据库设计 (17)4.4详细设计 (20)4.4.1系统管理模块详细设计 (20)4.4.2培训管理模块详细设计 (21)4.4.3档案管理模块详细设计 (22)4.4.4绩效出勤管理模块详细设计 (23)4.4.5工资管理模块详细设计 (24)5总结与展望 (26)参考文献 (27)成绩评定.............................................................................................................. 错误!未定义书签。

1 设计时间20xx2 设计目的本次课程设计的目的是运用软件工程的思想,严格按照软件生命周期各阶段的目的和任务,完成对系统的分析和设计。

同时将软件工程中规范的软件开发方法应用到企业人事管理系统的分析与设计过程中。

3设计任务根据软件工程的开发过程,对人事管理系统进行分析与设计4 设计内容4.1设计内容概述为了适应现代社会人们高度强烈的时间观念,人事管理系统软件为机关,团体,事业单位,企业,公司等的人事管理带来了极大的方便,能够为用户提供可靠的信息储存和快捷的查询手段。

以往人们使用传统人工的方式管理人事档案,这种管理方式存在着许多缺点。

软件工程课程设计-人事管理系统

软件工程课程设计-人事管理系统

目录一、系统概述 (2)二、需求分析 (2)三、建立系统用例模型 (4)四、建立系统动态模型 (5)五、系统类模型 (8)六、数据库概念模型设计 (10)七、可行性研究 (12)八、详细设计 (13)九、总结 (57)十、参考文献 (57)一、系统概述随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。

对于大中型企业来说,利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件;计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

不同的企业具有不同的人事管理制度,这就决定了不同的企业需要不同的人事管理系统。

二、需求分析需求分析是介于系统分析阶段和软件设计阶段之间的重要桥梁。

一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现测试直至维护的主要基础。

良好的分析活动有助于避免或尽早发现早期的错误,从而提高软件生产率,降低开发成本,改进软件质量。

该系统分为4个模块:用户管理模块、人事信息管理模块、员工调动管理模块和薪酬管理模块。

用户登管理模块:该模块是对登陆该系统的用户的用户名及密码进行管理。

分为用户登录和注册新用户两项。

不同的用户拥有不同的权限。

人事信息管理模块:该模块是关于公司的人事信息维护,首先是对入职员工的基本信息的录入、修改、浏览等操作;其次是员工人事档案、合同档案等基本信息的管理和公司的部门管理;最后,并对公司的人事信息从工种,专业,学历等属性进行统计分析。

员工调动管理模块:该模块是对员工的职位调动进行管理的,员工调动主要分为内部调动和外部调动两方面,内部调动为本城市中部门间的调动,外部调动为分公司间的调动。

软件工程课程设计-人事管理系统(doc 47页)

软件工程课程设计-人事管理系统(doc 47页)
1.作为软件系统开发技术协议的参考依据,为双方提供参考。
2.根据人事管理系统的特点,对被开发软件系统的主要功能、性能进行完整描述,为软件开发者进行详细设计和编程提供基础。
3.为软件提供测试和验收的依据,即为选取测试用例和进行验收的依据。
1.2项目背景
人事管理软件(workforcemanagementapplications)将成为商务软件市场中最热销的软件。国际数据公司(IDC)预测,其全球市场总额将以复合年增长率(CAGR)39%的速度增长到2003年达到40亿美元。同时,全部商务软件市场总额的复合年增长率为15%。其中人事管理软件占全部商务软件总额的比率,将从1999年的1.8%上升到2003年的3.4%。随着计算机技术、网络技术和信息技术的发展,现在办公系统更趋于系统化、科学化和网络化。网络办公自动化系统是计算机技术和网络迅速发展的一个办公应用解决方案,它的主要目的是实现信息交流和信息共性,提供协同工作的手段,提高办公的效率,让人们从繁琐的有纸办公中解脱出来。现在许多的机关单位的人事管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多的人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
软件工程课程级:计算机科学与技术
学生姓名:
指导教师:
摘 要I
第1章 绪论1
1.1 课题背景1
1.2课题的目的和意义1
第2章 管理信息系统概述2
2.1信息系统的发展历程2
2.2 管理信息系统概述3
第3章 企业人事系统概述4
3.1 开发工具的选择4
3.2开发思想5
7.2 数据库概念结构设计15
第8章 系统测试19
8.1测试举例19
8.2测试项目20

人事管理系统Java课程设计报告

人事管理系统Java课程设计报告

人事管理系统Java课程设计报告第一篇:人事管理系统Java课程设计报告湖南科技大学计算机科学与工程学院数据库课程设计报告题目:人事管理管理系统学号:1005030221 姓名:艾向兵指导教师:张黎完成时间:2012年1月4日组员:苏勇,成佳裕,艾向兵企业人事管理系统主要用于员工个人资料的录入,职务变动的记录和管理。

使用人事管理系统,便于公司领导掌握人员的动向,及时调整人才的分配 1.1系统功能需求分析人事管理系统主要有以下几项功能要求:.新员工资料的输入。

.自动分配员工编号,并且设置初始的用户密码:.人事变动的记载,包括岗位和部门的调整。

.员工信息的查询和修改,包括员工个人信息和密码 1.2 系统功能模块设计根据系统功能要求,可以将系统分解成几个模块来分别设计应用程序界面,如图,人事资源管理包括:新员工档案输入,人事变更,员工档案查询1.3 与其它系统的关系本关系是公司管理信息系统的基础部分,为其他子系统,如考勤管理系统,工资管理系统和员工培训系统,提供员工的基本信息。

同时为其他系统提供了员工登录的密码认证和权限分配。

1.4数据库设计数据库需求分析:员工信息:员工号,密码,权限,姓名,性别,生日,专业,通讯地址,电话,Email,当前状态,其他。

人事变动:记录号,员工,变动,详细描述部门设置:部门编号,名称员工变动代号表员工信息表员工职位代码表管理员登陆界面信息查询,修改,删除主界面查询单个员工的界面总结这次的课程设计,是在学习了Java以后通过阅读课本及在图书馆借阅相关书籍同严景、孟珍三人共同完成的。

在开发这个系统的过程中,碰到很多或大或小的问题,我们一起思考,一起努力,最后大部分都解决了,得到了现在的这个简单的人事管理系统。

在编制过程中,我们首先考虑到了界面的友好性,并在界面设计时不采用烦琐的细节,使界面简单、清晰,便于操作。

一开始我们是想做个登录界面,实现用户的登录权限管理,但试了几次都没有达到预期的效果,最后不得不放弃。

人事管理系统(工资管理子系统)软件工程课程设计报告

人事管理系统(工资管理子系统)软件工程课程设计报告

课程设计报告学生姓名:学号:学院:经济管理学院班级:题目: 人事管理系统工资管理子系统指导教师:职称:20 年月日1.选题背景 (3)2.工资管理子系统需求分析 (3)2.1工资管理子系统需求陈述 (3)2.2需求分析 (4)2.2.1功能需求 (4)2.2.2性能需求 (4)2.3系统需求建模 (5)2.3.1确定参与者 (6)2.3.2确定用例 (6)2.3.3系统用例建模 (6)2.3.4用例描述 (7)3.工资管理系统系统分析 (8)3.1系统用例建模 (9)3.2静态结构模型 (16)3.2.1类的识别 (16)3.2.2类的关联分析 (17)3.3.3类的属性描述 (18)3.3.4类的构建 (19)3.3系统动态模型 (19)3.3.1系统执行顺序分析 (19)3.3.2系统协作分析 (21)3.3.3系统状态分析 (22)3.3.4系统活动分析 (22)4.工资管理系统系统设计与实现 (24)4.1UML体系结构设计 (24)4.1.1硬件体系结构设计 (24)4.1.2软件体系结构设计 (25)4.2对象模型设计 (25)4.3系统实现 (25)4.3.1组件分析 (26)4.3.2配置分析 (28)5.课程设计心得体会 (28)参考文献 (29)1.选题背景随着社会的进步和计算机技术的发展,特别是微型计算机的大范围普及,现在应用在大中型企业的信息管理系统中,几乎都包括了工资管理模块。

有些环境中是有大型ERP软件中的一个模块引进的,有些作为企业的财务系统的一部分。

计算机处理的数据量不断增加。

文件管理系统采用的一次最多存取一个记录的访问方式,以及在不同文件之间缺乏相互联系的结构,越来越不能适应管理大量数据的需要,于是数据库管理系统便应运而生。

有了数据库我们便能方便快捷的对数据进行读取、存取,并维护数据库的数据。

但,西方管理制度设计的工资管理软件,在很多时候还不能完成解决中国特色中小企业的问题,本文介绍的毕业设计的研究工作就是要为这些具有中国特色的中小企业解决他们在工资管理方面的问题。

人事管理系统_软件工程实验报告

人事管理系统_软件工程实验报告

软件工程实验报告课题:人事管理系统学生姓名:______________________ 学号:_________________________ 专业班级:____________________ 指导教师:_____________同组成员:—需求分析一、实验目的掌握软件需求的结构化分析方法。

二、实验任务与实验要求导出系统详细的逻辑模型.这里用数据流图来表示。

三、实验内容(1)功能分析经过初步分析“人事管理系统”应该具备以下主要功能。

1、职员个人信息资料的增加、修改和删除;2、职员的考勤录入和查询;3、职员工资结算和查询;4、人事管理人员的变化和操作授权;由于是使用计算机管理•就带来了新的功能:用户登陆、操作人员的管理、基本数据的维护、由数据安全产生的数据备份与恢复。

(2)、关系模式在满足函数依赖和无损连接的基础上.使数据的设计更加合理。

在本系统中只有3个实体.那就是普通员工、管理员、超级管理员.他们权限的不听通过角色来区分。

在整个系统中超级管理员只有一人.管理员二人。

一个人只可以在普通员工、管理员、超级管理员中处于一个角色.而不可以兼任。

其具体的关系模式如下:普通员工(员工号.密码•姓名•性别•出生年月•身份证号•联系电话•就职时间)管理员(管理员号.密码.姓名.性别.出生年月.身份证号.联系电话.就职时间)超级管理员(超级管理员—.密码.姓名.性别.出生年月.身份证号.联系电话.就职时间)工资(员工号.时间.基本工资.提成.奖金)考勤(员工号.时间.迟到•早退•管理员号)注意:“ ”表示主码.“”表示既是主码又是外码E-R图如下所示图1-2 E-R图之普通员工数据字典设计:为了方便数据库的管理和维护•本系统只设计一个数据库workers.mdb.其中包含worker (员工信息表)、manager(考勤信息表)、booklist (工资信息表)1-2 mon it1-3 workmo ney图1-5顶层数据流图(3) 建立数据流图普通职员人事管理系统员工号密码 管理员查询结果 管理员查询条件4 --------------------报表管理员相关部门超级管理员员工号密码员工号和密码不匹配图1-6 0层数据流图图1-7 1层数据流图一对“数据维护”的细化图1-9 1层数据流图一对“员工信息更新”的细化(4)建立状态图 人事管理系统的状态图•如图1-10所示无权限查询条件 *查询结果 角色> 4.1考勤信*息查询查看员工考勤信息文件查询条件 *查询结果 角色无权限查看无权限------------4.4生成打印报表员工信息文件查询条件 *查询结果 角色4 4.3工资信 * 息查询查看员工工资信息文件图1-8 1层数据流图一对“信息查询”的细化-4.2员工信息查询图1-10状态图四、心得体会在本次实验中•让我了解了需求分析这一阶段需要做那些事情•从现实生活中的具体事物中抽象出系统模型•在数据流程图中尽量使用词义准确的词。

人事管理系统软件工程实验报告

人事管理系统软件工程实验报告

人事管理系统软件工程实验报告摘要:本实验旨在设计和开发一款人事管理系统软件,通过该软件实现对员工信息、薪资、考勤等内容的管理和查询功能。

通过软件工程的开发流程,包括需求分析、系统设计、编码、测试等环节,实现了一个完整的人事管理系统软件。

关键词:人事管理系统、软件工程、需求分析、系统设计、编码、测试一、引言人事管理是企业管理的重要组成部分,通过人事管理系统软件的设计和开发,可以提高企业管理效率和员工工作满意度。

本实验旨在通过软件工程的开发流程,设计和开发一款人事管理系统软件,并进行测试和评估。

二、需求分析在需求分析阶段,我们通过调研企业的人事管理需求,确定了软件的功能需求和性能需求。

其中,功能需求主要包括员工信息的录入、修改和查询、薪资管理、考勤管理等功能;性能需求主要包括系统响应时间、用户界面友好程度等。

三、系统设计在系统设计阶段,我们根据需求分析的结果,设计了人事管理系统的结构和各个模块的功能。

系统结构包括前端界面、业务逻辑处理和数据库三个部分,各个模块之间通过接口进行数据传递和交互。

四、编码在编码阶段,我们使用Java语言进行程序的编写,并使用MySQL数据库存储数据。

根据系统设计的结果,逐个实现各个模块的功能,并进行综合测试和调试。

五、测试与评估在测试阶段,我们进行了单元测试、集成测试和系统测试,以确保软件的功能正常并满足需求。

同时,我们对软件进行了性能测试和用户体验评估,收集用户的反馈意见和建议,优化系统的性能和用户界面。

六、总结通过本实验,我们成功设计和开发了一款人事管理系统软件,并进行测试和评估。

通过软件工程的开发流程,我们了解了从需求分析到系统设计、编码、测试等各个环节的重要性和相互关系。

同时,我们也收集到了用户的反馈意见和建议,为今后的系统优化提供了参考。

在今后的工作中,我们将进一步改进人事管理系统软件,提高其稳定性和用户体验,为企业的人事管理提供更好的支持。

实验总结本实验通过软件工程的开发流程,设计和开发了一款人事管理系统软件。

软件综合课程设计—人事管理系统

软件综合课程设计—人事管理系统

软件综合课程设计—人事管理系统一、引言现代社会中,人事管理系统已经成为了企业管理不可或缺的一部分。

为了使学生更好地学习软件开发知识,并实现对实际场景的应用,本文将介绍一种软件综合课程设计——人事管理系统。

本文将详细阐述人事管理系统的设计思路、功能模块和实现方法,以供学生学习和实践使用。

二、系统简介人事管理系统是一款针对企业员工的人力资源管理软件,它能方便地管理企业员工的基本信息、工作信息、绩效信息等内容。

本系统利用多种技术和软件设计原理,实现了对企业员工信息的高效管理。

三、系统设计(1)需求分析阶段在需求分析阶段,我们主要是通过和企业员工的交流了解他们在人事管理方面的需求,然后把需求分析成为系统的功能模块。

此外,还需要了解企业的流程和人力资源管理方面的法规政策。

(2)概念设计阶段在概念设计阶段,我们需要进行系统的整体设计和功能模块划分。

根据需求分析的结果,我们将系统设计为员工信息管理、绩效管理和考勤管理三大功能模块。

其中,员工信息管理模块主要负责员工的基本信息和工作信息的管理,绩效管理模块主要负责员工的绩效管理和考勤管理模块负责员工的考勤情况管理。

(3)详细设计阶段在详细设计阶段,我们将会对每一功能模块进行详细的设计和实现。

员工信息模块主要包含员工基本信息、员工职称、员工联系方式、员工证件信息等模块;绩效管理模块主要包括考评、审批、修正等模块;考勤管理模块主要包含打卡、请假、加班等模块。

在这个阶段,我们需要确定数据表和数据结构,并实现逻辑和算法等。

(4)测试阶段在测试阶段,我们需要对系统进行测试和评估,以验证每一个模块的正确实现和性能表现。

此时要重点测试员工信息的录入、修改、查询等不同操作的正确性,绩效管理的及时性和灵活性,考勤管理的有效性和科学性等方面。

四、系统功能模块(1)员工信息管理模块员工信息管理模块是人事管理系统的核心功能,主要用于员工的基本信息、工作信息等详细信息的管理。

通过该模块可以方便地查询员工的个人信息,如身份证号、联系方式、工资等,并进行员工信息的修改和删除。

软件工程课程设计人事管理系统

软件工程课程设计人事管理系统

软件工程课程设计人事管理系统1. 介绍本文档描述了人事管理系统的软件工程课程设计。

人事管理系统旨在帮助组织管理其员工的信息和相关过程,包括招聘、培训、薪资管理等。

该系统将采用软件工程的最佳实践,并使用现代的技术和工具进行开发。

本文档将详细介绍系统的需求、功能和架构,以及开发过程中的重要决策。

2. 需求分析2.1 功能需求人事管理系统将具备以下主要功能:1.员工信息管理:系统将允许管理员录入、修改和删除员工的基本信息,包括姓名、联系方式、职位等。

2.招聘管理:系统将提供招聘流程的管理功能,包括发布职位、筛选应聘者、安排面试等。

3.培训管理:系统将支持培训计划的制定和执行,包括员工培训记录的管理和课程的安排。

4.薪资管理:系统将负责计算和管理员工的薪资信息,包括工资、奖金、福利等。

5.绩效评估:系统将提供员工绩效评估功能,包括设定评估指标、填写评估表等。

6.权限管理:系统将根据用户角色设定不同的权限,保证只有授权人员能够操作特定功能。

2.2 非功能需求除了上述功能需求,人事管理系统还需要满足以下非功能需求:1.可扩展性:系统应能够方便地扩展新的功能模块,以满足组织的未来需求。

2.可靠性:系统应具备高可靠性,能够处理大量数据,并保证系统的稳定运行。

3.安全性:系统应具备良好的安全性,保护员工的个人信息和公司的机密数据。

4.用户友好性:系统应具备良好的用户界面设计,使得用户能够方便地使用系统,提高工作效率。

3. 架构设计人事管理系统将采用三层架构,包括表示层、业务逻辑层和数据访问层。

3.1 表示层表示层将负责与用户进行交互,展示页面和接收用户输入。

系统将使用Web 技术来实现用户界面,并采用响应式设计以适应不同设备的显示。

前端框架将采用Vue.js和Bootstrap来提高开发效率和用户体验。

3.2 业务逻辑层业务逻辑层将处理用户的请求并进行业务处理。

它将负责实现系统的各项功能和逻辑,如员工信息管理、招聘管理、薪资管理等。

C语言课程设计报告—人事管理系统1

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();}。

软件工程课程设计-人事管理系统

软件工程课程设计-人事管理系统

软件工程课程设计人事管理系统学院(系):理学院专业班级:计算机科学与技术学生姓名:指导教师:目录摘要I第1章绪论 11.1 课题背景 11.2课题的目的和意义 1第2章管理信息系统概述 22.1信息系统的发展历程 22.2 管理信息系统概述 3第3章企业人事系统概述 43.1 开发工具的选择 43.2开发思想 53.3运行环境 5第4章系统的可行性分析74.1 系统调研74.2 可行性分析概述74.3 技术可行性分析8第5章人事管理系统分析105.1 系统需求分析105.2 数据流程图10第6章系统总体设计126.1 系统功能分析126.2 系统功能模块设计12第7章系统详细设计147.1 数据库需求分析147.2 数据库概念结构设计15第8章系统测试198.1测试举例198.2测试项目208.3测试方法21结论22参考文献23附录1 24引言1.1编写目的人事管理的对象是一个单位或若干单位中员工的基本信息,这些信息是在变化的。

人事部门要为本单位、上级部门提供准确的统计数据。

由于人员众多、数据源复杂、统计管理工作繁琐。

传统的人事管理方式如效率低,保密性差,查找、更新、维护困难等各种各样的缺点。

1.作为软件系统开发技术协议的参考依据,为双方提供参考。

2.根据人事管理系统的特点,对被开发软件系统的主要功能、性能进行完整描述,为软件开发者进行详细设计和编程提供基础。

3.为软件提供测试和验收的依据,即为选取测试用例和进行验收的依据。

1.2项目背景人事管理软件(workforcemanagementapplications)将成为商务软件市场中最热销的软件。

国际数据公司(IDC)预测,其全球市场总额将以复合年增长率(CAGR)39%的速度增长到2003年达到40亿美元。

同时,全部商务软件市场总额的复合年增长率为15%。

其中人事管理软件占全部商务软件总额的比率,将从1999年的1.8%上升到2003年的3.4%。

软件工程课程设计—人事管理系统

软件工程课程设计—人事管理系统

软件工程课程设计—人事管理系统软件工程课程设计—人事管理系统1. 项目简介人事管理系统是一款针对企业人事管理业务的软件系统。

本系统适合于中小型企业的人事管理需求,可以帮助企业实现对员工管理的智能化,方便了办公室对员工人事信息的统计归档,极大地提高了人事部门的工作效率。

2.项目目标本项目旨在设计一款能够适应中小企业人事管理的软件系统,实现以下目标:(1)以人事部门的工作流程为基础,实现人事信息的整理、管理和查询功能;(2)能够对员工的个人信息进行管理,并能在需要时生成相关的报表;(3)能够根据企业需求对权限进行分配,保护重要信息的安全性;(4)实现实时更新功能,确保数据的及时更新。

3.项目需求(1)用户管理方面,人事管理系统应具备对用户账户的管理功能,设立不同的账户权限,实现对系统数据安全保护。

(2)员工管理方面,人事管理系统应具备对员工基本信息的管理和查询功能,包括员工姓名、性别、联系方式、入职时间、职位信息和相关证件上传等操作。

(3)薪酬管理方面,人事管理系统应能够对员工薪酬信息进行管理和查询,包括底薪、津贴和奖金等。

(4)出勤管理方面,人事管理系统应具备对员工考勤信息的管理和查询功能,包括考勤记录、统计和员工休假等信息。

(5)离职管理方面,人事管理系统应具备对员工离职信息的管理和查询功能,包括员工离职原因、薪资结算和相关证明的上传等信息。

(6)报表生成方面,人事管理系统应能够生成员工信息、薪酬、出勤以及离职等相关报表。

4.技术选型为了满足项目需求,本项目采用以下技术:(1)前端技术:HTML、CSS、JavaScript(2)后端技术:Java、Spring、Mybatis、MySQL(3)开发工具:Eclipse、Maven、Git、SourceTree(4)UI框架:Bootstrap5.功能结构(1)登录注册:用户需先注册账号,之后才有权限进行登录操作。

(2)基本信息管理:对员工基本信息进行管理和查询,包括员工姓名、性别、联系方式、入职时间、职位信息和相关证件上传等操作。

软件工程课程设计人事管理系统

软件工程课程设计人事管理系统

软件工程课程设计人事管理系统人事管理系统是一种非常常见和有用的管理工具,可以帮助企业高效和便捷地管理人事信息。

在现代企业中,人力资源管理已经成为非常重要和必不可少的一个环节,而人事管理系统则是人力资源管理的重要工具之一。

在软件工程课程中,设计一个人事管理系统是非常具有挑战性和实践意义的任务,下面我们将对这一课程设计进行详细讲解。

一、设计目标和需求人事管理系统的设计目标主要是以高效和便捷的方式管理和维护企业的人事信息,主要实现以下功能:1.员工信息管理:包括员工基本信息、工作经历、教育经历、家庭信息、联系方式、工作状态等。

2.薪资管理:包括薪资结构、工资条生成、工资报表统计等。

3.考勤管理:包括每日考勤、请假、加班等。

4.绩效管理:包括绩效考核、绩效评估、奖惩等。

5.招聘管理:包括职位发布、简历筛选、面试安排、录用等。

6.培训管理:包括培训需求分析、培训计划制定、培训实施、培训效果评估等。

7.报表统计:包括员工信息报表、薪资报表、考勤报表、绩效报表等。

8.权限管理:包括用户登录、权限分配、数据安全等。

基于以上需求,我们可以初步确定人事管理系统的架构框架和功能模块。

二、系统架构和功能模块在设计人事管理系统时,首先需要确定系统的统一架构和模块划分,从而保证系统的整体性和协调性。

一个完整的人事管理系统应包含以下模块:1.员工信息管理模块:包括员工基本信息、工作经历、教育经历、家庭信息、联系方式、工作状态等。

2.薪资管理模块:包括薪资结构、工资条生成、工资报表统计等。

3.考勤管理模块:包括每日考勤、请假、加班等。

4.绩效管理模块:包括绩效考核、绩效评估、奖惩等。

5.招聘管理模块:包括职位发布、简历筛选、面试安排、录用等。

6.培训管理模块:包括培训需求分析、培训计划制定、培训实施、培训效果评估等。

7.报表统计模块:包括员工信息报表、薪资报表、考勤报表、绩效报表等。

8.权限管理模块:包括用户登录、权限分配、数据安全等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程课程设计报告人事管理系统Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】软件工程课程设计题目人事管理系统系计算机系专业班级软件工程(动画方向)(2)班学生姓名贾秋洪学号指导教师姜青山2010 年 6 月 18 日1.课程题目人事管理系统设计2.概述本课题的来源A公司是一家以寿险营销为目的的寿险公司,公司员工众多业务流量大,为了方便管理,我制作了一个人事管理系统。

主要通过员工基本信息录入、修改、查询、删除以及员工考勤等方面来对员工综合考评。

以便对员工发放工资进行合理分配。

这样能提高领导的人事管理水平还能提高员工的积极性。

通过现代计算机技术与企业管理相结合,实现人事管理系统的科学化、信息化、现代化,并且适合一般人群使用。

企业人事管理是相对企业内部员工的管理。

集人员、考勤、工资、员工培训、系统功能等于一体的大型管理系统,为公司在人事管理等方面提供极大的方便。

本软件是以中小型企业为背景而设计开发的,界面美观、使用方便。

本系统主要以人员管理、考勤管理、统计分析管理、工资核算等,是企业人事管理必不可缺的好帮手。

本课题目的、实现功能与预期成果目前市面上流行的人事管理系统不少。

但是,对于A公司来说,不需要大型的数据库系统。

只需要一个操作方便,功能实用,能满足本中心对数据的管理及需求的系统。

我们的目标就是在于开发一个功能实用、操作方便,简单明了的人事管理系统。

能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面的工作,基本满足人事日常业务的需要。

所做出的人事管理系统能让A公司管理层在操作简单的前提下并有效的提高对该公司的人事管理,并通过该系统提高员工的能力。

尽量使本系统做到是一个科学化、信息化、简单使用的人事管理系统。

3.系统分析系统调研正式开发管理信息系统之前进行调研是非常必要的,必要对现行系统进行详细的调查,明确用户需求,保证开发的新系统的功能与用户的要求相吻合,避免耗费大量的人力、物力、财力,新系统的开发却失败的悲剧发生。

可行性分析概述可行性分析是在A公司的要求和系统调研的基础上进行的,对新系统的开发从社会、技术、经济、管理等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。

可行性分析一般可定义为:可行性分析是在建设的前期对工程项目的一种考察和鉴定,对拟议中的项目进行全面与综合的技术、经济能力的调查,判断它是否可行。

可行性分析阶段的主要工作包括以下几个方面:(1)新系统目标可行性分析:分析新系统的目标是否符合企业的现状和发展的需要。

很明显这个人事管理系统是符合A公司的现状和发展需要的,如果公司采用人事管理系统来管理公司人员,那么它在工作效率上会有很大的提高。

(2)社会可行性分析:社会可行性分析主要是指管理信息系统的开发是否符合国家法律、政策,是否能够与社会大系统实现良好的对接。

这个人事管理系统是个小规模的管理系统,是用来管理一个公司的员工信息的,它符合国家法律要求,能与社会大系统实现良好对接。

(3)技术可行性分析:技术可行性分析是根据新系统的目标来衡量是否具备所需要的技术,包括系统开发人员数量和水平,硬件方面,软件方面及其它应用技术。

(4)经济可行性分析:经济可行性分析主要是对开发新系统所投入的资金与系统投入使用后所带来的经济效益进行比较,确认新系统是否会给企业带来一定的经济效益。

由于本系统规模较小,所以开发本系统不会耗费太多的资金,相反如果将本系统很好的运用到工作中,能大大提高工作效率,给公司带来更多的经济效益。

(5)管理可行性分析:管理可行性分析主要是分析企业现行的管理体制和企业领导是否具有现代化的管理意识和管理水平。

系统需求分析通过对现行系统的详细调研,主要是从系统的角度理解用户的需要,确定新系统的综合要求,并提出这些需求的实现条件以及需求应达到的标准,也就是确定新系统要做什么,做到什么程度。

这些需求包括:(1)功能需求。

确定新系统应做什么,这是最主要的需求。

该系统就是对A公司的人员信息进行录入、修改、删除、查找及表单输出。

(2)性能需求。

给出所开发的新系统的技术性能指标,包括存储容量限制、运行时间限制、安全保密性等。

(3)环境需求。

这是对系统运行以及所处环境的要求。

例如,在硬件方面采用什么机型、有什么硬件设备等(需要一台电脑、一台打印机);在软件方面,采用什么支持系统运行的系统软件(指操作系统window XP)。

(4)未来需求。

随着外界环境的变化以及系统的发展可能会提出的要求。

所以在开发过程中,我们会使系统的开发与未来社会的发展接轨,让系统能适应社会环境的变化,从而使其在未来的一段时间里都能使用。

系统性能要求分析(1)精度该系统的输入、输出数据精度的要求①员工姓名:不超过20个字符(允许英文名字存在),字符型②员工工资:大小为10个字符,字符型(2)时间特性要求①查询服务部分:用户通过电脑提交查询服务命令到返回结果不超过5秒钟②数据管理部分:提交某一数据录入到结果返回不超过5秒钟(3)灵活性操作方式:支持Windows XP系统,对于Windows Vista 、Win7系统暂时不支持。

接受到从另一个系统发来的违反协议格式的消息时能及时拒绝。

发现系统自己出现错误时能及时提出出错处理需求。

(4)该人事管理系统至少要达到以下四个方面的系统功能特点:①操作简单、界面友好:完全控件式的页面布局,使得员工信息的录入工作更简便;许多选项包括员工基本信息管理、员工考勤管理等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。

②功能完善:包括人事管理的各个方面:员工信息录入、浏览、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面,都能完整地实现该企业对人事管理的要求。

③即时可见:对员工基本信息的处理(包括录入、修改、删除等)将立即在主页的对应栏目显示出来,达到"即时发布、即时见效"的功能。

④方便移植:针对不同的企业,只需要稍作修改就可以开发出适合不同企业特点的人事管理系统。

运行环境规定(1)设备:①至少具有奔腾III800,128兆内存配置的计算机②Microsoft鼠标或其他兼容鼠标③最少500MB的硬盘空间④最少32MB的RAM存储器(2)支持软件:①操作系统:Microsoft Windows 98/2000/XP/2003②编译程序:Visual C++③执行程序:Visual C4.系统概要设计系统功能该信息管理系统可以在Windows XP平台上运行,开发工具主要采用VC++语言开发。

系统的主要功能如下:(1)员工基本信息管理功能员工基本信息的录入员工基本信息的修改员工基本信息的删除员工基本信息的查询及表单输出(2)员工考勤管理功能员工请假信息的录入员工请假信息的修改员工请假信息的删除员工请假信息的查询及表单输出(3)员工工资管理功能员工工资信息的录入员工工资信息的修改员工工资信息的删除员工工资信息的查询及表单输出功能模块图(图)图数据流图基本图形符号(图符号名称说明加工表示数据的处理过程数据流表示数据的流向数据存储文件表示存储数据的数据库或者数据表图1)第一层数据流图(图图系统接口设计(1)用户接口用户接口主要采用图形接口和命令接口方式,用户可以通过点击图形界面的按钮、菜单、对话框等图形接口元素对程序和数据进行操作和在输入框中输入命令的方式查询信息。

(2)外部接口在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。

在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。

外观上也要做到合理化,考虑到用户多对Windows 风格较熟悉,应尽量向这一方向靠拢。

(3)内部接口身份认证模块的返回值决定当前用户是否可以进入人事管理系统,身份通过以后再根据用户本身的权限判定进入哪一个功能模块,并且判断其相应的操作权限,这些采用返回值方式由用户本身的权限标志决定。

5.系统详细设计运行设计(1)运行控制运行控制将严格按照各模块间函数调用关系来实现。

在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。

(2)运行时间在软件的需求分析中,对运行时间的要求为必须对作出的操作有较快的反应。

硬件对运行时间有最大的影响,当设备负载量大时,对操作反应将受到很大的影响。

所以尽量采用高性能主机,充分发挥软件性能。

系统详细流程图(图)系统详细设计流程图(图)出错输出设计程序在运行时主要会出现两种错误:①由于输入信息,或无法满足要求时产生的错误,称为软错误。

②由于其他问题,如操作超时等,产生的问题,称为硬错误。

对于软错误,须在查询/维护模块判断输入数据的正确性,判断错误类型,再生成相应的错误提示语句,送到输出模块中。

对于硬错误,可在出错的相应模块中输出简单的出错语句,并将程序重置,返回操作之前的状态。

出错信息必须给出相应的出错原因,例:“输入数据越界”,“没有找到相关记录”等。

出错处理策略主机必须安装不间断电源以防止停电或电压不稳造成的数据丢失的损失。

在硬件方面要选择较可靠、稳定的服务器机种,保证系统运行时的可靠性。

6.总结人事管理系统是我学习计算机以来,做的第一个有实用功能的系统,做成后很有成就感,由于有过一次做课程设计的经验,因此,在筛选知识,编写文档等方面就有了一定的经验。

不过即使是这样,刚开始的时候遇到的主要问题还是不知道如何下手,不知道该如何编写一个有用的系统,后来去图书馆查阅了一些相关书籍,看了几个系统设计的具体事例,受益匪浅,从而也让我此次的课程设计有了一点头绪,通过几天的努力,我完成了这个人事系统管理设计。

本次课程设计结束后,我对使用VC++开发和设计程序有了更深入的了解。

在本案例中,主要实现了员工信息的录入、修改、删除、查询及输出表单四项功能,算是一个基本的人事管理系统。

当然,这个程序还有缺陷,如功能过于简单,形式过于单一等,不过,我会尽我最大的努力让它更加完善的,相信以后再遇到这样的课程设计,我会将它做的跟好一点的。

虽然系统还有很多需要改进和加强的地方,不过这次课程设计真的提高了我实践操作能力。

这次软件工程的课程设计,让我所学到的软件工程、VC++以及自己所不太了解的各种相关知识,进行了一次很好的综合提炼,使我对软件的开发与应用有了更深入的认识,这对我今后的工作和学习都是宝贵的经验积累。

7.参考资料1.肖丁,吴建林,周春燕,俢佳鹏《软件工程模型与方法》,北京邮电大学出版社,20082.软件工程课程设计案例教程,南京信息工程大学图书馆246。

相关文档
最新文档