基于c++的公司人员管理系统的设计与实现-计算机毕业设计源码34001

摘  要

随着信息技术的快速发展和企业规模的持续扩大,传统的手工管理方式已经无法满足现代企业对员工信息管理的需求。因此,开发一套高效、稳定且易于维护的公司人员管理系统成为了企业信息化的重要任务之一。C++作为一种成熟、高效的编程语言,以其强大的面向对象特性和广泛的应用领域,成为了开发此类系统的理想选择。

本文旨在探讨基于C++的公司人员管理系统的设计与实现过程。通过对公司人员管理的实际需求进行深入分析,我们设计了一个功能完善、操作简便的系统框架。该系统能够实现对员工基本信息的录入、查询、修改和删除等操作。

在开发过程中,我们采用了面向对象的设计方法,将系统划分为多个独立的模块,以提高系统的可维护性和可扩展性。同时,我们还特别注重系统的安全性和数据完整性,通过引入权限管理和数据校验机制,确保数据的准确性和系统的稳定运行。

本文将对系统的整体架构、关键技术的实现以及实际应用效果进行详细介绍,以期为类似系统的开发提供参考和借鉴。

关键词:公司人员管理系统;C++编程语言;整体架构

ABSTRACT

With the rapid development of information technology and the continuous expansion of enterprise scale, traditional manual management methods can no longer meet the needs of modern enterprises for employee information management. Therefore, developing an efficient, stable, and easy to maintain company personnel management system has become one of the important tasks of enterprise informatization. C++, as a mature and efficient programming language, has become an ideal choice for developing such systems due to its powerful object-oriented features and wide application areas.

This article aims to explore the design and implementation process of a company personnel management system based on C++. Through in-depth analysis of the actual needs of personnel management in the company, we have designed a fully functional and easy-to-use system framework. This system can perform operations such as entering, querying, modifying, and deleting basic employee information.

During the development process, we adopted an object-oriented design approach, dividing the system into multiple independent modules to improve its maintainability and scalability. At the same time, we also pay special attention to the security and data integrity of the system. By introducing permission management and data verification mechanisms, we ensure the accuracy of data and the stable operation of the system.

This article will provide a detailed introduction to the overall architecture, implementation of key technologies, and practical application effects of the system, in order to provide reference and inspiration for the development of similar systems.

Key words:Company personnel management system; C++programming language; Overall architecture


 录

第1章 绪论

1.1研究背景和意义

1.2国内外研究现状

1.3开发工具介绍

1.3.1 C++ 语言

1.3.2 .NET技术框架

1.3.3 B/S架构

1.3.4 SQL Server数据库

第2章 需求分析

2.1系统概述

2.2可行性分析

2.2.1技术可行性

2.2.2经济可行性

2.2.3操作可行性

2.3系统功能需求

2.3.1功能需求分析

2.4系统性能需求

2.5开发环境

第3章 总体设计

3.1系统总体架构设计

3.2功能模块设计

3.2.1整体功能模块设计

3.2.2部门信息管理模块设计

3.2.3 岗位信息管理模块设计

3.2.4员工信息管理模块设计

3.2.5工资信息管理模块设计

3.3数据库设计

3.3.1概念结构设计

3.3.2逻辑结构设计

第4章 详细设计及实现

4.1员工用户功能模块

4.1.1 用户登录界面

4.1.2通知公告管理界面

4.1.3工资信息管理界面

4.1.4考勤打卡管理界面

4.2管理员功能模块

4.2.1后台首页界面

4.2.2系统用户界面

4.2.3 通知公告管理界面

4.2.4部门信息管理界面

4.2.5岗位信息管理界面

4.2.6工资信息管理界面

第5章 系统测试

5.1系统测试的目的

5.2系统测试方法

5.3功能测试

结论

谢  辞

参考文献

  1.   绪论

1.1研究背景和意义

随着企业规模的扩大和市场竞争的加剧,企业对人员管理的需求也日益复杂和多样化。传统的手工管理方式不仅效率低下,而且容易出现数据错误和信息不一致等问题。因此,开发一套高效、稳定且易于维护的公司人员管理系统成为了企业提升管理水平和竞争力的关键。

C++作为一种功能强大的编程语言,具有高效性、灵活性和可扩展性等特点,非常适合用于开发企业级的管理系统。基于C++的公司人员管理系统不仅能够实现员工信息的快速录入、查询和修改,为企业决策者提供有力支持。

