一、实验选题

1.1实验内容

本次课程设计内容为基于JavaWeb的人力资源管理系统。主要的工作如下:

①管理员用户的登录。

②实现管理企业的员工信息。

③实现管理企业的部门信息。

④实现企业的应聘信息的管理功能。

⑤实现企业员工培训的一系列相关信息的管理。

⑥实现企业奖惩信息的管理。

⑦实现员工薪酬信息的管理。

⑧实现管理员账户信息的管理。

⑨实现安全退出系统

1.2相关技术及工具

主要工具为Java+Tomcat8.5+Mysql8.0.18。

开发平台是Ecplise。

主要运用了JSP+JavaBean+Servlet模式进行开发,还运用到了Ajax网页开发技术、Jquery库、DataTable插件、layui前端UI框架。

Ajax:Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。运用Ajax主要是考虑完成一些数据库操作时不需要刷新整个网页即可更新表格中显示的内容,它具有更好的交互性。

Jquery:JQuery是一个快速、简洁的JavaScript框架,一个优秀的JavaScript代码库。运用Jqeury主要是因为用到的Ajax、DataTable、layui等和JavaScript的地方需要它来支持,简化了JavaScript代码的编写。

DataTable:Datatable是一款Jquery表格插件。它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能,如分页、即时搜索和排序。运用DataTable主要是为了方便的显示和操作数据库中的数据,当初在搜索表格插件的时候先看到的是Bootstrap Table,后来经过了解后选择了感觉更适合本项目的DataTable,虽然刚开始学习的时候感觉无从入手,但在学会之后发现还是很方便的,功能十分强大。

layui:layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。最先用到的是layui下的模块layer,它是一个web弹层组件,因为在考虑修改和插入数据时,感觉点击按钮后跳转到一个新的页面过于繁琐,所以考虑可不可以用弹窗来做,后来经过查询看到了十分简洁的layer,试着用了下,发现效果很不错。后来接着用了layui下的一些样式和laydate等模块优化系统的页面细节和操作细节。

二、总体设计(含背景知识或基本原理与算法、或模块介绍、设

计步骤等)

2.1需求概述

对企业人力资源管理的基本信息进行管理。

管理企业的员工信息(即人事管理功能)。

实现为个人提供网络工作平台的功能。

实现企业的应聘信息的管理功能。

实现企业员工培训的一系列相关信息的管理。

员工薪酬信息管理。

系统用户信息的管理。

图2.1系统角色与用例分析模型

2.2系统业务流程分析

(1)用户输入账号、密码后登录到管理界面。

(2)单击“部门管理”导航按钮,对部门信息进行添加、查询及删除操作。

(3)单击“员工管理”导航按钮,对员工信息进行添加、修改、查询及删除操作。

(4)单击“招聘管理”导航按钮,对招聘人信息进行添加、查询、删除及录用操作。

(5)单击“培训管理”导航按钮,对培训信息进行添加、查询及删除操作。

(6)单击“奖惩管理”导航按钮,对奖惩信息进行添加、查询及删除操作。

(7)单击“薪资管理”导航按钮,对薪资信息进行添加、查询及删除操作。

(8)单击“系统管理”导航按钮,对管理员信息进行添加、查询、删除操作。

(9)单击“用户修改”按钮,对当前用户密码进行修改操作。

(10)单击“安全退出”按钮,退出当前操作系统。

2.3功能分析及系统模块设计

管理员通过输入正确的账户和密码可以登入系统。进入首页后可在首页添加所有记录。然后可以分别通过导航栏进入相应模块进行数据操作,包括数据的删除,修改,查询,还有可以对数据进行排序。系统的功能总的可以分为下图的这些模块,主要是用户登录验证和各模块的增删查改还有各种模块所有记录的排序,还有一些在不同表之间实现的操作,如在招聘表中的信息可经过录用进入员工表。

图2.2模块功能图

2.4系统架构设计

整个系统以这个架构进行搭建,用户按照这个顺序实现数据操作。

图2.3 项目架构图

四、详细设计(含主要的数据结构、程序流程图、关键代码等)

3.1数据库设计

(1)概念结构设计

图3.1 数据库的ER图

(2)物理结构设计

表结构设计

员工表

