工资管理系统毕业设计论文

上传人:痛*** 文档编号:80570815 上传时间:2022-04-25 格式:DOC 页数:81 大小:2.25MB
收藏 版权申诉 举报 下载
工资管理系统毕业设计论文_第1页
第1页 / 共81页
工资管理系统毕业设计论文_第2页
第2页 / 共81页
工资管理系统毕业设计论文_第3页
第3页 / 共81页
资源描述:

《工资管理系统毕业设计论文》由会员分享,可在线阅读,更多相关《工资管理系统毕业设计论文(81页珍藏版)》请在装配图网上搜索。

1、81本科生毕业设计 题 目: 工资管理系统的设计与实现 全日制本科生毕业设计成绩评定总表姓 名学号专业信息与计算科学题 目工资管理系统的设计与实现题目来源是否来源于教师科研课题。是 ( );否( )完成期限 2014 年 9 月 2015 年 3 月指导教师杨讯职 称讲师设 计基本情况设计说明 10440 (字);图纸 25 (张);附件: 需求分析、概要设计、数据库设计、详细设计、功能模块测试 学生总成绩设计成绩(百分制)指导教师评分 ;评阅教师评分 ;答辩评分 折合比例指导教师评分40;评阅教师评分30;答辩评分30实得成绩(折合分)指导教师评分 ;评阅教师评分 ;答辩评分 ;总分: ;总

2、分人: 总评等级毕业设计总评等级: 学院分管领导(签字): 学院(签章) 年 月 日全日制本科生毕业设计成绩评定表姓 名学号专业题 目指导教师职 称指导教师意见(从学生的态度、设计作品情况及毕业设计说明写作情况等方面表述,是否达到本科毕业设计要求,是否同意答辩。内容统一楷体小4号,1.5倍行距打印,由教师本人手写签名)指导教师评分(百分制): 指导教师(签字): 全日制本科生毕业设计成绩评定表姓 名刘建涛学号20110513197专业信息与计算科学题 目工资管理系统的设计与实现评阅教师职 称评阅教师意见(从设计选题、设计思路、作品质量,设计说明等方面表述,是否达到本科毕业设计要求,是否同意提交

3、答辩。内容统一楷体小4号,1.5倍行距打印,由教师本人手写签名)评阅教师评分(百分制): 评阅教师(签字): 全日制本科生毕业设计成绩评定表姓名刘建涛学号20110513197专业信息与计算科学题目工资管理系统的设计与实现答辩时间 2015 年 2 月 2 日答辩地点大溪沟答辩人数4答辩小组组长(职称)刘建涛(主程序员)答辩记录人邓杨(美工)答辩小组成员(职称)黄涛(测试员)、蒋文明(文档整理员)、邓杨(美工)答辩小组意见(主要从学生答辩制作的PPT、语言表达、逻辑性,对提问的理解及回答,是否通过答辩等方面表述)答辩成绩(百分制): 答辩小组组长(签字): 答辩记录 (主要记录提问及回答问题,

4、提问不少于3个)姓名刘建涛学号20110513197专业信息与计算科学题目工资管理系统设计与实现设计背景与目标本次开发是由安博教育和学校发起,学生自主选题的一次毕业设计。考虑到市面上的人事管理系统与工资管理系统都是针对个别公司开发的。我们有意利用ssh技术开发一种通用的,管理权限、部门、以及工资发放形式可以根据不同的公司自行分配和修改、易于维护、易于适应变更、可重用性良好的一个工资管理系统的设计与实现。设计思路、技术路线 在和指导老师多次交流后,确定实现方案的要点和工作计划。本系统的实现的主要功能有: 1)对系统进行管理。用户的添加修改以及权限授予都是管理员操作的 2) 对单位人员的变动进行处