此外,随着信息技术的不断发展,企业对系统的安全性和数据完整性的要求也越来越高。基于C++的系统设计可以通过引入先进的加密技术和权限管理机制,确保员工信息的安全性和准确性,有效防止数据泄露和非法访问。

综上所述,基于C++的公司人员管理系统的设计与实现具有重要的研究背景和意义。它不仅能够满足企业对员工信息管理的实际需求,提升管理效率和数据安全性,还能为企业的可持续发展和信息化建设提供有力支撑。同时,该系统的开发和实现过程也有助于推动C++编程语言在企业级应用中的进一步发展和普及。

1.2国内外研究现状

国内研究现状:

在国内,随着企业信息化建设的不断推进,基于C++的公司人员管理系统得到了广泛的应用和研究。许多企业和研究机构都投入了大量的人力物力,致力于开发更加高效、稳定、安全的人员管理系统。例如,一些大型企业和软件开发公司都拥有自主研发的团队,不断推出符合企业实际需求的系统解决方案。同时,国内的高等院校和科研机构也在该领域进行了大量的研究和探索,为系统的进一步发展和优化提供了理论支持和技术保障。

国外研究现状:

在国外,尤其是在欧美等发达国家,基于C++的公司人员管理系统已经得到了广泛的应用和认可。许多知名的软件开发公司和企业都投入了大量的研发资源,致力于开发更加先进、高效、安全的管理系统。这些系统不仅功能强大、操作简便,而且注重用户体验和数据安全性。同时,国外的许多高校和研究机构也在该领域进行了深入的研究和探索,为系统的创新和发展提供了源源不断的动力。

总体而言,无论是国内还是国外,基于C++的公司人员管理系统的研究与应用都在不断发展和进步。随着信息技术的不断创新和企业需求的不断变化,未来该领域的研究将更加深入和广泛,为企业的信息化建设和人员管理提供更加全面、高效、安全的解决方案。

1.3开发工具介绍

1.3.1 C++ 语言

C++(c plus plus)是一种计算机高级程序设计语言,由C语言扩展升级而产生,最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。 C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。 C++几乎可以创建任何类型的程序:游戏、设备驱动程序、HPC、云、桌面、嵌入式和移动应用等。 甚至用于其他编程语言的库和编译器也使用C++编写。C++拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

1.3.2 .NET技术框架

.NET技术框架是一种现如今在软件系统开发中被大量使用的一种全新的软件系统架构。采用了模块化和组件的方式运行和开发,是现如今大多数软件系统开发人员所掌握的一种全新的软件系统开发技术框架。

.NET的最大特点就是在软件系统开发过程中可以实现对多种软件系统设计语言的支持,无论采用C语言还是C++语言、C#语言、J#语言对软件系统进行开发,在软件系统的运行和编译过程中都被同样的编译成一种通用的中间程序语言,不应影响软件系统的运行效率,是一种全新的多语言支持的先进开发框架。.NET软件系统框架不是简单的对ASP程序设计开发技术的升级,ASP程序开发技术不具备多种语言进行开发的特点,同时也没有一个整体的综合开发平台来对ASP进行良好的支持。

综上所述,.NET技术框架是一种非常优秀的软件系统开发框架,现如今已经大量使用的一种先进的开发框架。它可以提供对网络软件系统的开发的支持。开发本文的基于c++的公司人员管理系统我们就采用.NET框架来进行开发。

1.3.3 B/S架构

B/S这一结构模式和互联网的发展密不可分,它是对C/S的改进,因为以前的C/S结构需要在电脑上进行安装,比如我们最常使用的QQ、杀毒软件、办公软件等等,都是C/S结构开发的,但是随着互联网的发展,人们已经不满足于C/S这种结构,更想要一种能够实现信息数据共享的结构体系,鉴于人们需求的变化,诞生了B/S这一结构,改不了以往需要直接访问服务器的方式(即C/S模式),让用户通过浏览器就可以去实现访问服务器。这种体系结构不仅使得开发出的程序访问更为便捷,而且还减少了更新维护成本,提高交互性。

这个基于c++的公司人员管理系统就是采用B/S这一结构来开发的,让用户以及留个言只要能联网,通过浏览器就可以使用,使管理员以及用户在使用方面变得更加方便。