id:员工号name:员工姓名sex:性别department:部门号job:职务education:学历date:入职时间

部门表

id:部门号name:部门名date:创建时间count:部门人数remark:备注

招聘表

id:编号name:姓名sex:性别job:工作education:学历experience:工作经验

奖惩表

id:编号subject:奖惩主题type:奖惩类型money:奖惩金额date:奖惩时间name:奖惩人员

培训表

id:编号name:培训人subject:培训主题date:培训时间place:培训地点

薪酬表

id:员工编号name:员工姓名date:当前月份money:基本工资etc_money1:加班费etc_money2:工龄费etc_money3:考勤费etc_money4:旷工费etc_money5:保险费total:实发工资

管理员账户表

id:序号account:账号password:密码

3.2系统子模块流程设计

图3.3前端模块的所有文件                                                                  图3.4后端模块的所有文件

以上为所有的代码模块,还有配置servlet的web.xml在WEB-INF下。总体上管理员用户在JSP页面上通过Js交互将数据用ajax以Json的格式传输到对应的servlet的doGet方法,doGet方法中定义了一个action对象,存储操作类型,以switch case的模式获取前端传来的action参数,从而在Servlet中调用相应的Dao函数,与数据库进行连接操作,操作完成后返回数据操作结果,将相应的结果存储进Json对象中,用out对象输出Json数据通过ajax到前端。前端获得相应的数据后动态更新网页部分内容,完成一次完整的操作。

(1) 算法描述

以下已招聘模块为例,用到的文件为Dbutil.java、RecruitDao.java、Recruit.java、RecruitServlet、recruit.js、recruitPage.jsp.

① 管理员用户在前台浏览器操作rectuitPage.jsp,通过在rectuit.js中的ajax将相应的数据和操作类型action传输到RecruitServlet中。

② Recruit的doGet方法中通过switch case识别action操作类型,转到对应的处理方法中。

③ 处理方法中实例化RecruitDao对象并调用DBUtil.java提供的方法连接和操作数据库。

④ 返回的数据放入json格式的对象中,然后通过ajax将输送到recruitPage.jsp。

(2) 关键类说明

RecruitDao.java:封装了关于招聘表在数据库中增删改查的方法,可实例化对象后调用方法。

Recruit.java:一个JavaBean类,用于封装招聘表中的数据。

RecruitServlet.java:接收前台发送的操作指令,负责处理招聘表中需要进行的所有操作,同时也是在此调用Dao里面的方法。

DBUtil.java:封装了获取数据库连接和释放数据库连接的方法,可用类名加方法名直接调用。

recruit.js:在此调用DataTable表格插件,设置DataTable属性实现分页排序等功能,同时用ajax传递数据显示在表格上,调用layer弹窗组件优化用户体验。

recruitPage.jsp:招聘信息操作界面。

login.jsp:用户登录界面。

mainPage.jsp:首页,由所有表的添加构成。

其他的模块的页面都与上述相差不大,各模块大多都由这几个关键文件构成。

3.3关系技术设计及实现(这里只展现招聘模块的实现)

recruitPage.jsp(这是招聘管理界面)

1

2 pageEncoding="utf-8"%>

3

4

5

6

7

8

人力资源管理系统主页

9

10

11

12

13

14

15

16

17

18

19