5、理。一个单位的职工不会是一成不变的,总是在不断的变化:有调出、有调入、也有职工在本单位内部调动。因此,设计系统是应考虑到这些情况。 3)对工资账户的创建,修改,删除。 4) 对职工的工资进行计算、修改。能对各职工的工资进行计算,即计算应发金额、应扣金额及实发金额等。 5) 查询统计功能。要求即可以单项查询,比如查看某个职工的工资情况等;也可以查询全部。 6)员工个人信息的查询,修改与管理。 7) 报表打印功能。每月发放工资时,要求能够打印本月的工资表、随工资发给每个职工的工资条以及工资统计表。设计进度计划 正如研究任何其它软件项目一样,我做的毕业设计也经历了从选题,调研,熟悉开发环境,实验关键

6、技术,查找类似的相关系统的资料;系统概要设计,数据库结构设计,功能模块开发,功能模块测试,系统调试和系统试运行和修改。如下1.2-1开发计划流程图: 选题调查研究资料查询开发环境熟悉学习ssh技术概要设计数据库的设计功能模块开发和详细设计功能模块测试系统调试和修改需求分析 图1.2-1开发计划流程图 指导教师意见 指导教师(签名): 年 月 日全日制本科生毕业设计开题报告全日制本科生毕业设计教师指导记录姓 名刘建涛学号20110513197专业信息与计算科学暂定题目工资管理系统的设计与实现最终题目工资管理系统的设计与实现1、选题指导指导时间: 2014 年 9 月25 日2、Strusts2配

7、置指导指导时间: 2014 年 10 月 10 日3、权限分配指导指导时间: 2014 年 10 月 20 日4、中文乱码指导指导时间: 2014 年 11 月 31 日指导教师(签名): 工资管理系统 框架搭建、用户登录、系统管理、报表管理 数学学院 信息与计算科学专业 2011级 刘建涛 指导教师 杨讯 摘 要:在本工资管理系统中,涉及到最多的就是对数据的增删改查,当然在真是的系统中,对于这些操作要控制在严格的权限中,使用struts2hibernatespring实现了简单的CRUD操作。在mvc与三层架构之间我们选择了三层架构,当然他们本质相同。这里采用三层架构,也就是数据访问层、业务

8、逻辑层、表示层。这样有利于分工和标准化。增加代码的复用性。但由于业务无法直接访问数据库必须通过中间层完成。反映时间间隔用操作是否成功界面代替。我在这里主要介绍:登录模块、系统管理模块、报表管理模块、退出登录、中文乱码的解决、如何在Strusts2中实现CRUD的权限分配。关键词:数据库;工资;工资管理;登录模块;系统管理模块;报表管理模块;退出登录;中文乱码的解决;如何在Strusts2中实现CRUD的权限分配。 Abstract:In the salary management system, involving the most is the data additions and dele

9、tions, of course in the system really is, for these operations to be controlled in strict access, the use of Struts2 + hibernate + spring to achieve a simple CRUD operation. Between the MVC and the three layer architecture we choose three layers architecture, and of course they were essentially the

10、same.Here uses three layer structures, namely the data access layer, business logic layer, presentation layer. This is conducive to specialization and standardization. To increase the reusability of the code. But because of the business can not directly access the database must be completed through

11、the middle layer. Reflect the time interval is replaced by the success of an operation interface. I mainly introduced here: the login module, system management module, statements management module, log out, solve Chinese garbled, how to realize the authority distribution of CRUD in Strusts2. Key wor

12、ds:Database; salary; salary management; login module; system management module; report management module; exit; solve Chinese garbled; how to realize the authority distribution of CRUD in Strusts2. 目录 1 绪论151.1 背景151.2 开发思路和计划152 系统需求162.1 范围162.2 定义162.3功能需求173 数据库设计173.1数据流程图173.2数据字典分析184 设计说明214

13、.1系统概述214.2数据源的配置214.3 Spring配置264.4 Struts2配置265 模块一登录模块275.1 登录模块以及响应基础类BaseAction类的配置275.2 对应类之间的调用295.3 部分算法设计305.4 接口315.5 子功能模块的测试326 模块二系统模块356.1 功能模块一部门管理模块实现356.1.1 Strusts的配置356.1.2配置DepartmentAction继承 BaseAction366.1.2 对应类之间的调用376.1.3 部分算法设计376.1.4 接口396.1.5 子功能模块的测试406.2 功能模块二角色管理模块实现426

