摘 要
在信息技术发展的今天,各个行业都必将实现信息化管理,尤其是人员多的企业,如果仅仅靠手工进行管理,那将给企业浪费巨大的财富,企业工资的管理是一件繁琐的工资,包含了考勤,请假,绩效、出差等各个方面的计算,只有将企业工资管理到位,才能提高整个企业的运作效率,在工资的管理上,传统的管理都是通过纸质记录或者单机的软件进行管理,纸质记录的方式容易丢失,而且不易保存,在单机软件的管理中,员工没有办法参与进来,只能管理人员管理,已经满足不了时代发展的需求,因此针对企业工资各种信息的管理,设计开发了C#(asp.net)的工资管理系统。
工资管理系统基于VisualStudio开发平台,采用C#编程语言和ASP.NET等技术,采用SQL Server数据库来建立数据之间的转换,主要实现了注册、登录、后台首页、系统用户(管理员、人力资源者、绩效管理者)、员工信息管理、录入信息管理、员工类型管理、计算信息管理等功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对工资管理系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现工资管理系统和部署运行使用它。
关键词:工资管理系统;VisualStudio代码编辑器;SQL Server数据库;C#编程语言
Design and Implementation of A salary management system
Abstract
In today's era of information technology development, all industries are bound to achieve information management, especially those with a large number of employees. If management is solely conducted manually, it will waste a huge amount of wealth for the enterprise. The management of employee salaries is a complex task that involves various aspects such as attendance, leave, performance, and business trips. Only by effectively managing employee salaries can the overall operational efficiency of the enterprise be improved. Traditionally, salary management has been carried out through paper records or stand-alone software. Paper records are prone to loss and difficult to preserve, while in stand-alone software management, employees cannot participate, and only managers can handle it. This has failed to meet the demands of the times. Therefore, a salary management system based on C# (asp.net) has been designed and developed to manage various salary-related information of enterprises.
The salary management system is developed based on the Visual Studio development platform, using C# programming language and ASP.NET technology, and SQL Server database is adopted to establish the data conversion. It mainly realizes functions such as registration, login, background homepage, system users (administrators, human resource managers, performance managers), employee information management, information entry management, employee type management, and calculation information management. This report first analyzes the background, role, and significance of the research, laying the foundation for the rationality of the research work. Then, it analyzes the various requirements and technical issues of the salary management system, proving the necessity and technical feasibility of the system. After that, it gives a basic introduction to the technical software and design ideas needed for the system design. Finally, it implements the salary management system and deploys it for operation and use.
Key words: Salary Management System; Visual Studio Code Editor; SQL Server Database; C# Programming Language
目录
引言
随着信息技术的迅速发展和企业规模的不断扩大,传统的人工工资管理模式已逐渐无法满足现代企业对高效、准确和实时数据处理的需求。特别是在当前激烈的市场竞争环境下,企业需要通过精准的人力资源管理来降低运营成本、提升员工满意度和增强整体竞争力。工资管理作为人力资源管理中至关重要的一环,其效率和准确性直接影响到企业的运行效果和员工的积极性[1]。
C#作为一种现代化的编程语言,结合ASP.NET框架的强大功能,提供了一个构建高效、灵活和可扩展的web应用程序的理想环境。通过使用C#(ASP.NET)技术开发工资管理系统,不仅能够实现数据的集中管理和实时更新,还可以通过友好的用户界面提高工作效率,增强用户体验。此外,ASP.NET的安全性和稳定性为企业提供了保障,降低了数据泄露和系统崩溃的风险。
在这样的背景下,开发一套基于C#(ASP.NET)的工资管理系统显得尤为重要。这不仅符合现代企业信息化管理的趋势,也为人力资源的高效管理提供了有力的技术支持。系统将能够实现工资计算的自动化、数据统计的实时化以及报表生成的智能化,从而解放人力,提高工作效率,帮助企业更好地应对市场的变化与挑战。
因此,本研究将围绕基于C#(ASP.NET)的工资管理系统的设计与实现进行深入探讨,以期为企业提供一种高效、科学的工资管理解决方案。
在国内外,在国内,基于C#(ASP.NET)的工资管理系统的研究和应用已经相对成熟, 许多研究聚焦于如何有效分析和设计工资管理系统的需求,尤其是在企业人力资源管理中[2]。研究者们通过结合实际案例,提出了一系列基于用户角色的需求分析方法,以确保系统能够满足不同职能部门的需求。 ASP.NET作为一个强大的开发框架,广泛应用于工资管理系统的开发中。相关研究探讨了如何利用ASP.NET MVC、ASP.NET Core等现代化框架实现系统的模块化与可扩展性。这些技术能够帮助开发者快速构建高效的Web应用,提升系统的性能和用户体验[3]。
关于系统界面设计的研究也越来越多,探讨了如何运用现代化的前端技术(如HTML5、CSS3、JavaScript等)与ASP.NET结合,提高系统的可用性和用户体验。用户中心设计(UCD)逐渐受到重视,保证最终用户能够方便、高效地使用系统。
在国外,基于C#(asp.net)的工资管理系统的研究和应用也逐渐增多。一些学者和企业家开始探索如何通过采用先进的互联网技术和管理理念,提高企业的管理效率和服务水平,从而推动工资管理系统的发展[4]。例如,一些学者和企业家开始探索如何通过采用云计算、大数据、人工智能等技术,提高工资管理系统的智能化水平,从而提高系统的管理效率和服务水平。此外,国外的一些企业也开始采用C#(asp.net)技术来开发工资管理系统,并取得了一定的成效[5]。
综上所述,基于C#(asp.net)的工资管理系统的研究和应用已经成为国内外的一个热点话题。未来,随着互联网技术和管理理念的不断发展,基于C#(asp.net)的工资管理系统的研究和应用将会更加广泛和深入。
根据市场调研得到的信息数据,结合国内外前沿研究,利用相关系统开发和设计方法,最终设计出基于C#(asp.net)的工资管理系统。
本文共有七章,如下所示。
第一章概述了基于C#(asp.net)的工资管理系统的研究背景与意义;精炼地总结了国内外在内的领域研究情况和未来的研究趋势,最后给出了论文的组成结构。
第二章简要概述了本文所用的开发技术和工具。
第三章简要对系统各业务流程进行需求分析、可行性分析。
第四章对基于C#(asp.net)的工资管理系统进行设计。
第五章对基于C#(asp.net)的工资管理系统进行实现,并贴出相关页面截图,语言描述出具体功能实现的操作方法。
第六章对基于C#(asp.net)的工资管理系统采用测试用例的方式来对一些主要功能模块测试,最后得出测试结果。
第七章总结全文并对未来的研究做出展望。
C#(发音为C Sharp)是一种面向对象的编程语言,由微软公司在2000年6月发布,旨在作为其.NET平台的主要开发语言。C#是由 Anders Hejlsberg 领导的团队开发的,该语言融合了多种语言的特点,包括Java、Python、Perl和C++等,同时添加了一些新的特性以提高开发效率和代码的安全性。
以下是C#的一些关键特性:
简单:C#消除了许多在C++中容易出错的功能,例如宏和模板,同时提供了垃圾回收机制来自动管理内存,减轻了程序员的负担。
现代:它支持现代编程概念,如泛型、迭代器、委托、lambda表达式和异步编程等。
面向对象:C#支持封装、继承和多态这三个面向对象编程的基本特征,并且要求所有代码都必须包含在类中。
类型安全:通过静态类型检查,在编译时就能发现很多错误,提高了程序的稳定性。
版本控制:支持向后兼容,使软件升级更加平滑。
互操作性:可以方便地与其他.NET语言进行交互,比如VB.NET和F#。
可扩展性:允许定义新的值类型和引用类型,以及扩展现有类型的成员。
C#广泛应用于各种应用开发,包括Web应用程序、桌面应用程序、移动应用程序、游戏开发等。特别是在使用Unity游戏引擎时,C#是首选的脚本编写语言。随着.NET Core的发展,C#也成为了跨平台开发的一个重要选择。
JavaScript 是一种广泛使用的编程语言,主要用于实现网页上的动态效果和交互功能。它通常被用来使网页更加互动和响应用户操作,是前端开发的核心技术之一,与HTML和CSS并列。尽管名字相似,但JavaScript与Java并无直接关系。
以下是JavaScript的一些关键特性:
解释型语言:JavaScript是一种解释型脚本语言,代码可以直接在浏览器中运行,无需预编译。
基于对象:虽然JavaScript不是完全的面向对象编程语言,但它支持创建对象和使用某些面向对象的概念。自ES6(ECMAScript 2015)以来,引入了类的概念,使得面向对象编程变得更加直观。
事件驱动:JavaScript可以监听各种用户或浏览器的动作(如点击、加载等),并通过函数响应这些动作。
跨平台:JavaScript可以在任何支持它的环境中运行,最常见的是在网页浏览器中,但也可以在服务器端运行,比如通过Node.js。
丰富的API:JavaScript提供了大量的内置函数和对象,用于处理字符串、日期、数学计算等,并能通过DOM(文档对象模型)来访问和操作网页内容。
异步能力:JavaScript支持异步编程模式,如回调函数、Promise和async/await,这对于执行非阻塞操作(例如网络请求)非常有用。
活跃的社区和生态系统:JavaScript有一个庞大且活跃的开发者社区,提供了大量开源库和框架(如React、Angular、Vue.js等),极大地丰富了其应用范围。
随着Web技术的发展,JavaScript的应用场景已经远超出了最初的浏览器脚本范畴,现在也常用于移动应用开发(通过React Native或Ionic)、桌面应用开发(通过Electron)、游戏开发以及其他领域。此外,随着Node.js的出现,JavaScript也被广泛应用于服务器端开发。这使得JavaScript成为了一种全栈语言。
SQL Server 是由 Microsoft 开发的关系数据库管理系统(RDBMS),它使用结构化查询语言(SQL)作为其主要查询语言,支持事务处理、商业智能和分析应用程序中的各种数据操作。自首次发布以来,SQL Server 已成为企业级数据库解决方案的重要选择之一。
以下是 SQL Server 的一些关键特性:
安全性:SQL Server 提供了多层次的安全保护,包括登录安全性、用户权限管理和加密功能等,确保数据安全。
可扩展性与性能:通过内存优化表、列存储索引等技术提高性能,并支持大规模并行处理(MPP)以实现高扩展性。
集成服务(SSIS):提供强大的ETL(提取、转换、加载)工具,用于构建高性能的数据集成和工作流解决方案。
报表服务(SSRS):允许用户创建、管理各种类型的报表,并且可以将这些报表发布到Web或移动设备上。
分析服务(SSAS):支持在线分析处理(OLAP)和数据挖掘功能,帮助企业做出基于数据分析的决策。
跨平台支持:从SQL Server 2017开始,Microsoft提供了Linux版本的SQL Server,扩大了其适用范围。
云兼容性:SQL Server不仅可以在本地部署,还能够与Azure SQL Database和Azure SQL Managed Instance无缝集成,为企业提供灵活的云端数据库解决方案。
高级分析能力:通过集成R和Python脚本的支持,SQL Server能够执行高级分析任务,直接在数据库内进行复杂的数据分析。
易于使用的管理工具:SQL Server Management Studio(SSMS)为数据库管理员和开发人员提供了一个统一的环境来管理SQL Server基础设施。
SQL Server 广泛应用于需要处理大量数据的企业级应用中,如金融、医疗保健、零售等领域,是企业管理关键业务数据的强大工具。随着技术的发展,SQL Server 不断更新迭代,持续引入新的功能和技术以满足不断变化的市场需求。
ASP.NET 是一个由微软开发的免费开源框架,主要用于构建现代化、云支持和动态的网站、应用程序和服务。它支持开发人员使用HTML、CSS、JavaScript以及C#等语言来创建功能丰富的Web应用。ASP.NET是.NET框架的一部分,并且可以运行在Windows上,而从ASP.NET Core开始,它也支持跨平台运行(包括Linux和macOS)。
以下是ASP.NET的一些关键特性和组成部分:
MVC架构:ASP.NET支持Model-View-Controller (MVC) 模式,有助于清晰地分离应用程序的不同方面(输入逻辑、业务逻辑和UI逻辑),从而简化了开发流程并提高了代码的可维护性。
Razor视图引擎:提供了一种简洁的语法用于将服务器端代码嵌入到网页中,使得创建动态内容变得容易。
Web Forms:虽然现在更强调ASP.NET Core和MVC模式,但传统的Web Forms模型仍然可用于快速构建具有复杂事件驱动界面的Web应用程序。
Web API:允许开发者构建HTTP服务,这些服务可以被广泛的客户端(包括浏览器和移动设备)访问。它是实现RESTful服务的理想选择。
SignalR库:使实时Web功能变得简单,允许服务器端代码向连接的客户端推送内容更新。
安全性:ASP.NET提供了多种身份验证和授权方案,如OAuth、OpenID Connect等,帮助保护你的应用程序免受安全威胁。
跨平台支持:ASP.NET Core版本不仅限于Windows操作系统,也可以部署在Linux和macOS上,这为开发人员提供了更多的灵活性。
高性能:通过优化的启动时间和内存使用率,ASP.NET旨在提供卓越的应用性能。
工具支持:Visual Studio提供了强大的集成开发环境(IDE),支持ASP.NET项目的开发、调试和部署。
ASP.NET非常适合构建各种规模的企业级Web应用程序,无论是小型企业网站还是大型分布式系统。随着技术的发展,ASP.NET持续演进,不断引入新的特性以满足现代Web开发的需求。
本系统将在技术、操作、社会这三个角度上进行可行性分析。
-
-
- 技术可行性
-
C#是一种成熟的编程语言,拥有强大的.NET框架支持,提供了丰富的类库用于快速开发企业级应用。此外,Visual Studio作为集成开发环境(IDE),为开发者提供了便捷的开发工具。C#社区活跃,无论是官方文档还是第三方教程都非常丰富,遇到问题时容易找到解决方案。而且,随着ASP.NET Core的发展,C#也逐渐支持跨平台开发,增加了系统的部署灵活性。C#及其运行环境对安全性的考虑较为周全,如内存管理和类型安全等特性,有助于防止常见的安全漏洞。此外,还可以利用Windows身份验证和其他安全机制保护敏感数据。
-
-
- 操作可行性
-
设计良好的用户界面和用户体验是工资管理系统成功的关键之一。C#配合现代UI框架如WPF或WinForms,可以创建直观易用的操作界面,方便员工和管理员使用。尽管新系统的引入可能需要一定的培训成本,但一旦熟悉了系统的基本操作后,日常维护和使用将变得非常简单。并且,自动化功能减少了复杂的手工操作,降低了学习曲线。C#开发的应用程序易于维护和升级,代码清晰结构化,便于后期的功能扩展和错误修复。
-
-
- 社会可行性
-
确保工资管理系统符合当地的法律法规要求至关重要,比如最低工资标准、加班费计算规则、税收政策等。系统可以通过定期更新来保持合规性。工资信息属于个人敏感信息,因此系统必须严格遵守隐私保护法规,保证数据的安全存储和传输。考虑到员工对于新技术的接受程度不一,系统的设计应尽量简化操作流程,并提供必要的帮助文档和支持渠道,以增强用户的接受度和满意度。
工资管理系统的功能主要分为用户根据自己的情况进行注册登录,主要有人力资源管理者、绩效管理者、管理员可以浏览员工信息并对选中的信息进行员工信息管理、录入信息管理、员工类型管理、计算信息管理等操作。人力资源管理者可以添加员工信息并进行计算信息管理的问题等。后台系统管理员职责的不同,主要对系统用户(管理员、人力资源管理者、绩效管理者、)员工信息管理、计算信息管理进行处理。
人力资源管理者用例图如下所示。