1.3.4 SQL Server数据库

SQL Server是一种开放源代码的关系型数据库管理系统(RDBMS),关系数据库将数据保存在不同的表中,提高了灵活性,它使用最常用的结构化查询语言(SQL)进行数据库管理。SQL Server因其具有速度快、体积小、总体拥有成本低和开放源码的优点而备受关注[7]。特点:

(1)支持多种操作系统。

(2)为多种编程语言提供了API。

(3)支持多线程,充分利用CPU资源。

(4)SQL Server性能卓越、服务稳定,很少出现异常宕机。

(5)原生JSON支持。

(6)优化SQL查询算法,有效地提高查询速度。

  1.   需求分析

2.1系统概述

通过对开发的基于c++的公司人员管理系统进行的可行性分析,可以明确系统是否可以值得开发,同时还可以帮助开发人员明确开发的方向和目标,以下是对本基于c++的公司人员管理系统进行的可行性调研分析。

2.2可行性分析

2.2.1技术可行性

技术可行性方面,基于C++的公司人员管理系统具有显著的优势。C++作为一种成熟、高效且广泛应用的编程语言,拥有强大的面向对象特性和丰富的标准库支持,为开发复杂的企业级管理系统提供了坚实的基础。此外,C++在性能优化、内存管理和系统级编程等方面具有显著优势,能够确保系统的高效运行和稳定性。现代软件开发工具和技术,如模块化设计、代码重用、自动化测试等,也为基于C++的公司人员管理系统的开发提供了有力的支持。因此,从技术角度来看,基于C++的公司人员管理系统是完全可行的,并有望为企业提供高效、稳定且易于维护的人员管理解决方案。

2.2.2经济可行性

经济可行性方面,基于C++的公司人员管理系统同样展现出明显的优势。C++作为一种开源且广泛应用的编程语言,其学习成本和开发成本相对较低,企业无需投入大量资金购买昂贵的开发工具和许可证。C++具有高效的性能和稳定性,能够确保系统的长期稳定运行,减少因系统崩溃或数据丢失带来的经济损失。基于C++的系统通常具有较好的可扩展性和可维护性,企业可以根据实际需求进行系统的定制和升级,而无需完全重新开发,从而节省了大量的开发成本和时间成本。综上所述,从经济角度来看,基于C++的公司人员管理系统具有显著的经济可行性,能够帮助企业实现成本节约和效益提升。

2.2.3操作可行性

操作可行性方面,基于C++的公司人员管理系统注重用户体验和易用性。系统界面设计简洁明了,操作流程直观易懂,用户无需专业的计算机知识即可快速上手。同时,系统提供了丰富的帮助文档和用户指南,方便用户随时查阅和解决问题。因此,从操作角度来看,基于C++的公司人员管理系统完全具备操作可行性,能够满足企业员工的日常操作需求,提高工作效率和便利性。

2.3系统功能需求

2.3.1功能需求分析

基于c++的公司人员管理系统的功能主要分为员工用户根据自己的需求进行登录,主要可以浏览通知公告管理、工资信息管理、考勤打卡管理等。系统管理员因职责的不同,主要对系统用户、通知公告管理、部门信息管理、岗位信息管理、员工信息管理、工资信息管理、考勤打卡管理进行处理。管理员拥有最高权限。

员工用户用例图如下所示。

图2-1 员工用户用例图

管理员用例图如下所示。

图2-2管理员用例图

2.4系统性能需求

基于C++的公司人员管理系统在设计和实现时,必须满足一系列系统性能需求,以确保系统的高效运行和用户的满意体验。

系统应具备高效的数据处理能力,能够快速完成大量数据的录入、查询、修改和删除等操作,同时保证数据的准确性和一致性。

系统还应具备稳定的运行性能,能够在高并发、大数据量的情况下保持稳定运行,避免出现系统崩溃或数据丢失等问题。

为了满足这些性能需求,在系统的设计和实现过程中,需要采用高效的算法和数据结构,优化系统的代码和数据库结构,提高系统的运行效率和稳定性。同时,还需要进行充分的性能测试和调优,确保系统在实际应用中能够满足企业的性能需求。

2.5开发环境

(1)开发工具:使用C++开发语言,采用Visual Studio等集成开发环境进行编码和调试。