java人力资源管理系统工作职责_JavaWeb课设——人力资源管理系统相关推荐

  1. C语言课设-----工资管理系统(附全部源码)

    C语言课设-----工资管理系统(附全部源码) 本系统分三个部分: 1.出售金鱼 2.数字菱形 3.工资管理系统 (ps:另外添加了登录界面 id:qwq password:123 可自己在代码里再更 ...

  2. java 课设 商品库存管理系统

    比较辛苦的java课设!写了蛮久的,战斗了好多个通宵. 下载https://download.csdn.net/download/qq_37871063/10297290 入门:JAVAFX+MVC+ ...

  3. 数据库系统课设--人事管理系统

    前言 本博客内容为课设内容,在这里仅提供思路和代码给大家参考,请不要轻易抄袭,最好理解代码并自己实现题目的要求,锻炼自己的编程和逻辑能力.另外,本次的课程设计我是用命令行操作mysql数据库,使用ID ...

  4. java课程设计总结迷宫_java课设走迷宫(含代码)#优质参考

    java课设走迷宫(含代码)#优质参考 目录1设计目的1.1课程设计的目的2总体设计2.1设计思路2.2设计方法3关键技术4程序流程5主要源代码6. 运行结果及结论7.参考文献1.设计目的1.1课程设 ...

  5. 关于C语言课设学生管理系统的编写(简单版)

    课设要求 根据课设要求,我们需要给我们的管理系统增加以下功能:1,菜单方式工作:2,录入功能:3,浏览功能:4,查询功能:5,排序功能:6,删除功能:7,修改功能:8,保存功能. 我们将用模块化的思想 ...

  6. java课程设计进程管理_Java课设总结(个人版)

    使用物理引擎JBox2D完成游戏关卡的各个物理状态模拟 根据物理引擎设计Bird,Pig,Brick等游戏中出现的可运动刚体类 建立JBox2d的工具类以实现 ###本人对这次课设的看法与吐槽 1. ...

  7. 软件工程课设-----日程管理系统

    这学期进行了软件工程课设,题目是:日程管理系统(JavaWeb),为期3周.这三周只有前两天是企业老师讲解是企业老师讲解相关的基础知识(老师讲的水平实在是不可恭维......). 多的不多说.直接进行 ...

  8. C语言课设物资管理系统,C语言课设之物资管理系统.doc

    C语言课设之物资管理系统 C语言课程设计 目 录 1.需求分析: 2.系统总框图: 3.每个模块的设计分析: 4.列出所有定义的函数及说明: 5.举例说明1.2个比较有特点的算法: 6.数据分析.完备 ...

  9. C++期末课设—图书管理系统

    期末将至,还有人为不知道如何写课设而头疼吗,这里给大家带来一个最简单基础的课设项目,图书管理系统. 功能分析 一般来说,简单的图书管理系统有以下几个功能: 1.用户管理 2.读者管理 3.图书管理 4 ...

最新文章

  1. spark编程基础--5.2键值对RDD
  2. (分类-部分)如何转载别人的文章
  3. combox qt 引起的删除失败_关于QT的QCombox的掉坑出坑
  4. Linux 下UVCamp;V4L2技术简单介绍(二)
  5. aix升级openssh_AIX5.3如何安装openssh | 学步园
  6. PMP是什么,PMP最难的是哪些内容?
  7. docker和k8s发展史--理解oci/cri/cni/docker swarm/containerd/runc/dockershim
  8. android 请求服务器抛io异常,HttpURLConnection调用getResponseCode()时抛出IOException异常...
  9. android动态壁纸文件,DIY Android手机动态壁纸APK安装文件
  10. 演化博弈matlab代码,Matlab演化博弈仿真
  11. mysql 支持嵌套查询吗_【转】MySql 嵌套查询
  12. xp连接win10工作组计算机,教你XP系统下连接win10共享的打印机的方法教程
  13. android xml未能解析文件夹,无法在styles.xml(Android Studio)中解析符号'Theme'
  14. 杂谈:人工智能发展的哲学研究
  15. 中国医科大学2021年12月《医学遗传学》作业考核试题
  16. Python批量将MP3音频转为WAV格式(附代码) | Python工具
  17. Java生成解析一维码二维码
  18. 新浪小编为你介绍留声机的古与今
  19. Android合理的使用闪屏
  20. MCC(移动国家码)和 MNC(移动网络码)

热门文章

  1. 11月15日 作业2,黑洞子弹,子弹发射位置朝着准星方向 UE4斯坦福 学习笔记
  2. 熟吃西红柿更保护心脏
  3. 杭电计算机学院绩点,杭电平均成绩绩点计算器的教程
  4. 2019开新篇,游山玩水大团建!
  5. 消费信贷业务风控英文词汇手册
  6. java输出带圆圈数字_AcWing 82. 圆圈中最后剩下的数字--Java代码
  7. 基于Java毕业设计成绩分析系统源码+系统+mysql+lw文档+部署软件
  8. 区块链革命来临,这些事儿你必须知道
  9. 大容量无线充电宝推荐,容量大的无线充电宝盘点
  10. 洛谷3961 [TJOI2013]黄金矿工