14、.2.1 Strusts的配置426.2.2配置RoleAction和AclAction继承 BaseAction446.2.2 对应类之间的调用446.2.3 部分算法设计476.2.4 接口496.2.5 子功能模块的测试506.3 功能模块三用户管理模块实现536.3.1 Strusts的配置536.3.2配置UserAction 继承 BaseAction546.3.2 对应类之间的调用556.3.3 部分算法设计566.3.4 接口596.3.5 子功能模块的测试597 模块七报表管理模块627.1 功能模块一员工报表管理模块实现627.1.1 Strusts的配置627.1.2 P

15、ersonReportAction继承 BaseAction637.1.2 对应类之间的调用647.1.3 部分算法设计647.1.4 接口687.1.5 子功能模块的测试687.2 功能模块一工资报表管理模块实现707.2.1 Strusts的配置707.2.2 PersonReportAction继承 BaseAction717.2.2 对应类之间的调用727.2.3 部分算法设计727.2.4 接口737.2.5 子功能模块的测试748 权限控制技术:769 技术控制(参考网址:7910 参考文献:82 1 绪论 1.1 背景 本次开发是由安博教育和学校发起,学生自主选题的一次毕业设计。

16、考虑到市面上的人事管理系统与工资管理系统都是针对个别公司开发的。我们有意开发一种通用的,管理权限、部门、以及工资发放形式可以根据不同的公司自行分配和修改的工资管理系统。随着现代信息技术和管理理论,建立企业管理信息系统是当今社会的重要趋势。“用信息化带动工业化”的指导思想的提出更是中国走向互联网时代的口号。对企业而言,全面开发和应用计算机管理信息系统就是近期不能回避的问题。在企业管理中,人力资源是企业最宝贵的资源,也是企业的“生命线”,因此人事管理是企业的计算机管理信息系统重要组成部分。而工资管理又是人力资源管理的重中之重。实行电子化的工资管理,可以让人力资源管理人员从繁重琐碎的案头工作解脱出来

17、,去完成更重要的工作。工资管理信息系统的实现可以减轻比较繁琐的手工工资管理。 1.2 开发思路和计划 在和指导老师多次交流后,确定实现方案的要点和工作计划。本系统的实现的主要功能有: (1)对系统进行管理。用户的添加修改以及权限授予都是管理员操作的 (2) 对单位人员的变动进行处理。一个单位的职工不会是一成不变的,总是在不断的变化:有调出、有调入、也有职工在本单位内部调动。因此,设计系统是应考虑到这些情况。 (3)对工资账户的创建,修改,删除。 (4) 对职工的工资进行计算、修改。能对各职工的工资进行计算,即计算应发金额、应扣金额及实发金额等。 (5) 查询统计功能。要求即可以单项查询,比如查

18、看某个职工的工资情况等;也可以查询全部。 (6)员工个人信息的查询,修改与管理。 (7) 报表打印功能。每月发放工资时,要求能够打印本月的工资表、随工资发给每个职工的工资条以及工资统计表。 和研究任何其它软件项目一样,我做的毕业设计也经历了从选题,调研,熟悉开发环境,实验关键技术,查找类似的相关系统的资料;系统概要设计,数据库结构设计,功能模块开发,功能模块测试,系统调试和系统试运行和修改。如下1.2-1开发计划流程图:选题调查研究资料查询开发环境熟悉学习ssh技术概要设计数据库的设计功能模块开发和详细设计功能模块测试系统调试和修改需求分析 图1.2-1开发计划流程图2 系统需求2.1 范围本

19、次开发的系统为工资管理系统。用于对小型企业的职工基本信息和工资信息的管理。包括系统管理(部门管理、角色管理、用户管理) 、报表管理(员工报表管理、工资报表管理)。2.2 定义GZGLXTGong Zi Guan Li Xi Tong工资管理系统)的缩写。FSFinance Staff(财务人员)的缩写。NFS Nor Finance Staff(非财务人员)的缩写。JSPJava Server Page(Java服务器页面)的缩写,一个脚本化的语言。UMLJava Server Page(Java服务器页面)的缩写,一个脚本化的语言。2.3功能需求1)财务管理端:系统管理、人事管理、工资账户管

