文档库 最新最全的文档下载
当前位置:文档库 › 工资管理系统

工资管理系统

第一章系统概述

系统名称:基于B/S的工资管理系统

系统目标:对于企、事业单位的工资发放来说,不需要太大型的数据库系统。只需要一个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位三方对数据的管理及需求的系统。我的目标就是在于利用数据库开发软件开发一个功能实用,用户操作方便,简单明了的工资管理程序

1.1课题来源

随着计算机技术的飞速发展计算机在企业管理中应用的普及利用计算机实现企业人事管理势在必行。对于大中型企业来说利用计算机支持企业高效率完成劳动人事管理的日常事务是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。不同的企业具有不同的人事管理制度这就决定了不同的企业需要不同的人事管理系统。

1.2设计目的及内容

1.2.1设计目的

目前市面上流行的人事管理系统不少。但是,对于企、事业单位的人事管理系统来说,不需要大型的数据库系统。只需要一个操作方便功能实用能满足本中心对数据的管理及需求的系统。我们的目标就是在于开发一个功能实用、操作方便、简单明了的人事管理系统。

1.2.2设计内容

能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各

种条件进行查询、能维护管理公司员工每个月的工资信息、在操作上能完成诸如添加、修改删除及按各种条件进行查询,还能管理员工的请假信息。

1.3技术概述

1.3.1JAVA语言简介

Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。在早期Java比较多的用在浏览器上、插入到网页中(即是Java Applet程序)成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着Java Servlet的推出,Java 在电子商务方面开始崭露头角,最新的JSP(Java Server Page)技术的推出,更是让Java成为基于Web的应用程序的首选开发工具目前的Java技术已成为所有大型电子商务项目的必然选择。

1.3.2JAVA语言的网络运用

Java程序可以获取网络上结点的图象、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。例如Java程序可以每隔一定时间读取某结点提供的最新数据并以图表的形式显示出来。在编程处理上,一般先生成一个URL 类型的对象,然后用Java中相应的方法获取该对象所代表的资源,Java Applet 可以直接从网络上结点获取图象并显示出来。目前,Java更广泛的应用是在服务器端,这是本文研究的主要话题,下文提及的Servlet、JSP等技术都是Java 在服务器端应用的具体形式。

1.3.3JSP基础Servlet技术

Java Servlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为

了避免误会本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意

可以称之为“小服务程序”。Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用Java Servlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API 方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性Servlet也是平台无关的,实际上,只要符合Java Servlet规范,Servlet是完全平台无关且是Web服务器无关的。由于Java Servlet内部是以线程方式提供服务不必对于每个请求都启动一个进程并且利用多线程机制可以同时为多个请求服务,因此Java Servlet效率非常高。但Java Servlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用输出HTML语句来实现动态网页的,如果用Java Servlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么SUN还要推出Java Server Pages的原因。

1.3.4JaveBeans技术

什么是JavaBeans?JavaBeans就是Java的可重用组件技术。ASP通过COM 来扩充复杂的功能,如文件上载、发送email以及将业务处理或复杂计算分离出来成为独立可重复利用的模块。JSP通过JavaBeans实现了同样的功能扩充。JSP 对于在Web应用中集成JavaBeans组件提供了完善的支持。这种支持不仅能缩短开发时间还可以直接利用经测试和可信任的已有组件,避免了重复开发也为JSP 应用带来了更多的可伸缩性。JavaBeans组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。在实际的JSP开发过程中读者将会发现,和传统的ASP或PHP页面相比,JSP页面将会是非常简洁的,由于JavaBeans开发起来简单,又可以利用Java语言的强大功能许多动态页面处理过程实际上被封装到了JavaBeans中。

本系统概述了工资管理的需求、整体结构、基本功能和数据库结构。内容包括:对普通工资管理业务中存在的一些问题的分析,对工资的数据进行查询、统计、报表打印等基本功能的分析设计和实现。重点介绍了工资管理信息系统中

数据查询统计模块的分析和设计以及如何利用本系统的开发解决以往工资管理中存在的需要人工管理,进行人工统计,对工资的统计和查询都很单一、不能综合处理业务、工作效率低等问题。

第二章系统分析

2.1可行性分析

2.1.1经济可行性分析

工资管理作为企业内部财务管理的一个重要方面,已逐步被企业管理者所重视,由于企业的规模的不断扩,大企业职工人数的不断增多,使工资发放成为企业管理中的一个重课题;再加上每一位职工的具体实际情况相同,规章制度的不完善,增大了个人工资发放难度;每个人每月的工资都要通过工资制度的审核,这大大增加了管理人员的工作量,通过计算机管理系统对员工工资进行全面的统计与管理,全面解决了工资管理过程中所遇到的各种问题,并且克服了传统管理方式中的易出错等问题,提高了企业管理的效率,并且这些信息都具有极高的安