图3-1 人力资源管理者用例图
绩效管理者用例图如下所示。

图3-2 绩效管理者用例图
管理员用例图如下所示。

图3-3 管理员用例图
首先主要考虑的是系统功能软件,在具体设计的环节上,是不是能够较好的满足各类用户的基本功能需求,如果不能较好的满足用户需求,那么这个系统的存在是没有价值的。软件系统的非功能性求分析,从7个方面展开,一个是性能分析,针对系统;一个是安全分析,针对系统,一个是完整度分析,针对系统,一个是可维护分析,针对系统,一个是可扩展性分析,针对系统,一个是适应业务的性能分析。面对工资管理系统存在的性能、安全、扩展、完整度等7个方面性能综合比对分析后发现,需要相应的非功能性需求分析。
安全性对每一个系统来说都是非常重要的。安全性很好的系统可以保护企业的信息和用户的信息不被窃取。提高系统的安全性不仅是对用户的负责,更是对企业的负责。尤其针对于工资管理系统来说,必须要有很好的安全性来保障整个系统。
系统具有对使用者有权限控制,针对角色的不通限制使用者的权限,以此来确保系统的安全性。
数据库中的数据是从外界输入的,当数据的输入时,由于种种原因,输入的数据会无效,或者是脏数据。因此,怎样保证输入的数据符合规定,成为了数据库系统,尤其是多用户的关系数据库系统首要关注的问题。
因此,在写入数据库时,要保证数据完整性、正确性和一致性。
对系统的数据流进行分析,系统的使用者分为三类,人力资源管理者、绩效管理者、管理员。系统主要对界面信息传送,登录信息的验证,注册信息的接收,用户各种操作的响应做处理。
系统顶层数据流图如下图所示。