20、理、工资管理、请假管理、个人信息管理、报表管理2)系统管理:1、部门管理,超级管理员具有系统操作的全部权限,可对部门进行添加(需输入部门名称、部门描述),可对已存在部门进行修改和删除。2、角色管理,可以添加角色(需输入角色名称),可对已存在的角色进行授权,修改其角色名称和删除。3、用户管理,可根据员工编号对员工(姓名、员工编号、职务、所属部门、账号)进行查询,也可以对存在的员工进行分配账号,删除账号和分配角色。分配账号时,需输入账号和密码。分配角色时,有以下角色可供选择(1、超级管理员、2、普通用户、3、普通员工、4、部门经理、5、人力资源经理、6、财务人员、7、财务经理、8、审计员、9、总经

21、理、10、项目经理),需根据分配的角色选择相应的优先级。3)报表管理:1、员工报表管理,可以选择部门,再将所选部门的员工信息报表生成Excel报表(需选择报表文件存放路径)打印出来。2、工资报表管理,可根据日期查询出某个时间段的工资单报表,生成Excel报表(需选择报表文件存放路径)打印出来。3 数据库设计3.1数据流程图部门管理用户管理角色管理系统管理1)系统管理 图3-1系统管理流程图2)报表管理报表管理员工报表管理工资报表管理 图3-2报表流程图3.2数据字典分析1) 模块管理表(module)-主要用来管理模块的排列和模块的访问路径。字段名称数据类型字段大小是否主键说明idint11Y

22、模块编号namevarchar500N模块名称snvarchar500N系统标识urlvarchar500N访问路径orderNovarchar500N优先级标识parentIdint11N父亲模块编号2) 用户表(user)-登录系统的用户定义字段名称数据类型字段大小是否主键说明idint11Y用户idusernamevarchar500N用户名称passwordvarchar500N密码personIdint11N员工idcreateTimedatetimeN/YN创建时间3) 角色类型表(role)-用户访问系统的权限通过用户角色所授予的权限获得。字段名称数据类型字段大小是否主键说明id

23、int11Y角色idnamevarchar500N角色类型id4) 用户角色(user_role)-该表通过用户控制角色和权限优先级 字段名称数据类型字段大小是否主键说明idint11Y用户角色iduserIdvarchar500N用户idroleIdvarchar500N角色类型idorderNovarchar500N优先级标识5) 访问控制表(acl)-访问控制表是应用层在服务器接口的指令列表,这些指令列表通过数字标识确定优先级和告诉服务器允许访问的模块。字段名称数据类型字段大小是否主键说明idint11Y权限idprincipalTypevarchar500N授权角色类型principa

24、lSnint11N权限优先级标识resourceSnint11N授权模块序号aclStateint11N授权状态aclTriStateint11N启用状态6) 员工个人信息报表设计所涉及的表(person)序号姓名性别年龄员工编号职务电话部门住址1超级管理员男10001总公司字段名称数据类型字段大小是否主键说明idint11Y员工idnamevarchar500N员工姓名sexvarchar500N性别ageint11N年龄addressvarchar500N地址phoneint11N电话numberint11N员工编号dutyint11N职务departmentidint11N部门编号gro

25、upIdint11N工资组编号descriptiontextY/NN个人简历createTimedatetimeY/NN入职时间7)员工工资报表设计所涉及的表(payroll)序号姓名员工编号职务部门基本工资增加扣除总金额发薪时间1超级管理员10001总公司7400500079002015-01-15字段名称数据类型字段大小是否主键说明idint11Y序号personIdint11N员工idgroupIdint11N所属工资组号increaseint11N额外奖金reduceint11N扣除费用statusvarchar500N审批状态remarkvarchar500N备注baseint11N

