基于JSP+Servlet开发简易工资管理系统

1,问题描述 一个公司下分为若干部门,每个部门有若干职员和经理,每个部门经销若干种商品,工资由基本工资,产品销售业绩奖,若干种保险的扣除等组成,其中的销售业绩奖按以下方式设计:职员按其完成额的 5% 提成

本文包含相关资料包-----> 点击直达获取<-------

1.问题描述

一个公司下分为若干部门,每个部门有若干职员和经理,每个部门经销若干种商品。工资由基本工资、产品销售业绩奖、若干种保险的扣除等组成。其中的销售业绩奖按以下方式设计:职员按其完成额的 5% 提成,经理按其部门完成额的 1% 提成。每个月要生成一个工资表,每年年末再按个人的总销售额发放 1% 的奖金。

2.问题分析

根据问题的描述,我们对题目进行分析,提取其中的:“部门”、“员工”、“工资”、等关键词对系统进行子模块的划分,初步划分为:员工信息管理模块、部门信息管理模块、工资信息管理模块以及登录模块。

员工信息管理模块

主要负责所有员工的基本信息管理,包括基础员工编号、姓名、工资、保险、部门编号等信息。管理员可对员工信息进行管理,员工可利用自己的编号查询信息。

  • 增加员工:
  • 增加一个新员工的基本信息。
  • 修改员工信息:
  • 对员工基本信息进行修改。
  • 删除员工:
  • 删除一个员工的基本信息及其工资信息。
  • 查询员工信息:
  • 根据员工编号查询员工基本信息。

部门信息管理模块

主要对各个部门的信息进管理,包括部门编号,部门名称以及部门人员调整等功能。管理员可以对部门信息进行管理,员工可根据自己的部门编号查看部门基本信息。

  • 增加部门:
  • 增加一个部门的基本信息。
  • 修改部门信息:
  • 对部门基本信息进行修改。
  • 删除部门:
  • 删除一个部门的基本信息并将该部门下所有员工已入“无”部门。
  • 查询部门信息:
  • 根据部门编号查询部门基本信息。

工资信息管理模块

主要对所有员工的工资进行管理,包括录入员工销售成绩,生成员工月/年工资表,以及显示等功能。员工可根据员工编号和时间查询自己的工资表。

  • 录入员工销售金额:
  • 根据提供的各部门销售金额表,将全体员工的本月销售金额信息录入系统,为生成工资表做准备。
  • 生成月/年工资表:
  • 根据员工对应时间内的销售成绩以及基本信息,计算生成员工的月/年工资表并存储,为查询工资表做准备。
  • 查询工资表:
  • 根据员工编号查询员工的所有月/年工资表。

登录模块

管理员对系统进行操作时,需提前登录,验证身份通过后方可对系统进行操作。

3.需求分析

识别参与者

该系统的参与者有公司管理员与各部门销售员工(包括经理)。

  • 员工信息管理模块:
  • 参与者为公司管理员与各部门销售员工,管理员对各功能拥有完全控制权限,销售员工(包括经理)只能查看员工的基本信息。
  • 部门信息管理模块:
  • 参与者为公司管理员与各部门销售员工,管理员对各功能拥有完全控制权限,销售员工(包括经理)只能查看部门的基本信息。
  • 工资信息管理模块:
  • 根据员工编号查询员工的所有月/年工资表。
  • 登录模块:
  • 参与者为公司管理员,管理员对系统进行操作时,需提前登录,验证身份通过后方可对系统进行操作。

识别用况

员工信息管理

用况:添加员工

  • [前置条件:管理员已经登录成功]
  • 管理员进入添加员工信息界面
  • 输入员工具体信息(员工编号、员工姓名、所属部门、员工级别、员工基本工资)
  • 管理员查询所有部门信息
  • 管理员添加员工信息
  • 若输入员工信息校验通过并存储,显示添加成功。
  • 若输入员工信息校验或存储出现异常,显示异常信息。

用况:修改员工信息

  • [前置条件:管理员已经登录成功]
  • 管理员进入修改员工信息界面
  • 输入员工编号。
  • 系统查询该员工基本信息并显示,若出现异常则显示异常信息。
  • 管理员修改员工信息并存储
  • 若输入员工信息校验通过并存储,显示添加成功。
  • 若输入员工信息校验或存储出现异常,显示异常信息。

用况:查询员工信息

  • [前置条件:管理员已经登录成功,若为普通用户则无条件]
  • 管理员进入查询员工信息界面并输入员工编号
  • 若系统查询员工基本信息成功,显示该员工基本信息。
  • 若出现异常,显示异常信息。