图3-4 顶层数据流图
要判断用户是是什么身份,是根据登录的数据来判断后,跳转到对应的功能界面。在系统的内部用户就可以对数据进行操作,数据库中心就可以接收到系统传输的有效数据流来对数据sql语句进行对应操作。
系统底层数据流图如下图所示。

图3-3 底层数据流图
系统后台部分,每一种操作后系统都返回操作结果。后台的数据连接主要通过数据库,既分别对数据库做不同的操作。
本工资管理系统的架构设计主要分为可以3层,主要有Web层,业务层,Model层。其中web层还包括View层和Controller层,Model层包括元数据扩展层和数据访问层。
系统架构如下图所示。

图4-1 系统架构
工资管理系统总体分为人力资源管理者、绩效管理者用户模块和管理员模块。
两个模块表现上是分别独立存在,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。
综上所述,系统功能结构图如下图所示。

图4-2 系统功能结构图
- 后台首页:人力资源管理者进行管理的入口,
- 员工信息管理:员工基本信息维护、添加、修改和删除员工的基本信息,如姓名、性别、出生日期、入职日期、联系方式、部门等。查看和管理员工的学历、工作经历、技能特长等信息。管理公司内部的部门信息,包括创建部门、修改部门名称、调整部门人员等。搜索与筛选:通过姓名、部门、职位等条件快速搜索和筛选员工信息。
- 计算信息管理:设定公司工资结构,包括基本工资、绩效奖金、补贴、扣款等项的比例和计算规则。根据员工的考勤信息、绩效评估等因素,自动计算每位员工的工资,并支持生成工资单。管理员工的各类奖金、津贴,包括年度奖金、项目奖金等。生成和导出各类报表,如月度工资汇总、年度薪酬分析报告等,支持数据可视化与导出 Excel/CVS 等文件格式。
绩效管理者:
- 员工信息录入:包括员工姓名、工号、部门、职位等基本信息;支持录入各类绩效指标,如工作完成度、项目业绩、客户反馈等。定期考核:提供年、季、月等不同周期的绩效考核记录管理。可以设置不同的评分标准,以适应不同部门或职位的需求。允许绩效管理者对已录入的信息进行修改,如更正错误数据等。能够安全删除不再需要的绩效记录,同时确保日志追踪功能。
管理员:
- 系统用户管理:用户登录、登出、注册功能;管理员可以添加、删除、修改用户权限;用户角色包括管理员、普通用户等。
- 员工信息管理:增加、删除、修改员工信息,查询员工信息,支持模糊搜索,显示员工的详细信息,包括绩效记录和工资。
- 录入信息管理:录入员工的日常绩效、考勤信息,支持批量导入和导出数据的功能,审核和确认录入的数据。
- 员工类型管理:添加、删除、修改员工类型,将员工归类到不同的类型,以便于管理和计算,查询和统计不同类型员工的绩效和工资。
- 计算信息管理:根据绩效记录计算员工工资(基本工资 + 绩效工资),支持员工工资的历史记录查看,自动生成工资单,支持导出为Excel或Ppt。
数据库概念设计是指对于某个具体应用的数据模型(数据结构),进行抽象和设计,以便在后续的数据库实现阶段中进行数据库逻辑设计和物理结构设计。概念结构本身特性就是其能表现来自用户的各类需求。
系统ER图如下图所示。