26、应发总薪资opinionvarchar500N审批意见totalint11N实发总薪资payTimedatetimeY/NN发薪资时间createTimedatetimeY/NN添加工资单时间4 设计说明4.1系统概述 在本系统中,涉及到很多的就是对数据的增删改查,当然在系统中最重要的部分,是对于这些操作要控制在严格的权限中。(应用层)我们利用struts2自身的IoC(反向控制)容器以struts2配置的形式来管理核心组件规范了开发,方便组员分配任务降低了耦合(持久层)为了防止sql注入式攻击和提高效率(例如多表查询时,通过B表查询A表的值,只需在表B的映射类中变量的类型是表A的映射类),同

27、时延迟装载机制使得数据只有在JSP页面调用的时候才会查询处理,并且Hibernate与数据库类型无关,在分页技术上,没有繁杂的sql语句只需query.setFirstResult(First);query.setMaxResults(PageSize);所以,我们选择了hibernate操作数据库(业务层)spring充当了管理容器的角色。实现了简单的CRUD操作。在mvc与三层架构之间我们选择了三层架构,当然他们本质相同。这里采用三层架构,也就是数据访问层、业务逻辑层、表示层。这样有利于分工和标准化。增加代码的复用性。但由于业务无法直接访问数据库必须通过中间层完成。反映时间间隔用操作是否成

28、功界面代替。4.2数据源的配置 为了防止中文乱码的产生我们将整个项目改为UTF-8,数据库设为UTF-8,由于HTML页面参数以浏览器的编码方式发送JSP页面以JSP定义的编码方式被编译被JSP引擎编译为*.class文件在JSP容器中运行传递给Mysql数据库以数据库的编码方式读取数据并存储读取Mysql以数据库的编码方式读取JSP页面接受后在浏览器中显示(以浏览器编码方式解码显示);我们需要解决问题有:1) 所有*.jsp的头文件设置为以至于在浏览器中直接访问此页面时无乱码。数据库设置的是全部使用UTF-8编码,乱码问题归根到底是字符集的问题,查看mysql字符集如下:mysql show

29、 variables like character%;+-+-+| Variable_name | Value |+-+-+| character_set_client | latin1 | character_set_connection | latin1 | character_set_database | utf8 | character_set_filesystem | binary | character_set_results | latin1 | character_set_server | latin1 | character_set_system | utf8 | chara

30、cter_sets_dir | C:Program FilesMySQLMySQL Server 5.5sharecharsets |+-+-+修改 my.ini(MySQL Server Instance Configuration 文件)# CLIENT SECTION client port=3306 MySQL default-character-set=utf-8 # SERVER SECTION MySQLd default-character-set=utf-8 (2)修改data目录中相应数据库目录下的db.opt配置文件default-character-set=utf-8

31、default-collation=utf8_general_ci 修改后查看mysql字符集如下:mysql show variables like character%;+-+-+| Variable_name | Value |+-+-+| character_set_client | utf8 | character_set_connection | utf8 | character_set_database | utf8 | character_set_filesystem | binary | character_set_results | utf8 | character_set

32、_server | utf8 | character_set_system | utf8 | character_sets_dir | C:Program FilesMySQLMySQL Server 5.5sharecharsets |+-+-+8 rows in set (0.00 sec)(3)数据库连接串中指定字符集URL=jdbc:MySQL:/yourIP/college?user=root&password=123&useUnicode=true&characterEncoding=utf-8 (4)在创建数据库时指定字符集create database gzglxt CHARA