用况:删除员工

  • [前置条件:管理员已经登录成功]
  • 管理员进入删除员工信息界面
  • 输入员工编号。
  • 若删除员工信息成功
  • 删除该所有工资信息。
  • 显示成功信息。
  • 若删除员工出现异常
  • 显示异常信息。

用况:查询部门信息

  • [前置条件:管理员已经登录成功,若为普通用户则无条件]
  • 管理员进入查询部门信息信息界面并输入部门编号
  • 若查询成功,显示部门基本信息。
  • 若发生异常,显示异常信息。

用况:登录

  • 管理员进入登录界面输入用户名与密码
  • 若校验通过,显示登录成功并跳转。
  • 若校验失败,显示错误信息。
  • 若发生异常,显示异常信息。

部门信息管理

用况:添加部门

  • [前置条件:管理员已经登录成功]
  • 管理员进入添加部门信息界面并输入部门具体信息(部门编号、部门名称)
  • 若输入部门信息校验通过并存储,显示添加成功。
  • 若输入部门信息校验或存储出现异常,显示异常信息。

用况:修改部门信息

  • [前置条件:管理员已经登录成功]
  • 管理员进入修改部门信息界面
  • 输入部门编号。
  • 系统查询该部门基本信息并显示,若出现异常则显示异常信息。
  • 管理员修改部门信息并存储
  • 若输入部门信息校验通过并存储,显示添加成功。
  • 若输入部门信息校验或存储出现异常,显示异常信息。

用况:查询部门信息

  • [前置条件:管理员已经登录成功,若为普通用户则无条件]
  • 管理员进入查询部门信息界面并输入部门编号
  • 若查询成功,显示部门基本信息。
  • 若发生异常,显示异常信息。

用况:删除部门

  • [前置条件:管理员已经登录成功]
  • 管理员进入删除部门信息界面
  • 输入部门编号。
  • 若删除部门信息成功
  • 将该部门下所有员工信息移动至“无”部门。
  • 显示成功信息。
  • 若删除部门出现异常
  • 显示异常信息。

用况:登录

  • 管理员进入登录界面输入用户名与密码
  • 若校验通过,显示登录成功并跳转。
  • 若校验失败,显示错误信息。
  • 若发生异常,显示异常信息。

工资信息管理

用况:录入员工销售金额

  • [前置条件:管理员已经登录成功]
  • 管理员进入工资信息录入界面
  • 选择销售金额信息所在的文件。
  • 系统读取文件信息并保存
  • 若保存成功,显示录入完成。
  • 如出现异常,显示异常信息。

用况:生成工资表

  • [前置条件:管理员已经登录成功]
  • 管理员进入工资表生成界面
  • 输入员工编号和时间信息(某月或某年)。
  • 系统生成并存储工资表
  • 若保存成功,显示生成完成。
  • 如出现异常,显示异常信息。

用况:查询工资表

  • [前置条件:管理员已经登录成功,若为普通用户则无条件]
  • 管理员进入工资表查询界面
  • 输入员工编号及时间信息
  • 系统查询工资表
  • 若查询成功,显示工资表。
  • 若发生异常,显示异常信息。

用况:登录

  • 管理员进入登录界面输入用户名与密码
  • 若校验通过,显示登录成功并跳转。
  • 若校验失败,显示错误信息。
  • 若发生异常,显示异常信息。

用况:

-查询工资表 --管理员进入查询工资表界面,输入需要查询工资表的员工编号,结果显示具体销售信息。 --销售人员进入查询工资表界面,结果显示本人具体销售信息。

-生成年工资表 管理员进入生成年工资表界面,输入需要生成年工资表的员工编号,结果显示该员工的年工资表具体信息。

-生成月工资表 管理员进入生成月工资表界面,输入需要生成月工资表的员工编号,结果显示该员工的月工资表具体信息。

4.系统分析

类图

E-R 图

实体的属性

  • -员工:员工编号,基础工资,员工姓名,员工等级,部门编号,保险金额
  • -工资信息:总工资,保险金额,员工编号,月工资,年工资
  • -部门:部门编号,部门名称

实体之间的关系

  • -员工查找工资(一对一联系),一个员工只查找一份工资信息,一份工资信息只由一个员工查找。
  • -部门包含员工(一对多联系),一个部门包含多个员工,一个员工只属于一个部门。

数据表基本属性

表一:工资管理员

字段名称 数据类型 长度 主键 外键 是否为空
用户名 varchar 45
密码 varchar 45

表二:员工信息

字段名称 数据类型 长度 主键 外键 是否为空
员工编号 int 10
员工姓名 varchar 45
员工等级 varchar 10
部门编号 int 10
基础工资 int 10
保险金额 int 10

表三:部门信息

字段名称 数据类型 长度 主键 外键 是否为空
部门编号 int 10
部门名称 varchar 45

表四:工资信息