图4-3 系统ER图
工资管理系统所拥有的数据表有以下:用户信息表,员工信息管理、录入信息管理、员工类型管理、计算信息管理等。
由于数据表较多,只展示系统主要数据表,如下表所示。
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | token_id | int | 是 | 是 | 临时访问牌ID | |
2 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
3 | info | text | 65535 | 否 | 否 | 信息 |
4 | maxage | int | 是 | 否 | 最大寿命:默认2小时 | |
5 | create_time | timestamp | 是 | 否 | 创建时间 | |
6 | update_time | timestamp | 是 | 否 | 更新时间 | |
7 | user_id | int | 是 | 否 | 用户编号 |
表 4-2-auth(用户权限管理)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | auth_id | int | 是 | 是 | 授权ID | |
2 | user_group | varchar | 64 | 否 | 否 | 用户组 |
3 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
4 | table_name | varchar | 64 | 否 | 否 | 表名 |
5 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
6 | path | varchar | 255 | 否 | 否 | 路由路径 |
7 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
8 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
9 | position | varchar | 32 | 否 | 否 | 位置 |
10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
11 | add | tinyint | 是 | 否 | 是否可增加 | |
12 | del | tinyint | 是 | 否 | 是否可删除 | |
13 | set | tinyint | 是 | 否 | 是否可修改 | |
14 | get | tinyint | 是 | 否 | 是否可查看 | |
15 | field_add | text | 65535 | 否 | 否 | 添加字段 |
16 | field_set | text | 65535 | 否 | 否 | 修改字段 |
17 | field_get | text | 65535 | 否 | 否 | 查询字段 |
18 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
20 | option | text | 65535 | 否 | 否 | 配置 |
21 | create_time | timestamp | 是 | 否 | 创建时间 | |
22 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-3-calculation_information(计算信息)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | calculation_information_id | int | 是 | 是 | 计算信息ID | |
2 | human_resource_manager | int | 否 | 否 | 人力资源管理者 | |
3 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
4 | department_type | varchar | 64 | 否 | 否 | 部门类型 |
5 | salary_year_and_month | varchar | 64 | 否 | 否 | 工资年月 |
6 | basic_salary | double | 否 | 否 | 基本工资 | |
7 | performance_pay | double | 否 | 否 | 绩效工资 | |
8 | total_salary | double | 否 | 否 | 合计薪资 | |
9 | issuing_time | datetime | 否 | 否 | 发放时间 | |
10 | salary_remarks | text | 65535 | 否 | 否 | 薪资备注 |
11 | create_time | datetime | 是 | 否 | 创建时间 | |
12 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-4-code_token(验证码)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | code_token_id | int | 是 | 是 | 验证码ID | |
2 | token | varchar | 255 | 否 | 否 | 令牌 |
3 | code | varchar | 255 | 否 | 否 | 验证码 |
4 | expire_time | timestamp | 是 | 否 | 失效时间 | |
5 | create_time | timestamp | 是 | 否 | 创建时间 | |
6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-5-employee_information(员工信息)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | employee_information_id | int | 是 | 是 | 员工信息ID | |
2 | human_resource_manager | int | 否 | 否 | 人力资源管理者 | |
3 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
4 | employee_age | varchar | 64 | 否 | 否 | 员工年龄 |
5 | employee_gender | varchar | 64 | 否 | 否 | 员工性别 |
6 | contact_phone | varchar | 16 | 否 | 否 | 联系电话 |
7 | home_address | varchar | 64 | 否 | 否 | 家庭住址 |
8 | staff_situation | text | 65535 | 否 | 否 | 员工情况 |
9 | create_time | datetime | 是 | 否 | 创建时间 | |
10 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-6-employee_type(员工类型)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | employee_type_id | int | 是 | 是 | 员工类型ID | |
2 | employee_type | varchar | 64 | 否 | 否 | 员工类型 |
3 | create_time | datetime | 是 | 否 | 创建时间 | |
4 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-7-hits(用户点击)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | hits_id | int | 是 | 是 | 点赞ID | |
2 | user_id | int | 是 | 否 | 点赞人 | |
3 | create_time | timestamp | 是 | 否 | 创建时间 | |
4 | update_time | timestamp | 是 | 否 | 更新时间 | |
5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
7 | source_id | int | 是 | 否 | 来源ID |
表 4-8-human_resource_manager(人力资源管理者)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | human_resource_manager_id | int | 是 | 是 | 人力资源管理者ID | |
2 | name_of_manager | varchar | 64 | 否 | 否 | 管理者姓名 |
3 | age_of_manager | varchar | 64 | 否 | 否 | 管理者年龄 |
4 | gender_of_managers | varchar | 64 | 否 | 否 | 管理者性别 |
5 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
6 | user_id | int | 是 | 否 | 用户ID | |
7 | create_time | datetime | 是 | 否 | 创建时间 | |
8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-9-input_information(录入信息)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | input_information_id | int | 是 | 是 | 录入信息ID | |
2 | performance_manager | int | 否 | 否 | 绩效管理者 | |
3 | employee_type | varchar | 64 | 否 | 否 | 员工类型 |
4 | working_wages | double | 否 | 否 | 工作工资 | |
5 | number_of_work | double | 否 | 否 | 工作次数 | |
6 | wages_earned | varchar | 64 | 否 | 否 | 所得工资 |
7 | entry_time | datetime | 否 | 否 | 录入时间 | |
8 | entry_personnel | varchar | 64 | 否 | 否 | 录入人员 |
9 | note_information | text | 65535 | 否 | 否 | 备注信息 |
10 | create_time | datetime | 是 | 否 | 创建时间 | |
11 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-10-performance_manager(绩效管理者)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | performance_manager_id | int | 是 | 是 | 绩效管理者ID | |
2 | name_of_personnel | varchar | 64 | 否 | 否 | 人员姓名 |
3 | age_of_personnel | varchar | 64 | 否 | 否 | 人员年龄 |
4 | gender_of_staff | varchar | 64 | 否 | 否 | 人员性别 |
5 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
6 | user_id | int | 是 | 否 | 用户ID | |
7 | create_time | datetime | 是 | 否 | 创建时间 | |
8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-11-schedule(日程管理)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | schedule_id | smallint | 是 | 是 | 日程ID | |
2 | content | varchar | 255 | 否 | 否 | 日程内容 |
3 | scheduled_time | datetime | 否 | 否 | 计划时间 | |
4 | user_id | int | 是 | 否 | 用户ID | |
5 | create_time | datetime | 否 | 否 | 创建时间 | |
6 | update_time | datetime | 否 | 否 | 更新时间 |
表 4-12-score(评分)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | score_id | int | 是 | 是 | 评分ID | |
2 | user_id | int | 是 | 否 | 评分人 | |
3 | nickname | varchar | 64 | 否 | 否 | 昵称 |
4 | score_num | double | 是 | 否 | 评分 | |
5 | create_time | timestamp | 是 | 否 | 创建时间 | |
6 | update_time | timestamp | 是 | 否 | 更新时间 | |
7 | source_table | varchar | 255 | 否 | 否 | 来源表 |
8 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
9 | source_id | int | 是 | 否 | 来源ID |
表 4-13-upload(文件上传)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | upload_id | int | 是 | 是 | 上传ID | |
2 | name | varchar | 64 | 否 | 否 | 文件名 |
3 | path | varchar | 255 | 否 | 否 | 访问路径 |
4 | file | varchar | 255 | 否 | 否 | 文件路径 |
5 | display | varchar | 255 | 否 | 否 | 显示顺序 |
6 | father_id | int | 否 | 否 | 父级ID | |
7 | dir | varchar | 255 | 否 | 否 | 文件夹 |
8 | type | varchar | 32 | 否 | 否 | 文件类型 |
表 4-14-user(用户账户)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | user_id | int | 是 | 是 | 用户ID | |
2 | state | smallint | 是 | 否 | 账户状态:(1可用|2异常|3已冻结|4已注销) | |
3 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
4 | login_time | timestamp | 是 | 否 | 上次登录时间 | |
5 | phone | varchar | 11 | 否 | 否 | 手机号码 |
6 | phone_state | smallint | 是 | 否 | 手机认证:(0未认证|1审核中|2已认证) | |
7 | username | varchar | 16 | 是 | 否 | 用户名 |
8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
9 | password | varchar | 64 | 是 | 否 | 密码 |
10 | | varchar | 64 | 否 | 否 | 邮箱 |
11 | email_state | smallint | 是 | 否 | 邮箱认证:(0未认证|1审核中|2已认证) | |
12 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
13 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
14 | create_time | timestamp | 是 | 否 | 创建时间 |
表 4-15-user_group(用户组)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | group_id | mediumint | 是 | 是 | 用户组ID | |
2 | display | smallint | 是 | 否 | 显示顺序 | |
3 | name | varchar | 16 | 是 | 否 | 名称 |
4 | description | varchar | 255 | 否 | 否 | 描述 |
5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
7 | source_id | int | 是 | 否 | 来源ID | |
8 | register | smallint | 否 | 否 | 注册位置 | |
9 | create_time | timestamp | 是 | 否 | 创建时间 | |
10 | update_time | timestamp | 是 | 否 | 更新时间 |
- 系统实现
- 登录模块的实现
用户登录页面,该页面有一个权限区分,主要用于区分系统管理员、用户的登录。当登录的账号是系统管理员时,管理员可以进行后台管理,而用户只能进行用户端的操作,用户只有在注册登录以后方可在网上订票。如果用户还没有登录的账号和密码,必须先在系统上注册一个。在登录后,可以进入订票的操作。
已登录的用户可以查看、修改个人信息以及密码修改等操作。用户信息,和密码修改功能在系统窗口中实现的。登录界面如下图所示。