33、CTER SET utf-8; 根据数据库设计建表,使用Mysql界面软件SQLyog-8.7.1。并做POJO持久化的数据库的映射对象,并实现序列化。以便扩展,当然而在Struts2中的Action由于可以不继承任何的接口,所以在这种情况下Action是POJO,但是Struts2中的Action也可以继承ActionSupport类就不再属于POJO了。POJO里面是可以包含业务逻辑处理和持久化逻辑,也可以包含类似与JavaBean属性和对属性访问的set和get方法的。对hibernate.cfg.xml做如下配置:!DOCTYPE hibernate-configuration PUB

34、LIC -/Hibernate/Hibernate Configuration DTD 3.0/EN root123jdbc:mysql:/127.0.0.1:3306/gzglxtorg.hibernate.dialect.MySQLDialectmysqlcom.mysql.jdbc.Drivertrue30530001002) Hibernate与POJO对像的交互流程图如下:数据库Hibernate业务逻辑层业务逻辑层表示层JDBC 图4-2Hibernate与POJO对像的交互流程图图4.3 Spring配置Spring作为业务层,结合hibernateFilter文件处理,hibe

35、rnateFilterorg.springframework.orm.hibernate3.support.OpenSessionInViewFilterhibernateFilter/*4.4 Struts2配置 为了简化Struts2的配置,是编程更容易模块化进行,可以通过对各个Action对应的xml文件的调度,对各个Action进行调度。 /index.jsp 5 模块一登录模块5.1 登录模块以及响应基础类BaseAction类的配置 1)运用strusts2开发需要一个动作对应到一个Action,但这些Action的有些属性和方法是相同的,本系统中我们用到了调用数据库对应模块的路径

36、实现分层调用,该类继承 ActionSupport并重载(Override)的execute()方法。 把客户端请求request和服务端响应response,session会话的处理在Baseaction中封装。并利用Java反射技术对ModelDriven实现抽象BaseAction。代码如下:public abstract class BaseAction extends ActionSupport implements ServletRequestAware,ServletResponseAware, SessionAware, ModelDriven, Preparable priv

37、ate static final long serialVersionUID = 6813377869976477588L;protected HttpServletRequest request;/客户端请求protected HttpServletResponse response;/服务端响应protected Map session;/会话protected String notice;/提示信息/前提public void prepare() throws Exception /执行 重写方法Overridepublic String execute() throws Excepti

38、on return SUCCESS; /响应模块public Object getModel() return null; /设置客户端请求方法public void setServletRequest(HttpServletRequest request) this.request = request;/设置服务端相应方法public void setServletResponse(HttpServletResponse response) this.response = response;/设置Session会话方法public void setSession(Map session) t

39、his.session = session;/得到提示信息的方法public String getNotice() return notice; /设置提示信息的方法public void setNotice(String notice) this.notice = notice; /sql 中isnull函数,使用指定的替换值替换 NULLpublic boolean isNull(String value)return (value = null | .equals(value);2)配置LoginAction 继承 BaseAction 通过调用UserService 接口中的 logi

40、n(String username, String password)方法用session.put(login, user); result = SUCCESS;实现数据库user表的映射。登录模块对应的流程图5-1:开始输入用户名及密码登录验证打印“用户名或密码错误”N进入系统 结束 图5-1系统登录流程图5.2 对应类之间的调用1)用户登录时类间的调用LoginAction.class输入用户名及密码验证登陆成功进入pay_main.jsp页面登录页面index.jsplogin() 方法findModules() 图5-2用户登录时类间的调用流程图2)登录页面index.jsp获取表单中

41、的用户名和密码函数function submitForm()document.getElementById(loginForm).submit();3) 主页面pay_main.jsp包含:top.jsp顶部框架、left.jsp左侧模块显示框架、内容body、底部footer.jsp框架部分代码如下: 5.3 部分算法设计1) 登录方法InputConfig(resultName = loginInput)public String login() throws Exception User user = userService.login(username, password);String result = ;if(user != null)session.put(login, user);result = SUCCESS;elsesession.put(notice, 账号或密码不正确);result = LOGIN;return result;public String logout() throws Exception session.clear();return logout;/验证public void validateLogin() if(isNull(username)addFieldError(userna

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!