赞
踩
目录
工资管理系统
工资管理系统:工资管理系统用于每个月员工实发工资的计算,计算的项目包括基本工资、奖金、福利、 津贴等。
数据库系统课程设计是为了配合学习数据库系统原理及应用开发而设置的,是计算机科学与技术、大数据、信息安全、物联网工程、软件工程、智能制造等专业集中实践的教学环节,是将关系数据库理论知识转化为解决实际问题能力的重要环节。数据库系统课程设计目的在于加深对关系数据库理论知识的理解,通过使用具体的 DBMS,掌握一种实际的数据库管理系统并掌握其操作技术,熟练掌握使用数据库前端开发工具(如 VB、C++、Java、JSP、Delphi、PowerBuilder 等),进一步提高同学们运用数据库技术解决实际问题的能力。
*基本原理*****:****本课设用到有Java,JDBC操作,数据库的增删改查,数据库系统的设计等方面的基本知识。用Java的GUI显示页面,将其提供给用户使用,通过JDBC连接数据库,使得用户对界面的操作转化成对数据库的表的操作,数据库将数据进行存储,要用到的时候就从数据库里面读出。本系统我将系统分成了三个大的模块,一个是GUI界面展示区,一个是对传输的参数进行封装的Model区,还有一个是将界面上的操作转化成对数据库界面操作的Dao区。
****模块介绍:****本系统分为了两个大的模块,分别为员工的信息资料工资模块,管理员的管理模块,管理员模块又分成了九个小小的模块,分别是员工基本工资设置、奖金设置、津贴福利设置、扣发设置、工资设置表、其他工资项目表、月度考勤统计表、部门信息表、月度工资统计表。员工和管理员的主功能区如下图所示。
设计步骤:
1、以指导书中的业务描述为基础,通过检索资料与图书阅读调查与分析系统的业务需求,明确系统的功能与非功能需求。
2、通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。
3、将E-R图转化成关系模型,根据模型,建立数据里面的表。
4、进行系统的实现,实现用户操作,将用户操作转化成对数据库数据的增删改查。
本系统主要有以下几项功能:
Ø 员工基本工资的设定。
Ø 奖金以及福利补贴的设置。
Ø 实发工资计算公式的调整。
Ø 根据出勤统计结果计算本月各项实际余额。
Ø 输出工资报表。
根据系统功能要求,可以将系统分解成几个模块来分别设计
应用程序界面,如图 1 所示。
图1工资管理系统功能模块图
工资管理系统的输出结果是对员工工作的一个评价。本系统中,计算工资的基本依据是考勤管理系统的统计结果。同时,在统计和查询时需要用到人事管理系统中员工信息和部门信息。
工资管理系统的数据流程如图 2 所示。
图 2、工资管理系统数据流程图
根据上面的数据流程图,可以列出以下系统所需的数据项和数据结构:
l 员工工资设置;员工号、工资(元小时)。
l 福利津贴扣发:记录编号、年月、员工号、类别、项目名称、金额、说明。
l 月度工资统计:记录编号、年月、员工号、基本工资、奖金、其他应发明细、其他
应发总额、扣发明细、扣发总额、实发金额。
所需的外部数据支持:
l 人员信息:员工号、密码、权限、姓名、部门、当前状态等。
l 部门设置:部门编号、名称等。
l 月度考勤统计:记录号、员工、年月、各类统计信息。
图 3 是本系统所需数据的 E-R 模型图。
图 3、工资管理系统的 E-R 图
本系统总共涉及 7 个数据表。其中 3 个表用于保存员工信息、部门设置和考勤统计,可以使用人事管理系统和员工考勤系统中建立的数据表。另外需要建立 3 个数据表用于保存工 资设置、福利津贴扣发记录和工资统计结果。另外福利津贴扣发记录中,需要用到 1 个记录 类别代码表,用于标识记录数据福利津贴还是扣发项。这 7 个需要建立的数据表结构如下所示。
PERSON员工个人信息表 | |||
---|---|---|---|
字段名 | 数据类型 | 是否可空 | 说明 |
ID | char | 否 | 员工号(主关键字) |
PASSWD | char | 否 | 密码 |
AUTHORITY | char | 否 | 用户权限 |
NAME | char | 否 | 姓名 |
SEX | char | 否 | 性别 |
BIRTHDAY | char | 是 | 生日 |
DEPARTMENT | char | 否 | 所在部门 |
JOB | char | 否 | 职务 |
EDU_LEVEL | char | 否 | 受教育程度 |
SPECIATY | char | 否 | 专业技能 |
ADDRESS | char | 否 | 家庭住址 |
TEL | char | 否 | 联系电话 |
char | 否 | 电子信箱 | |
STATE | char | 否 | 当前状态(T-员工,F-非员工) |
REMARK | char | 是 | 备注 |
DEPARTMENT部门信息表 | |||
字段名 | 数据类型 | 是否可空 | 说明 |
ID | int | 否 | 部门编号 |
NAME | char | 否 | 部门名称 |
MANAGER | char | 否 | 部门经理 |
INTRO | char | 是 | 简介 |
ATTENDANCE_STATE 月度考勤统计表 | |||
字段名 | 数据类型 | 是否可空 | 说明 |
AR_MONTH | int | 否 | 统计月份 |
PERSON | char | 否 | 员工号 |
WORK_HOUR | int | 否 | 累计工作时间 |
OVER_HOUR | int | 否 | 累计加班时间 |
LEAVE_HDAY | int | 否 | 累计请假时间(半天) |
ERRAND_HADY | int | 否 | 累计出差时间(半天) |
LATE_TIMES | int | 否 | 迟到次数 |
EARLY_TIMES | int | 否 | 早退次数 |
ABSENT_TIMES | int | 否 | 旷工次数 |
SALAY_OTHER其他工资项目表 | |||
字段名 | 数据类型 | 是否可空 | 说明 |
ID | int | 否 | 记录编号(主关键字) |
YEAR_MONTH | int | 否 | 年月 |
PERSON | char | 否 | 员工号 |
TYPE | int | 否 | 类型 |
NAME | char | 否 | 名称 |
MONEY | char | 否 | 金额 |
DESCRIPTION | char | 是 | 具体描述 |
SALARY月度工资统计表 | |||
字段名 | 数据类型 | 是否可空 | 说明 |
ID | int | 否 | 记录编号(主关键字) |
YEARMONTH | int | 否 | 年月 |
PERSON | char | 否 | 员工号 |
BASIC | int | 否 | 基本工资 |
BONUS | int | 否 | 奖金 |
ADD_DETAIL | char | 否 | 其他应发明细表 |
ADD_TOTAIL | int | 否 | 其他应发总额 |
SUB_DETAIL | char | 否 | 扣发明细表 |
SUB_TOTAL | int | 否 | 扣发总额 |
TOTAL | int | 否 | 实发金额 |
SALARY_SET工资设置表 | |||
字段名 | 数据类型 | 是否可空 | 说明 |
PERSON | char | 否 | 员工号(主关键字) |
SALARY | int | 否 | 工资(元/小时) |
TYPE类型代码表 | |||
字段名 | 数据类型 | 是否可空 | 说明 |
CODE | int | 否 | 代码(主关键字) |
DESCRIPTION | char | 是 | 说明 |
2.4.1 数据库的建立
建立数据库所用到的sql语句如下:
2.4.2 初始数据的输入
这里我先放入数据在信息表、出勤表、部门信息表、类型代码表等表中。具体情况如下图所示。
1、员工基本工资的设定。
2、奖金以及福利补贴的设置。
3、实发工资计算公式的调整。
4、根据出勤统计结果计算本月各项实际余额。
5、输出工资报表。
完成数据库创建和功能说明以后,我可以进行下一步工作,即设计用户界面。我把工资管理系统的窗体分成一下7个主要部分。附加一些部门信息查询界面等等。
1、管理员主窗口设计
2、员工基本工资设定界面设计
3、奖金以及福利补贴设置界面设计
4、实发工资计算公式调整界面设计
5、计算本月各项实际余额界面设计
6、工资报表设计
7、员工个人信息以及工资界面
所有界面展示图如下图:
对于界面展示效果设计,这里以员工页面进行说明。
这里是构造一个类继承JFame类,通过.setBounds()方法设置窗口的位置大小,通过.setVisible()设置窗口的可见性,设置为true为可见用.setDefaultCloseOperation()方法设置窗口的关闭事件,否则点击窗口的关闭按钮并不能关闭窗口。然后使用.setResizable()方法设置窗口大小的不可变性,使用.setLayout()方法设置窗口的布局,这里由于我用的是觉得定位,就将参数设置为null。到这里一个可以展示的窗口就已经设置完成,接下来就是往窗口里面添加不同的组件,给不同的组件添加不同的监听事件。
对于此次系统我使用的都是一些简单的组件例如,Jtable、Jbutton、JTextFiled等等,通过使用组件本身自带的方法设置组件的属性,样式,从而满足需求,对于美观没有做较高的要求。
*1**、员工基本工资设定的实现。*
2、
*奖金以及福利补贴设置的实现。*
员工的福利津贴全部设置在salary表的其他总和里面,设置了津贴和福利之后,其他工资表里面的项目也会跟着一起改变。改变的原理是,在原有基础上将后面设置的津贴福利往后面添加。奖金的设置界面有一个显示员工出勤数据的表格,作为奖金设置的依据,对于津贴福利,没有给出具体的发放依据,因此界面设计的比较简单。
3、*实发工资计算公式调整的实现。*
对于实发工资计算公式的调整,我这里采用的是对于工资有个基本工资之外,还有个工资项目是根据员工的工作时长乘以工作一个小时的工资得到,在工资报表中也属于其他应发工资那一栏。对于不同员工不同职务,不同人工作一个小时的工资不一样。然后其他应发工资的求和也和福利津贴是一样的,设置之后,在原来基础上再加上新设置的。由于代码和上一步代码差别不大,这里就不再展示了。
4、*根据出勤统计结果计算本月各项实际余额的实现。*
界面设置的比较简单,对于所有员工都是一样的规矩,点击确认的时候,会自动计算应该扣除的工资,将扣除的工资写入其他工资项目表,和总的工资报表里面的其他扣除工资的总和。具体代码实现如下:
*5**、输出工资报表的实现。*
输出工资报表,我就是放了一个简单的表,然后可以通过员工的编号和月份进行查询员工某月的工资报告,对于总的工资的计算我是放在该页面,只有打开该页面,员工总工资的计算才会发生,计算结果才会写入数据库,核心代码如下:
本系统能实现工资发放等问题,能实现基本工资的设置,计算公式的调整,工资报表,其他工资设置,其他工资项目统计表等问题。员工也能实现工资系统里面个人部分信息的修改,密码修改等等。系统也能对登录的人员进行身份的认定,放置非管理员使用管理员权限。该系统的功能分布比较细,没有将所有功能杂糅在一个界面里面,造成视觉疲劳。使用的组件比较简单常用,出错的概率小。
对于结果的展示都是选择直接从数据库里面读出数据,不是中间数据的展示,避免了数据的丢失等问题。
对于查询操作,这里展示两张查询结果图。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。