(2)前端技术:HTML、CSS、JavaScript等前端技术,使用Bootstrap等框架和工具进行前端界面设计。

(3)后端技术:使用ASP.NET开发后端服务,利用其高性能和可扩展性实现系统的各项功能。

(4)数据库:使用SQL Server等数据库管理系统存储平台所需数据,确保数据的安全性和可靠性。

(5)团队协作:建立团队合作机制,明确分工和任务,确保项目的顺利进行和高效完成。

  1.   总体设计

3.1系统总体架构设计

MVC 是指 Model、View 和 Controller,翻译成中文分别是模型层、视图层和控制层。MVC 模式是一种设计模式,它强制性的把应用程序的输入、输出和处理全部分开,将其分为三个核心部分,这三个部分分别有不同的功能。

系统架构图如图3-1所示。

图3-1 系统架构图

视图层视图是指被用户所看到的并且能够与之进行交互的界面。视图可以向用户展示相关的数据,并接收用户输入的数据,但对用户数据不进行任何实际业务操作处理。

模型层通过控制层来处理视图层传递的数据,同一个模型可以给不同的视图提供数据,也可以被不同的视图重复使用。由于 Model 的主要内容是数据、方法和行为,其也是 MVC 中逻辑最为复杂,代码量最多的部分,其中包含了许多应用中需要用到的业务逻辑,因此模型层的开发也变得尤为重要,后期一般不会对模型层进行大规模改动,也是 MVC 中最稳定的部分。

控制层主要负责视图层和模型层之间的数据传输和处理请求操作。当用户通过视图发送数据和请求时,控制层可以接收请求和数据并决定调用哪些模型、通过模型的哪些操作来处理数据和请求,处理完成后,控制层再将数据返回给相应的视图。

3.2功能模块设计

3.2.1整体功能模块设计

根据对系统的功能进行分析可以总结基于c++的公司人员管理系统的具体功能模块包括下面的几个主要的功能模块:该系统主要从两大模块进行设计的,首先就是用户参与操作需要的模块,此外还需要有管理员用到的模块,两者之间不是互相独立的,他们之间有着密切的联系,同数据库表中的数据连接起来进行操作。每个模块访问相同的数据库,但访问的表不同。系统的各个功能模块是根据所收集的资料研究得到的。在以上分析功能的基础上,系统模块分为多个模块。

本系统的功能模块图如图3-2所示。

图3-2 整体功能模块设计

3.2.2部门信息管理模块设计

部门信息管理部门信息管理模块是基于C++的公司人员管理系统中不可或缺的一部分。该模块负责实现对公司内部各个部门的全面管理,包括部门的创建、信息的编辑、查询以及删除等功能。通过部门信息管理模块,企业可以方便地维护部门结构,确保员工与部门之间的关联准确无误,从而支持更高效的人员调配和组织管理。为企业的决策分析提供有力支持。如下图:

图3-3 部门信息管理模块结构图

3.2.3 岗位信息管理模块设计

岗位信息管理模块是公司人员管理系统中用于管理公司内部各个岗位的关键部分。这个模块允许用户创建、修改、查询和删除岗位信息。通过岗位信息管理模块,企业可以清晰地掌握每个岗位的设置情况,确保人员配置与岗位需求相匹配,从而优化人力资源配置,提高组织效率。具体的结构图如下:

图3-4    岗位信息管理模块结构图

3.2.4员工信息管理模块设计

员工信息管理模块是公司人员管理系统的核心部分,负责全面管理员工的个人信息和相关数据。该模块允许用户录入员工的基本信息,并提供便捷的查询和修改功能。此外,员工信息管理模块还能跟踪员工的岗位变动、薪资调整等动态信息,确保员工数据的实时更新和准确性。通过该模块,企业可以更加全面地了解员工情况,为人力资源管理提供有力支持,促进企业的稳定发展和员工的个人成长。其模块功能结构,具体的结构图如下:

图3-5   员工信息管理模块结构图

3.2.5工资信息管理模块设计

工资信息管理工资信息管理模块是公司人员管理系统中负责管理员工薪资信息的关键部分。该模块允许用户录入、查询、修改和删除员工的薪资数据,包括基本工资、津贴、奖金等各个组成部分。通过工资信息管理模块,企业可以确保薪资数据的准确性和及时性,实现薪资发放的自动化管理,提高薪资管理的效率和准确性。通过工资信息管理模块,企业可以更加便捷地管理薪资信息,优化人力资源管理流程,提升企业的整体运营效率。其模块功能结构,具体的结构图如下:

图3-6     工资信息管理模块结构图

3.3数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

3.3.1概念结构设计

在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称。下面是整个基于c++的公司人员管理系统中主要的数据库表总E-R实体关系图。

图3-7 数据库总体E-R图

3.3.2逻辑结构设计

在数据库表中我们会看到系统的表名、主键、外键等信息,我们通过数据库表的主键、外键把每个表关联起来,然后在界面中展示,本基于c++的公司人员管理系统的主要的数据库表如下:

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表attendance_clock_in (考勤打卡)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

attendance_clock_in_id

int

10

0

N

Y

考勤打卡ID

2

employee_users

int

10

0

Y

N

0

员工用户

3

department_name

varchar

64

0

Y

N

部门名称

4

job_title

varchar

64

0

Y

N

岗位名称

5

employee_name

varchar

64

0

Y

N

员工姓名

6

employee_id

varchar

64

0

Y

N

员工工号

7

check_in_date

date

10

0

Y

N

打卡日期

8

clock_in_type

varchar

64

0

Y

N

打卡类型

9

check_in_remarks

varchar

64

0

Y

N

打卡备注

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表department_information (部门信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

department_information_id

int

10

0

N

Y

部门信息ID

2

department_name

varchar

64

0

Y

N

部门名称

3

department_headcount

int

10

0

Y

N

0

部门人数

4

creation_date

date

10

0

Y

N

创建日期

5

department_location

varchar

64

0

Y

N

部门位置

6

department_introduction

text

65535

0

Y

N

部门介绍

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表employee_information (员工信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

employee_information_id

int

10

0

N

Y

员工信息ID

2

employee_users

int

10

0

Y

N

0

员工用户

3

department_name

varchar

64

0

Y

N

部门名称

4

job_title

varchar

64

0

Y

N

岗位名称

5

employee_name

varchar

64

0

Y

N

员工姓名

6

employee_gender

varchar

64

0

Y

N

员工性别

7

employee_phone_number

varchar

64

0

Y

N

员工电话

8

employee_id

varchar

64

0

Y

N

员工工号

9

date_of_employment

date

10

0

Y

N

入职日期

10

employee_remarks

text

65535

0

Y

N

员工备注

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表employee_users (员工用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

employee_users_id

int

10

0

N

Y

员工用户ID

2

department_name

varchar

64

0

Y

N

部门名称

3

job_title

varchar

64

0

Y

N

岗位名称

4

employee_name

varchar

64

0

Y

N

员工姓名

5

employee_gender

varchar

64

0

Y

N

员工性别

6

employee_phone_number

varchar

16

0

Y

N

员工电话

7

employee_id

varchar

64

0

N

N

员工工号

8

examine_state

varchar

16

0

N

N

已通过

审核状态

9

user_id

int

10

0

N

N

0

用户ID

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表job_information (岗位信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

job_information_id

int

10

0

N

Y

岗位信息ID

2

job_title

varchar

64

0

Y

N

岗位名称

3

number_of_positions

varchar

64

0

Y

N

岗位人数

4

on_duty_list

text

65535

0

Y

N

在岗名单

5

job_introduction

text

65535

0

Y

N

岗位介绍

6

job_remarks

text

65535

0

Y

N

岗位备注

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表notification_announcement (通知公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notification_announcement_id

int

10

0

N

Y

通知公告ID

2

announcement_number

varchar

64

0

Y

N

公告编号

3

announcement_title

varchar

64

0

Y

N

公告标题

4

announcement_date

date

10

0

Y

N

公告日期

5

announcement_image

varchar

255

0

Y

N

公告图片

6

announcement_content

text

65535

0

Y

N

公告内容

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表salary_information (工资信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

salary_information_id

int

10

0

N

Y

工资信息ID

2

employee_users

int

10

0

Y

N

0

员工用户

3

department_name

varchar

64

0

Y

N

部门名称

4

job_title

varchar

64

0

Y

N

岗位名称

5

employee_name

varchar

64

0

Y

N

员工姓名

6

employee_gender

varchar

64

0

Y

N

员工性别

7

employee_phone_number

varchar

64

0

Y

N

员工电话

8

employee_id

varchar

64

0

Y

N

员工工号

9

salary_month

varchar

64

0

Y

N

工资月份

10

salary_amount

int

10

0

Y

N

0

工资金额

11

salary_details

text

65535

0

Y

N

工资详情

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

  1.   详细设计及实现

4.1员工用户功能模块

4.1.1 用户登录界面

提供员工用户登录功能,确保只有授权的员工用户可以访问系统,保障系统的安全性。用户登录界面如下图所示。

图4-1用户登录界面图

登录的逻辑代码如下所示。

static int Login(Document& doc, Document& query, const Request& req, Response& res, acl::db_handle* db, const char* tableName)

{

std::set<std::string> set = getColType(*db, acl::string().format("SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME = '%s'", tableName));

acl::string sql;

std::string username = doc["username"].GetString();

sql.format("select * from `user` where username = '%s';", username.c_str());

const acl::db_row* one = getOneRow(*db, sql);

if (one == NULL) {

FailedJson(res, utf8_encode(s2ws("账号不存在!")));

return -1;

}

std::string state((*one)["state"]);

std::string password((*one)["password"]);

std::string user_id((*one)["user_id"]);

std::string tokenstring = user_id + ";" + username + ";" + password;

string token = EncryptionAES(tokenstring);

const char* user_group = (*one)["user_group"];

acl::db_handle* db2 = pool->peek_open();

if (db2 == NULL)

{

FailedJson(res, "peek db2 connection error");

return -1;

}

sql.format("select * from `user_group` where name = '%s';", user_group);

const acl::db_row* one2 = getOneRow(*db2, sql);

if (one2 == NULL)

{

FailedJson(res, utf8_encode(s2ws("账号不存在!")));

return -1;

}

std::string source_table((*one2)["source_table"]);

if (source_table.length() > 0) {

sql.format("select * from `%s` where user_id = '%s';", source_table.c_str(), user_id.c_str());

one2 = getOneRow(*db2, sql);

if (one2 == NULL)

{

FailedJson(res, utf8_encode(s2ws("账号不存在!")));

return -1;

}

std::string examine_state((*one2)["examine_state"]);

if (examine_state == utf8_encode(s2ws("未通过"))) {

FailedJson(res, utf8_encode(s2ws("账户未通过审核!")), 70000);

return -1;

}

else if (examine_state == utf8_encode(s2ws("未审核"))) {

FailedJson(res, utf8_encode(s2ws("账户未审核!")), 70000);

return -1;

}

pool->put(db2);

}

4.1.2通知公告管理界面

允许员工查看公司发布的通知公告,包括公司活动、重要通知、政策变动等,确保员工能及时了解公司的最新动态。通知公告管理界面如下图所示。

图4-2通知公告展示界面图

4.1.3工资信息管理界面

提供员工查看个人工资信息的功能,包括工资月份、薪资结构、奖惩情况等,保障员工对个人工资情况的了解。工资信息管理界面如下图所示。

图4-3工资信息管理界面图

4.1.4考勤打卡管理界面

提供员工进行考勤打卡的功能,记录员工的上下班时间、迟到早退情况等,方便公司进行考勤管理和工资结算。考勤打卡管理界面如下图所示。

图4-4考勤打卡列表界面图

图4-5考勤打卡添加单界面图

4.2管理员功能模块

4.2.1后台首页界面

管理人员可以查看后台首页、系统用户、通知公告管理、部门信息管理、岗位信息管理、员工信息管理、工资信息管理、考勤打卡管理,并且根据需要进行相应的操作。管理员后台首页界面如下图所示。

图4-6后台首页界面图

4.2.2系统用户界面

基于c++的公司人员管理系统中的管理人员在“系统用户”这一菜单是中可以对员工用户以及管理员进行管控。界面如下图所示。

图4-7系统用户管理界面图

4.2.3 通知公告管理界面

管理员发布、编辑、删除通知公告的功能,确保员工能及时了解公司的最新动态和重要信息。界面如下图所示。

图4-8通知公告管理界面图

4.2.4部门信息管理界面

管理员可以添加、编辑、删除部门信息的功能,确保部门架构的准确性和完整性。

部门信息管理界面如下图所示。

图4-9部门信息管理界面图

4.2.5岗位信息管理界面

管理员可以添加、编辑、删除岗位信息的功能,确保岗位设置的合理性和完整性。岗位信息管理界面如下图所示。

图4-10岗位信息管理界面图

4.2.6工资信息管理界面

管理员可以查看、重置、删除员工工资信息的功能,包括工资月份、工资金额等,确保工资管理的准确性。工资信息管理界面如下图所示。

图4-11工资信息管理界面图


5章 系统测试

5.1系统测试的目的

程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息泄露,系统无法正常启动等,为了避免这些问题,我们需要测试程序,再测试过程中发现问题,并纠正它们,从而使系统更长时间稳定成熟。本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但对于长期使用而言是非常重要和必要系统的开发。

软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。

基于c++的公司人员管理系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在基于c++的公司人员管理系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。

5.2系统测试方法

在对基于c++的公司人员管理系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让基于c++的公司人员管理系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个基于c++的公司人员管理系统开发所牵扯的该问题都必须一一解决,提高基于c++的公司人员管理系统的安全性、稳定性。

白盒测试与黑盒测试是测试中比较常用的两种方法。

①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽谅解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。

②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。

5.3功能测试

用户登录测试:

模块名称

测试用例

预期结果

实际结果

是否通过

登录模块

用户名:admin   密码:123  

弹出错误提示,提示密码错误

弹出错误提示,提示密码错误

通过

登录模块

用户名:123   

密码:admin   

弹出错误提示,提示用户名错误

弹出错误提示,提示用户名错误

通过

登录模块

用户名:admin   

密码:admin   

管理员登录成功

管理员登录成功

通过

删除分类测试:

模块名称

测试用例

预期结果

实际结果

是否通过

删除分类模块

分类名:最新通知  

删除成功、页面自动跳转

删除成功、页面自动跳转

通过

修改密码测试:

模块名称

测试用例

预期结果

实际结果

是否通过

修改密码模块

原密码:666

新密码:123

确认密码:123  

弹出错误提示,提示原密码错误

弹出错误提示,提示原密码错误

通过

修改密码模块

原密码:admin   新密码:123

确认密码:333  

弹出错误提示,提示确认密码不一致

弹出错误提示,提示确认密码不一致

通过

修改密码模块

原密码:admin   新密码:123

确认密码:123  

密码修改成功

密码修改成功

通过

通过对功能的测试,基于c++的公司人员管理系统的基本功能都是可行的,不管是系统里面的功能,还是界面的设计都是可值得推广宣传的。

  结论

随着信息技术的飞速发展和互联网的广泛应用,数据管理成为各行各业的核心需求。特别是在公司人员管理领域,一个高效、稳定、用户友好的管理系统显得尤为重要。本文重点探讨了基于C++的公司人员管理系统的设计与实现,旨在满足企业对于员工信息管理的迫切需求。

该系统以Visual Studio为开发平台,运用C++作为主要编程语言,并结合ASP.NET技术,实现前后端的有效交互。为了确保数据的快速访问和高效管理,我们选择了SQL Server数据库作为数据存储和处理的核心。在系统开发过程中,我们深入分析了企业的实际需求,明确了系统的功能模块和性能要求,进行了详细的设计规划,并进行了严格的测试和优化。

该系统实现了员工信息的录入、查询、修改、删除等基本功能,同时提供了员工薪资管理、部门岗位管理等扩展功能。通过友好的用户界面和符合常规逻辑的操作流程,使得用户能够轻松上手,高效完成员工信息的管理工作。此外,系统还具备高度的可扩展性和可维护性,方便企业根据实际需求进行系统的定制和升级。

然而,由于我们在系统开发过程中对部分知识和技术的掌握不够深入,以及开发经验的不足,导致系统在某些方面的功能还不够完善,可能存在一些潜在的问题和不足。因此,我们将继续对系统进行优化和改进,以提高系统的稳定性和实用性。同时,我们也期待更多的专业人士和同行能够提出宝贵的意见和建议,共同推动公司人员管理系统的发展和完善。

谢  辞

本次设计历时3个月。在这个毕业设计中,它离不开指导教师的指导,使事情基本顺利。指导老师无论是在毕业设计历经中,还是在论文做完中都给了了我特别大的助益。另1个方面,教师认真负责的工作姿态,谨慎的教学精神厚重的理论水准都使我获益匪浅。他勤恳谨慎的教学育人学习姿态也给我留下了特别特别深的感觉。我从老师那里学到了很多东西。在理论和实践中,我的技能得到了特别大的提高。在此,特向教师表示由衷的感激。

经过对该毕业设计的全部研究和开发,我的系统研发经历了从需求分析到实现详细功能,再到最终测试和维护的特殊进展。让我对系统研发有了更深层次的认识。如今我的动手本领单独处理疑惑的本领也获取到了特别大的演练学习增多,这是这次毕业设计最好的收获。

最后,在整个系统开发过程中,我周围的同学和朋友给了我很多意见,所以我很快就确认了系统的商业思想。在次,我由衷的向他们表示感激。

参考文献

[1]King Y J M .Build AI-Enhanced Audio Plugins with C++[M].Taylor and Francis:2024-01-09.

[2]DeLozier C .How Close Is Existing C/C++ Code to a Safe Subset?[J].Journal of Cybersecurity and Privacy,2023,4(1):1-22.

[3]V. F ,A. V ,P. M , et al.EE317 Microsimulation Model in Obesity: A Feasibility Study Using Object-Oriented C++ Code[J].Value in Health,2023,26(12S):S112-S112.

[4]Zeng G .Performance analysis of parallel programming models for C++[J].Journal of Physics: Conference Series,2023,2646(1):

[5]Déaglán C ,Mel Ó .Energy efficiency of the Visitor Pattern: contrasting Java and C++ implementations[J].Empirical Software Engineering,2023,28(6):

[6]彭昌旺.货运铁路客户关系管理系统的设计与实现[D].北京交通大学,2023.DOI:10.26944/d.cnki.gbfju.2023.001903.

[7]李飞.MTS出海人员动态跟踪管理系统升级研究与实践[J].现代信息科技,2023,7(10):33-36.DOI:10.19850/j.cnki.2096-4706.2023.10.009.

[8]付星月.应急管理作业人员资格考核管理系统的设计[J].集成电路应用,2023,40(05):268-270.DOI:10.19339/j.issn.1674-2583.2023.05.123.

[9]赵敬业.基于卷积神经网络的J企业车间人员定位管理与系统开发[D].中国矿业大学,2023.DOI:10.27623/d.cnki.gzkyu.2023.003004.

[10]崔森,闫国玉,张捷.基于智能脚垫的人员管理系统[J].工业控制计算机,2023,36(03):77-78+81.

[11]李亮,唐红侠.企业铁路施工人员安全管理信息平台的研发与设计[J].信息系统工程,2023,(01):86-88.

[12]俞申亮.港区集中居住人员管理系统的网络安全设计[J].网络安全和信息化,2023,(01):140-142.

[13]赵瑞,黄思怡,韩朝桂,等.新冠疫情下社区人员管理系统的设计与实现[J].现代信息科技,2022,6(24):14-17+22.DOI:10.19850/j.cnki.2096-4706.2022.24.004.

[14]汤琰.基于分层架构模型的医疗机构离退休人员管理系统设计[J].自动化技术与应用,2022,41(12):161-164.DOI:10.20033/j.1003-7241.(2022)12-0161-04.

[15]蒋维,张亮,张源,等.移动定位技术支持下的基建施工作业人员管理系统[J].大众标准化,2022,(23):70-72.

[16]宋文星,贺秦禄,胡海龙,等.基于Android系统的环卫人员管理系统[J].电子测试,2021,(04):83-84+28.DOI:10.16520/j.cnki.1000-8519.2021.04.032.

[17]陈海山.大数据模式下企业外来人员管理系统的应用[J].无线互联科技,2020,17(24):93-94+97.

[18]杨源,阳熹,汪少勇,等.海上风电场智能船舶调度及人员管理系统[J].南方能源建设,2020,7(01):47-52.DOI:10.16516/j.gedi.issn2095-8676.2020.01.007.

[19]陈思健.电信公司外包人员信息管理系统的设计与实现[D].广东工业大学,2019.DOI:10.27029/d.cnki.ggdgu.2019.000485.

[20]赵静,赵金煜,张硕凯.基于BIM-RFID的建筑工地人员管理系统研究[J].价值工程,2019,38(08):12-14.DOI:10.14018/j.cnki.cn13-1085/n.2019.08.004.

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~

  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值