字段名称 数据类型 长度 主键 外键 是否为空
工资编号 int 10
员工标号 int 10
销售金额 int 10
奖金金额 int 10
所属月份 varchar 45
所属年份 varchar 45
实际工资 int 10
年表标志 int 10
计算标识 int 10

时序图

登录

管理员通过点击登录按钮进入登录界面,登录界面创建登录服务。管理员将登录信息(用户名和密码)输入,与数据库内已储存的数据进行比对,验证登录信息。

员工信息管理

增加员工:

管理员通过点击员工信息管理按钮进入员工信息管理界面,员工管理界面创建员工信息服务。管理员将增加的员工信息输入,将员工信息存入数据库。

-删除员工:

管理员通过点击员工信息管理按钮进入员工信息管理界面,员工信息管理界面创建员工信息服务。管理员将需要删除员工的编号输入,根据员工编号在数据库内找到相应员工信息,进行员工的删除。

-查询员工信息:

管理员通过点击员工信息管理按钮进入员工信息管理界面,员工信息管理界面创建员工信息服务。管理员将需要查询员工的编号输入,根据员工编号在数据库内找到相应员工信息,进行员工信息的查询。

-修改员工信息:

管理员通过点击员工信息管理按钮进入员工信息管理界面,员工信息管理界面创建员工信息服务。管理员将需要修改员工的编号输入,在员工信息查询后,根据员工编号在数据库内找到相应员工信息更新数据库内数据,进行员工信息的更新。

部门信息管理

-增加部门:

管理员通过点击部门信息管理按钮进入部门信息管理界面,部门管理界面创建部门信息服务。管理员将增加的部门信息输入,将部门信息存入数据库。

-删除部门:

管理员通过点击部门信息管理按钮进入部门信息管理界面,部门信息管理界面创建部门信息服务。管理员将需要删除部门的编号输入,根据部门编号在数据库内找到相应部门信息,进行部门及该部门的员工的删除。

-查询部门信息:

管理员通过点击部门信息管理按钮进入部门信息管理界面,部门信息管理界面创建部门信息服务。管理员将需要查询部门的编号输入,根据部门编号在数据库内找到相应部门信息,进行部门信息的查询。

-修改部门信息:

管理员通过点击部门信息管理按钮进入部门信息管理界面,部门信息管理界面创建部门信息服务。管理员将需要修改部门的编号输入,在部门信息查询后,根据部门编号找到相应部门信息并数据。

工资信息管理

-录入员工销售金额:

管理员通过点击工资管理按钮进入工资管理页面,工资管理页面创建工资服务,管理员选择本月的销售记录文件,系统自动读取文件信息整理后存储。若成功存储返回成功,失败则返回异常信息。

-生成工资表:

管理员通过点击工资管理按钮进入工资管理页面,工资管理页面创建工资服务,管理员输入员工编号与时间,系统查询该员工的工资信息并整理计算并重新存储,若成功存储返回成功,失败则返回异常信息。

-查询工资表:

管理员通过点击工资管理按钮进入工资管理页面,工资管理页面创建工资服务,管理员输入员工编号与时间,系统查询该员工的工资信息并显示。若成功查询返回成功,失败则返回异常信息。

5.开发环境及开发技术

开发环境

本项目由使用 javaEE+mysql(远程服务器)开发,javaEE 的集成开发环境为 idea。

  • JDK 版本:1.8_211
  • Tomcat 版本:8.5.35
  • idea 版本: 2018.2.8 (Ultimate Edition)
  • MySQL 版本:5.7
  • 本地开发机器系统及版本:Mac OS X 10.15
  • 远程服务器系统及版本:Windows server 2012 R2

开发技术

​ 项目采用原生 javaEE(jsp+servlet)配合 MySQL 数据库完成开发。在系统架构方面采用分层架构,主要分为 Web 层、servlet 层、service 层以及 dao 层。

​ Web 层负责与用户交互,包括获取用输入的数据及向用户展示所需要的数据,获取输入数据主要通过表单及超链接完成。向用户展示数据则通过 jstl+el 表达式来获取后台添加在 http 请求域(request 域、session 域等)中的数据并显示来完成的。

​ Servlet 层负责接收前端请求,处理后将结果返回给前端。向 http 请求域添加数据便是在此处完成。

​ Service 层负责对 Servlet 层提供服务。设置此层的目的主要目的是:一个 servlet 可能不止操作一张表,而一个 Dao 层则操作一张表。在中间利用 servlet 进行整合,减小 servlet 层与 Dao 层的耦合。

​ Dao 层负责对数据库进行操作。Dao 层接收 Service 层的操作请求,对具体的数据库进行相关操作。