图5-1登录界面
登录代码如下:
public class ValidateAuthorizeAttribute : ValidateAuthorityBase
{
protected override ReturnData ValidateTicket(string encryptTicket, System.Web.Http.Controllers.HttpActionContext actionContext)
{
ReturnData returnData = LoginHelper.Decrypt(encryptTicket);
if (returnData.code != 200)
{
return returnData;
}
UserLoginInfo userInfo = returnData.result as UserLoginInfo;
#region 验证登录状态
bool loginStatus = false;
if (CommonHelper.IsLoged())
{
UserLoginInfo userInfoFromSession = CommonHelper.GetUserLoginInfoFromSession();
if (userInfo.user_id == userInfoFromSession.user_id)
{
loginStatus = true;
}
}
else
{
loginStatus = LoginHelper.ValidateUserInfo(userInfo.user_id,
userInfo.username, userInfo.password);
if (loginStatus)
{
CommonHelper.SetUserSession(userInfo);
}
}
if (loginStatus == false)
{
return ReturnData.Error(30000, "登录失效,请重新登录!");
}
#endregion
return ReturnData.Success();
}
}
找回密码代码:
public object ChangePassword(JObject obj)
{
Dictionary<string, object> dics = new Dictionary<string, object>();
dics["password"] = EncryptHelper.MD5(obj["password"].ToString());
string token = HttpContext.Current.Request.Headers["x-auth-token"];
if (string.IsNullOrEmpty(token))
{
return ReturnData.Error("token的值不能为空!");
}
string sqlWhere = "";
if (obj["username"] == null || obj["username"].Equals(""))
{
ReturnData returnData = LoginHelper.Decrypt(token);
if (returnData.code != 200)
{
return returnData;
}
UserLoginInfo userInfo = returnData.result as UserLoginInfo;
sqlWhere = " and user_id='" + userInfo.user_id + "'";
}
else
{
sqlWhere = " and username='" + obj["username"] + "'";
}
-
- 人力资源管理者主要功能实现
首页的实现,用户界面要尽量简洁大方,使用户能够方便找到需要的功能入口,浏览且要易于修改和维护,同时还要保证用户合法和系统安全。
后台首页界面如下图所示。

图5-2后台首页界面
用户注册页面,在这个页面中用户要填写用户名,密码,姓名,地址和Email等信息,并且各项信息都不能为空。用户也可以点击修改个人资料和密码。系统管理员对已注册用户的信息可进行确认,可将用户列为正式用户,也可以将其删除。一般注册了的用户默认都是正是用户,前提是管理员没有删除该账号。用户在注册成功以后,才可登录系统。用户注册界面如下所示。

图5-3用户注册界面
注册代码如下:
public object Register(JObject obj)
{
var username = obj["username"].ToString();
if (DapHelper.Exists(TableName, "and username=@username", new Dictionary<string, object>
{
{ "username" , username}
}, DBName.Db))
{
return ReturnData.Error("该账号已存在");
}
var pwd = obj["password"];
var password = EncryptHelper.MD5(obj["password"].ToString());
Dictionary<string, object> dics = GetDics();
dics["password"] = password;
dics["user_group"] = obj["user_group"].ToString();
DapHelper.Add(TableName, dics, DBName.Db);
return ReturnData.Success();
员工信息管理:员工基本信息维护、添加、修改和删除员工的基本信息,如姓名、性别、出生日期、入职日期、联系方式、部门等。查看和管理员工的学历、工作经历、技能特长等信息。管理公司内部的部门信息,包括创建部门、修改部门名称、调整部门人员等。搜索与筛选:通过姓名、部门、职位等条件快速搜索和筛选员工信息。
如下图所示。

图5-4 员工信息管理
计算信息管理:设定公司工资结构,包括基本工资、绩效奖金、补贴、扣款等项的比例和计算规则。根据员工的考勤信息、绩效评估等因素,自动计算每位员工的工资,并支持生成工资单。管理员工的各类奖金、津贴,包括年度奖金、项目奖金等。生成和导出各类报表,如月度工资汇总、年度薪酬分析报告等,支持数据可视化与导出 Excel/CVS 等文件格式。
如下图所示。

图5-5计算信息管理详情界面
-
- 绩效管理者主要功能实现
员工信息录入:包括员工姓名、工号、部门、职位等基本信息;支持录入各类绩效指标,如工作完成度、项目业绩、客户反馈等。定期考核:提供年、季、月等不同周期的绩效考核记录管理。可以设置不同的评分标准,以适应不同部门或职位的需求。允许绩效管理者对已录入的信息进行修改,如更正错误数据等。能够安全删除不再需要的绩效记录,同时确保日志追踪功能。
如下图所示。

图5-6员工信息录入界面
-
- 管理员主要功能实现
系统用户管理:用户登录、登出、注册功能;管理员可以添加、删除、修改用户权限;用户角色包括管理员、普通用户等。
如下图所示。

图5-7系统用户管理
员工信息管理:增加、删除、修改员工信息,查询员工信息,支持模糊搜索,显示员工的详细信息,包括绩效记录和工资。
如下图所示。

图5-8员工信息管理界面
录入信息管理:录入员工的日常绩效、考勤信息,支持批量导入和导出数据的功能,审核和确认录入的数据。
如下图所示。

图5-9录入信息管理界面图
员工类型管理:添加、删除、修改员工类型,将员工归类到不同的类型,以便于管理和计算,查询和统计不同类型员工的绩效和工资。
如下图所示。

计算信息管理:根据绩效记录计算员工工资(基本工资 + 绩效工资),支持员工工资的历史记录查看,自动生成工资单,支持导出为Excel或Ppt。
如下图所示。

图5-11计算信息管理界面
对任何系统而言,测试都是必不可少的环节,测试可以发现系统存在的很多问题,所有的软件上线之前,都应该进行充足的测试之后才能保证上线后不会Bug频发,或者是功能不满足需求等问题的发生。下面分别从单元测试,功能测试和用例测试来对系统进行测试以保证系统的稳定性和可靠性。
下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表6-1 系统登录功能测试用例
功能描述 | 用于系统登录 | |
测试目的 | 检测登录时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的用户名和密码带有非法字符 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名或者密码为空 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名和密码不存在 | 提示用户名或者密码错误 | 与预期结果一致 |
输入正确的用户名和密码 | 登录成功 | 与预期结果一致 |
下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表6-2 注册功能测试用例
功能描述 | 用于用户注册 | |
测试目的 | 检测用户注册时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的手机号不合法 | 提示请输入正确的手机号码 | 与预期结果一致 |
输入的字段为空 | 提示必填项不能为空 | 与预期结果一致 |
输入的密码少于6位 | 提示密码必须为6-12位 | 与预期结果一致 |
输入的密码大于12位 | 提示密码必须为6-12位 | 与预期结果一致 |
下表是员工信息功能的测试用例,检测了员工信息中对员工信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;用户登录系统。
表6-3 员工信息的测试用例
功能描述 | 用于员工信息 | |
测试目的 | 检测员工信息时的各种操作的运行情况 | |
测试数据以及操作 | 预期结果 | 实际结果 |
点击添加员工信息,必填项合法输入,点击保存 | 提示添加成功 | 与预期结果一致 |
点击添加员工信息,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改员工信息,必填项修改为空,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改员工信息,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击删除员工信息,选择票务信息删除 | 提示删除成功 | 与预期结果一致 |
点击搜索员工信息,输入存在的员工信息名 | 查找出员工信息 | 与预期结果一致 |
点击搜索员工信息,输入不存在的员工信息名 | 不显示员工信息 | 与预期结果一致 |
下表是录入信息功能的测试用例,检测了录入信息中租赁的操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;用户登录系统。
表6-4 录入信息的测试用例
功能描述 | 用于录入信息 | |
测试目的 | 检测录入信息时各种操作的情况 | |
测试数据以及操作 | 预期结果 | 实际结果 |
未选择录入时间,点击提交 | 提示请选择录入时间 | 与预期结果一致 |
未输入信息,点击提交 | 提示请输入信息 | 与预期结果一致 |
未输入信息,点击提交 | 提示请输入信息 | 与预期结果一致 |
使用阿里云PTS(Performance Testing Service)性能测试服务对线上系统进行压力测试。线上服务器环境为:1核心CPU,1G内存,1Mbps公网带宽,Centos7.0操作系统。
压测过程中使用了2台并发机器,每台机器20个用户并发,对系统主页,登录,数据查询和数据维护等模块进行并发访问,测试结果是有40个用户并发时,数据管理相关页面的响应时间甚至达到了7s,通过查看服务器出网流量发现已经达到1381kb/s,可以看出服务器的带宽已经达到峰值,如果系统使用5Mbps的带宽,系统的响应时间和TPS将会大大增加。在整个测试的过程中,CPU的使用率占用仅8%,也提现出带宽瓶颈对系统的影响非常严重。
随着计算机互联网技术的迅猛发展,各行各业都已经实现采用计算机相关技术对日益放大的数据进行管理。该课题是工资管理系统为核心展开的,主要是为了实现用户员工信息管理、录入信息管理、员工类型管理、计算信息管理的需求。
工资管理系统的开发是基于VisualStudio开发平台,采用C#编程语言和ASP.NET等技术,采用SQL Server数据库来建立数据之间的转换。文中详细分析了工资管理系统的研究背景和意义、开发工具和相关技术以及系统需求、系统详细设计和系统测试等等一系列内容。系统实现了工资管理系统所需的一些基本功能,并通过测试对这些实现的功能进行了完善,进而提高了系统整体的实用性。系统投入运行时,各功能均运行正常。系统的每个界面的操作符合常规逻辑,对使用者来说操作简单,界面友好。整个系统的各个功能设计合理,体现了人性化。
但是由于自己在系统开发过程中对一些用到的相关知识和技术掌握不够牢固,再加上自身开发经验欠缺,因此系统在有些方面的功能还不够完善,考虑的不够全面,因此整个系统还有待日后逐步完善。
- 徐潇文.公平理论视角下绩效工资管理赋能高校人才队伍建设[J].人力资源,2025,(03):110-112.
- 马双,王亮.关于员工工资统计分析工作发展的思考[J].经济师,2025,(02):271-272.
- 禹美宏.事业单位薪酬制度中绩效工资管理问题的探讨[J].市场瞭望,2025,(01):199-201.
- Prevailing Rate Systems; Change in Criteria for Defining Appropriated Fund Federal Wage System Wage Areas[J].The Federal Register / FIND,2025,90(012):7428-7428.
- Prevailing Rate Systems; Change in Criteria for Defining Appropriated Fund Federal Wage System Wage Areas[J].The Federal Register / FIND,2024,89(198):82874-82874.
- 曾虹.基于因子分析与系统聚类的中国各地区工资差异评价研究[J].商业观察,2024,10(35):86-94.
- 张静茹.高校工资管理中人事档案信息的利用研究[J].办公自动化,2024,29(22):79-81.
- 林洋.基于SOP理念的建筑企业民工工资管理流程分析[J].中国总会计师,2024,(10):68-71.
- 孙媛媛.绩效管理与绩效工资改革探析[J].销售与管理,2024,(30):27-29.
- Prevailing Rate Systems; Abolishment of Frederick, Maryland, as a Nonappropriated Fund Federal Wage System Wage Area[J].The Federal Register / FIND,2024,89(163):67829-67829.
- 张莹莹.基于Java的工资管理系统的设计与实现[J].现代信息科技,2023,7(01):40-43.DOI:10.19850/j.cnki.2096-4706.2023.01.010.
- 李萱然.高校人事工资管理系统的优化与实现[J].人才资源开发,2021,(23):12-13.DOI:10.19424/j.cnki.41-1372/d.2021.23.006.
- 李兆琪.基于MySQL数据库服务器创建企业工资管理系统[J].赤峰学院学报(自然科学版),2021,37(11):10-11.DOI:10.13398/j.cnki.issn1673-260x.2021.11.004.
- 张斯杰.高校工资发放流程的优化方案[J].河北企业,2021,(11):88-90.DOI:10.19885/j.cnki.hbqy.2021.11.023.
- 张佳佳,邹林辰,陈泓享,等.基于Web的网球场计费管理系统设计[J].无线互联科技,2021,18(13):54-55.
- 侯泽民,何建仓.基于Web的人力资源管理系统设计与实现[J].电脑编程技巧与维护,2020,(10):75-77.DOI:10.16184/j.cnki.comprg.2020.10.029.
- 邱雨馨.工资核算管理系统的设计与实现[D].西安电子科技大学,2020.DOI:10.27389/d.cnki.gxadu.2020.001864.
- 王海英,张笑歌,魏晨阳.农民工工资管理系统的设计和实现[J].中国公路,2020,(08):114-115.DOI:10.13468/j.cnki.chw.2020.08.043.
- 孙坚.医院人事工资管理系统的设计和实施[J].电子技术与软件工程,2020,(05):197-199.DOI:10.20109/j.cnki.etse.2020.05.081.
- 张苏萍.基于B/S模式的高校工资管理系统的设计与实现[J].科技资讯,2019,17(30):27+29.DOI:10.16661/j.cnki.1672-3791.2019.30.027.
本次设计历时3个月。在这个毕业设计中,它离不开指导教师的指导,使事情基本顺利。指导老师无论是在毕业设计历经中,还是在论文做完中都给了了我特别大的助益。另1个方面,教师认真负责的工作姿态,谨慎的教学精神厚重的理论水准都使我获益匪浅。他勤恳谨慎的教学育人学习姿态也给我留下了特别特别深的感觉。我从老师那里学到了很多东西。在理论和实践中,我的技能得到了特别大的提高。在此,特向教师表示由衷的感激。
经过对该毕业设计的全部研究和开发,我的系统研发经历了从需求分析到实现详细功能,再到最终测试和维护的特殊进展。让我对系统研发有了更深层次的认识。如今我的动手本领单独处理疑惑的本领也获取到了特别大的演练学习增多,这是这次毕业设计最好的收获。
最后,在整个系统开发过程中,我周围的同学和朋友给了我很多意见,所以我很快就确认了系统的商业思想。在次,我由衷的向他们表示感激。
点赞+收藏+关注 → 私信领取本源代码、数据库