全性和保密性。

2.1.2技术可行性分析

技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。工资管理系统的工作主要是在企业和员工之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件

2.1.3社会可行性分析

社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新使人们完全有可能也有能力采用这样先进的管理技术。在某种意义上,信息与科技在现代化建设中显现出越来越重要的地位。管理方面的信息化与科学化,已成为现代化生活水平步入高台阶的重要标志。好的管理系统对提高人们的生活效益是极为有益的

2.2功能需求

1、系统功能的基本要求:

(1)员工每个工种基本工资的设定

(2)加班津贴管理,根据加班时间和类型给予不同的加班津贴;

(3)按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;(4)员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12;

(5)企业工资报表。能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印;

2、数据库要求:在数据库中至少应该包含下列数据表:

(1)员工考勤情况表;

(2)员工工种情况表,反映员工的工种、等级,基本工资等信息;

(3)员工津贴信息表,反映员工的加班时间,加班类别、加班天数、津贴情况等;

(4)员工基本信息表

(5)员工月工资表。

2.3数据流程图

2.3.1总数据流程图

图2-1总数据流程图

2.3.2职员信息载入

图2-2职员信息2.3.3工资信息载入

图2-3工资信息2.3.4考勤信息载入

图2-4考勤信息2.3.5津贴信息载入

图2-5津贴信息2.4数据字典

工资管理系统各实体及联系的数据字典

2.4.1数据流的描述

数据流的编号:D001

数据流的名称:员工基本信息

简述:与员工有关的基本信息

数据流来源:员工基本信息表

数据流去向:员工,部门

数据流组成:员工编号+姓名+性别+年龄+部门+进入公司时间+住址

数据流的编号:D002

数据流的名称:工资结构信息

简述:查询工资时所包含的相关信息

数据流来源:工资信息表

数据流去向:员工

数据流组成:员工编号+加班加班+出差工资+迟到早退+矿工工资+应发工资+实发工资

数据流的编号:D003

数据流的名称:职务部门信息

简述:查询员工职务部门信息

数据流来源:职务部门信息表

数据流去向:员工数据流组成:员工编号+职务+部门

数据流的编号:D004

数据流的名称:员工变动信息

简述:查询员工变动情况

数据流来源:员工变动信息表

数据流去向:员工

数据流组成:员工编号+原职务+原部门+现职务+现部门

2.4.2处理逻辑的描述

处理逻辑编号:p001

处理逻辑名称:工资统计

简述:对工资进行统计、计算

输入的数据流:基本工资信息

处理描述:根据职工的职位及其他相应情况计算出工资

输出的数据流:工资信息

处理逻辑编号:p002

处理逻辑名称:员工信息处理

简述:对员工信息进行处理

输入的数据流:员工信息处

理描述:根据员工的基本信息进行各种操作

输出的数据流:员工信息

处理逻辑编号:p003

处理逻辑名称:变动处理

简述:对员工的变动情况进行处理输入的数据流:员工变动信息

处理描述:可进行添加、修改和删除等操作

输出的数据流:员工变动信息

2.4.3数据存储的描述

数据存储编号:F001

数据存储名称:员工基本信息表

简述:员工的基本信息

数据存储组成:员工编号+姓名+性别+年龄+部门+进入公司时间+住址关键字:员工编号

相关联的处理:P002

数据存储编号:F002

数据存储名称:基本工资表

简述:员工的工资信息

数据存储组成:员工编号+加班加班+出差工资+迟到早退+矿工工资关键字:员工编号

相关联的处理:P001

数据存储编号:F003

数据存储名称:变动信息表

简述:员工的变动信息

数据存储组成:员工编号+原职务+原部门+现职务+现部门

关键字:员工编号

相关联的处理:P002,P003

第三章数据库设计

3.1数据库概念设计

有了数据流图,用E-R图来说明工资信息管理系统的数据库概念模式。

图3-1总E-R图

图3-2工资E-R图

图3-3津贴E-R图

图3-4考勤E-R图

图3-5员工E-R图

3.2系统详细设计

3.2.1数据库逻辑设计

将以上E-R转换成如下关系模式

员工(职工号,姓名,工龄,部门岗位,电话号码,密码)

工资(职工号,个人所得税,基本工资,医疗保险,缺勤扣除)

考勤(职工号,缺勤天数,缺勤类别,时间)

津贴(职工号,年终奖金,加班奖金,其他奖金)

其中,标有下划线的字段表示为该数据表的主码,即主关键字。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。

工资信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。

表一:员工信息表:

列名数据类型可否取空备注说明

no Char(8)NOT NULL职工号(主键)

name Char(10)NOT NULL职工姓名

gw Char(20)NOT NULL部门岗位

gl Smallint NOT NULL工龄

hm Char(11)NULL电话号码

mi Smallint NOT NULL登录密码

图3-6

表二:工资表:

列名数据类型可否取空备注说明

no Char(8)NOT NULL职工号(主键)

Jb money NOT NULL基本工资

yl money NULL医疗保险

Sw money NULL个人所得税

kc money NULL缺勤扣除

Jt money NULL津贴

yz money NOT NULL月总工资

图3-7

表三:员工考勤信息表

列名数据类型可否取空备注说明

no Char(8)NOT NULL职工号(主键)

ts Int(4)NULL缺勤天数

lb Char(30)NULL缺勤类别

Sj Char(10)NULL缺勤时间

图3-8

表四:津贴信息表

列名数据类型可否为空备注说明

no Char(8)NOT NULL职工号(主键)Jiaban money NULL月加班奖金

nz money NULL年终奖金

qt money NULL其他奖金

图3-9

3.3功能模块

图3-10模块图

3.4各模块功能

3.4.1职工信息管理系统

功能为:财务部门相关人员录入、修改、删除、查询员工个人信息;员工本人能通过用户名和密码查询自己的信息以及修改自己的密码;

3.4.2职工工资管理系统

功能为:根据工资生成公式,按照员工的考勤情况及各种表现按月生成相应的工资;财务部门相关人员能录入、修改、删除、查询每个月每个员工的工资信息以及工资汇总;员工本人能查询自己的工资信息以及工资汇总;

3.4.3职工津贴管理系统

功能为:财务部门相关人员录入、修改、删除、查询职工津贴信息;职工本人能查询自己的津贴;

工资管理系统

员工管理模块

考勤管理模块津贴管理模块工资生成模块系统模块

3.4.4职工考勤管理系统

功能为:后勤管理人员录入、修改、删除、查询职工考勤信息;职工本人能查询自己的考勤情况。

采用模块化设计思想,可以大大提高设计的效率,并且可以最大限度地减少不必要的错误。

第三章系统实现3.1界面截图

3.1.1登录界面

图3-1登录界面

3.1.2系统主界面

图3-2系统主界面

3.1.3考勤信息录入,修改,删除,查询界面

图3-3录入修改考勤3.2设计代码

Java源程序:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.awt.*;

import java.sql.*;

import https://www.wendangku.net/doc/951987058.html,ng.*;

import java.util.*;

import javax.swing.table.*;

import java.math.*;

class DB_LS implements ActionListener{

JFrame frame=new JFrame("欢迎进入LS工资管理系统");

JLabel label=new JLabel("09网络2_54_李胜

",JLabel.CENTER);

JButton button1=new JButton("进入系统");

JButton button2=new JButton("退出系统");

ImageIcon im=new ImageIcon("1.jpg");

JLabel a1=new JLabel(im);

void Create(){

JPanel pcontentPane=(JPanel)frame.getContentPane();

JPanel pcontentPane1=new JPanel();

pcontentPane.add(label);

pcontentPane.setLayout(new FlowLayout());

pcontentPane.add(button1);

pcontentPane.add(button2);

pcontentPane.add(new Label(""));

pcontentPane.add(a1);

pcontentPane.setBackground(Color.green);

pcontentPane.setVisible(true);

button1.addActionListener(this);

button2.addActionListener(this);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

frame.setBounds(200,100,550,600);

frame.setVisible(true);

}

public static void main(String[]args){

DB_LS dome=new DB_LS();

dome.Create();

}

public void actionPerformed(ActionEvent e){

if(button1.equals(e.getSource())){

DL dl=new DL();

dl.create();

}

if(button2.equals(e.getSource())){//退出

System.exit(0);

}

}

}

class DL implements ActionListener{

JFrame frame=new JFrame("职工/管理员登陆");

JLabel label1=new JLabel("用户名");

JLabel label2=new JLabel("密码");

JButton logonButton1=new JButton("管理员登录");

JButton logonButton2=new JButton("职工登录");

JButton cancelButton=new JButton("退出");

JTextField t1=new JTextField(0);

JTextField t2=new JTextField(0);

ImageIcon im=new ImageIcon("2.jpg");

JLabel a2=new JLabel(im);

JTextField username=new JTextField(9);

JPasswordField password=new JPasswordField(9);

void create(){

JPanel p=(JPanel)frame.getContentPane();

JPanel p1=new JPanel();

p.setLayout(new FlowLayout());

p.add(label1);

p.setSize(5,5);

p.setLocation(4,8);

p.add(username);

p.setSize(100,200);

p.setLocation(800,800);

p.add(label2);

p.setSize(50,20);

p.setLocation(40,80);

p.add(password);

p.setSize(100,20);

p.setLocation(80,120);

p.add(logonButton1);

p.add(new JLabel(""));

p.add(logonButton2);

p.add(new JLabel(""));

p.add(cancelButton);

p.add(new JLabel(""));

p.add(a2);

p.add(t1);

相关文档
相关文档 最新文档