​ 系统中还有一个 Model 层,主要存储模型类(即是文档中那个类图中的各个类)。JSP 则充当 view 角色,而 servlet 则是 controller 的角色。所以本项目是 MVC+ 分层的整体架构。

​ 在项目细节方面,我们还使用了 c3p0 数据库连接池、dbutils(数据库操作)工具、fileupload(文件上传)工具、beanutils(映射 post 请求数据与实体类)工具以及 poi-ooxml(Excel 文件解析与生成)工具等。

​ 在项目实现细节方面,我们针对可能发生的错误也进行了的程序健壮性和安全性的保证,包括粗线错误后的处理。

参考文献

  • 基于SSH 的人事工资管理系统的研究与开发(中国海洋大学·李萍)
  • 人力资源管理系统设计(山东大学·郑重)
  • 高校教师工资管理信息系统的设计与实现(电子科技大学·姚焕)
  • 吉林大学工资管理系统V2.0的开发(吉林大学·姜广新)
  • 基于JSP的学生就业信息管理系统设计与实现(吉林大学·马骁)
  • 中小学绩效工资管理系统(大连海事大学·刘芳)
  • 企业工资管理系统的设计与实现(湖南大学·左新娥)
  • 基于B/S的人事档案及薪资管理系统的设计与实现(电子科技大学·陈洁)
  • 企业工资管理系统的设计与实现(湖南大学·左新娥)
  • 中小企业人力资源管理系统的设计与开发(电子科技大学·马跃)
  • 基于SSH 的人事工资管理系统的研究与开发(中国海洋大学·李萍)
  • 成都S商业银行代扣代发工资系统的设计与实现(电子科技大学·张倩倩)
  • 利用JSP技术开发基于WEB的人事工资管理系统(大连铁道学院·杜欣然)
  • 基于B/S模式的企业工资管理系统设计与实现(湖北工业大学·杨晶)
  • 基于J2EE的人力资源管理系统及AJAX应用研究(吉林大学·张英瑞)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设工坊 ,原文地址:https://bishedaima.com/yuanma/35704.html

相关推荐

  • Minesweeper--python

    Minesweeper(扫雷) 这是一个由 Python 编写的扫雷游戏,基于 tkinter/Tkinter 开发,支持 python2 和 python3
    2024年05月14日
    1 1 1
  • python实验作业集

    问题集合 1,使用 for 循环,输入倒数秒数,进行倒数计时! 代码如下: ```python import time 使用input()语句接收用户输入的倒计时数值 countdown = int(input("请输入倒数秒数 :")) print("\n倒数计时开始") for i in range(countdown): print("倒数 {} 秒"
    2024年05月14日
    3 1 1
  • Web前端作业

    Web前端作业 基本实现 首先我们来到主界面,有一些图片供选择, 我们随便挑选一张图片,假如选择甘雨,进入甘雨的二级界面: 我们看到有六个按钮
    2024年05月14日
    1 1 1
  • 基于SSM框架实现的员工信息管理系统

    1,项目简介 这是完整使用SSM框架开发的第一个项目,项目来源于北京动力节点的SSM框架整合教程,其中加入了一些自己的理解,增加了一个搜索功能的页面,这个项目总体来说对于新手是很友好的
    2024年05月14日
    2 1 1
  • 基于SpringBoot框架的小型诊疗预约平台

    这是一个采用Java语言开发的小型医疗预约系统,基于流行的SpringBoot框架构建,项目集成Vue,js技术,支持在Idea或Eclipse开发环境下运行,它的核心功能是实现诊疗预约服务
    2024年05月23日
    3 1 1
  • 基于Python实现随机车牌号程序

    1, 课程设计目的 《软件设计基础-Python》课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖Python的知识点,又接近工程实际需要
    2024年05月14日
    3 1 1
  • Python实现的BP神经网络算法

    1 BP 神经网络 1,1 算法介绍 1,2 实验代码 1,3 实验结果 1,4 实验总结 1
    2024年05月14日
    2 1 2
  • 基于Java+SSM的物流配货管理系统

    这是一个🔥🔥基于SSM的物流配货管理系统🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 物流配货开发技术栈为SSM项目,可以作为毕业设计课程设计作业基于Java
    2024年05月23日
    14 1 2
  • Python实现基于深度学习的人脸识别研究

    基于深度学习的人脸识别研究 摘要 近年来,网络技术日新月异,我们已经进入了大数据的时代并成为其中第一员,由此带来数据量的飞跃式的增长,而如何利用这些数据产生实际的生产价值则成为了大数据时代的一个重要问题
    2024年05月14日
    4 1 2
  • 基于Python使用TensorBoard可视化工具

    基于Python使用TensorBoard可视化工具 首先展示一下代码: python writer = tf,summary,FileWriter("
    2024年05月14日
    2 1 1

发表回复

登录后才能评论