文档库 最新最全的文档下载
当前位置:文档库 › 员工薪资管理系统课程设计

员工薪资管理系统课程设计

员工薪资管理系统课程设计
员工薪资管理系统课程设计

员工薪资管理系统课程设计

学院:

班级:

学号:

姓名:余黎晨李雪敏敬翰林颜学宏

指导教师:李竹林

目录一:绪论

1.1设计目的

1.2设计内容

1.3开发背景

1.4开发环境

1.5组内成员及分工

二:需求分析

2.1题目分析

2.2功能分析

2.3数据流图

2.4数据字典

2.5系统功能

三:系统分析与设计

3.1概念结构设计

3.2逻辑结构设计

3.3 物理结构设计

四:数据库实施及运行

4.1建基本表

4.3功能实现

4.4完整代码

五:设计心得及体会

一:绪论

1.1设计目的

员工薪资系统的主要目的是通过操作计算机代替手工劳动,能够在该系统内完成员工的信息录入,查询,删除等操作,方便公司的高效化,规范化管理,有利于员工更好更方便了解自己的薪资信息。

系统开发的总体任务就是实现员工薪资管理的系统化、规范化和自动化。

1.2设计内容

题目6:员工薪资管理

1)背景资料

a)某单位现有1000名员工,其中有管理人员、财务人员、技术人员和

销售人员。

b)该单位下设4个科室,即经理室、财务科、技术科和销售科。

c)工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积

金在工资中扣除。

d)每个员工的基本资料有姓名、性别、年龄、单位和职业(如经理、

工程师、销售员等)。

e)每月个人的最高工资不超过3000元。工资按月发放,实际发放的工

资金额为工资减去扣除。

2)设计要求:

a)进行需求分析,编写数据字典。

b)设计E-R图。

c)实现按照科室录入个人的基本资料、工资和扣除金额的数据。

d)计算个人的实际发放工资。

e)按科室、职业分类统计人数和工资金额。

f)实现分类查询。

g)能够删除辞职人员的数据。

h)开发工具不限。

1.3开发背景

当今社会,随着企业人数的不断增加,企业员工薪资的管理工作也越来越复杂,资金是企业生存的核心部分,而资金流动也是关键环节,随着计算机的普及,计算机管理系统已经原来越来越广泛的应用于各个中小型企业中,用计算机取代手工对企业管理的操作也是势在必行的,并且人为操作容易造成信息错误,纸质材料不易保存,可能会导致企业运转出现滞缓现象,影响企业发展。为了更好的、更方便地管理企业中各个成员的工资发放情况,我们必须要有一个完善的、合理的、便捷的员工薪资管理系统来管理公司员工工资的发放情况。

该员工薪资管理系统主要用于中小型企业员工的工资发放管理,此系统的建立和使用有利于员工更好的了解自己的薪资信息,提高公司员工薪资发放工作的效率,大大减少纸质管理对工作带来的失误。

1.4开发环境

开发平台:SQL Server2005

开发工具:Eclipse JDBC

开发语言:SQL语言JAVA语言

1.5组内成员及分工

李雪敏:系统框架撰写报告

颜学宏:代码编写数据库的连接与运行

余黎晨:概念结构设计代码调试

敬翰林:逻辑结构设计需求分析

二:需求分析

2.1题目分析

该题目要求设计一个员工薪资系统,实现员工信息的有序化,规范化,并能进行员工信息录入,查询,修改,删除等操作,能实现分类查询,

2.2功能分析

该员工薪资系统能够实现的功能如下:

员工信息的管理,包括姓名,性别,年龄,职业,员工号,部门编号基本信息的录入,查询,删除,修改等操作

部门信息的管理,包括部门编号和部门名称,查询每个部门的业绩和员工薪资情况

薪资信息的管理,包括员工号,部门编号,基本工资,福利补贴,奖励工资,

失业保险,住房公积金,实发薪资等信息,统计出员工的基

本工资,福利补贴,奖励工资,扣除失业保险,住房公积金

后所得的工

2.3数据流图

2.4数据字典

数据字典在数据库设计中占有很重要的地位,数据字典是各类数据描述的集合,它是进行详细的数据收集和数据分析后所获得的主要成果。根据数据流图对员工薪资管理数据库数据字典的设计如下所示:

2.41数据结构名:员工

含义说明:员工信息

含义说明:部门信息

含义说明:员工薪资信息

组成:员工号,部门编号,基本工资,福利补贴,奖励工资,扣罚工资,

2.5系统功能

该员工薪资系统的功能如下:

三:系统分析与设计3.1概念结构设计

E—R图设计

员工实体——关系图

部门实体——关系图

工资实体——关系图

总的E—R图

3.2概念结构设计

E-R图表示的概念模型是用户数据要求的形式化,它不为任何一个DBMS 所支持,而逻辑结构设计的任务就是把概念模型结构转换成某个具体的DBMS 所支持的数据模型,员工薪资管理E-R图转换为关系模式为:

员工(姓名,性别,年龄,职业,员工号,部门编号)

部门(部门编号,部门名称)

薪资(员工号,员工工资,福利补贴,奖励工资,失业保险,住房公积金,实发薪资)

四:数据库实施与运行

4.1建基本表

员工信息表

部门信息表

工资信息表

4.3功能实现

4.31系统界面展示:

4.32员工信息查询功能

按工号查询:

按姓名查询:

4.33员工工资查询功能:

4.34修改员工工资功能:

4.35添加员工功能:

4.36修改员工信息功能:

4.37删除员工信息功能:

4.4完整代码展示

4.41源程序代码

//类DBConnect用于数据库的连接

//导入sql包

import java.sql.*;

//创建数据库连接类DBConnect

public class DBConnect

{

//静态方法提高数据库的连接效率

public static Connection getConn() throws Exception

{

//加载JDBC驱动

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//以系统默认用户身份,连接数据库StudentManager

return DriverManager.getConnection("jdbc:odbc:Test","dmj","753");

}

}

4.42主框架代码:

//系统主框架类

//导入系统的包

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

//创建主框架类MainFrame

public class MainFrame extends JFrame implements ActionListener {

//创建内容面板

JPanel contentPane;

//创建菜单栏组件的对象

JMenuBar jMenuBar1=new JMenuBar();//菜单条

JMenu jMenu0=new JMenu("退出系统");//菜单

JMenuItem jMenuItem0=new JMenuItem("退出");//子菜单

JMenu jMenu1=new JMenu("员工管理");

JMenuItem jMenuItem1=new JMenuItem("添加员工");

JMenuItem jMenuItem2=new JMenuItem("修改员工");

JMenuItem jMenuItem3=new JMenuItem("删除员工");

JMenu jMenu2=new JMenu("工资管理");

JMenuItem jMenuItem4=new JMenuItem("添加工资");

JMenuItem jMenuItem5=new JMenuItem("修改工资");

JMenuItem jMenuItem8=new JMenuItem("工资查询");

JMenu jMenu3=new JMenu("员工查询");

JMenuItem jMenuItem6=new JMenuItem("按工号查询");

JMenuItem jMenuItem7=new JMenuItem("按姓名查询");

JMenuItem jMenuItem9=new JMenuItem("互动");

//创建标签,用于显示信息

JLabel jLabel1=new JLabel("欢迎使用员工薪资管理系统");

//创建构造方法

public MainFrame()

{

try{

//关闭框架窗口时的默认事件方法

setDefaultCloseOperation(EXIT_ON_CLOSE);

//调用初始化方法

jbInit();

}

catch(Exception exception){

exception.printStackTrace();

}

}

//界面初始化方法

private void jbInit() throws Exception

{

//创建内容面板

contentPane =(JPanel) getContentPane();

//设置内容面板的布局为空

contentPane.setLayout(null);

//主框架的大小

setSize(new Dimension(400,360));

//主框架的标题

setTitle(" 员工薪资管理系统");

//添加事件监听器

jMenuItem0.addActionListener(this);

jMenuItem1.addActionListener(this);

jMenuItem2.addActionListener(this);

jMenuItem3.addActionListener(this);

jMenuItem4.addActionListener(this);

jMenuItem5.addActionListener(this);

jMenuItem6.addActionListener(this);

jMenuItem7.addActionListener(this);

jMenuItem8.addActionListener(this);

jMenuItem9.addActionListener(this);

//添加菜单条到主框架

setJMenuBar(jMenuBar1);

//添加菜单到菜单条

jMenuBar1.add(jMenu0);

jMenuBar1.add(jMenu1);

jMenuBar1.add(jMenu2);

jMenuBar1.add(jMenu3);

//添加菜单项到菜单

jMenu0.add(jMenuItem0);

jMenu1.add(jMenuItem1);

jMenu1.add(jMenuItem2);

jMenu1.add(jMenuItem3);

jMenu2.add(jMenuItem4);

jMenu2.add(jMenuItem5);

jMenu2.add(jMenuItem8);

jMenu3.add(jMenuItem6);

jMenu3.add(jMenuItem7);

//添加标签到主框架内容面板

contentPane.add(jLabel1);

//设置标签组件的大小和字体

jLabel1.setFont(new java.awt.Font("黑体",Font.BOLD,20));

jLabel1.setBounds(new Rectangle(65,70,275,55));

}

//菜单项事件对应的处理方法

public void actionPerformed(ActionEvent actionEvent)

{

//点击“系统”菜单下的“退出”菜单项

if(actionEvent.getSource()==jMenuItem0)

{

System.exit(0);

}

//点击“员工管理”菜单下的“添加员工”菜单项

if(actionEvent.getSource()==jMenuItem1)

{

//创建“添加员工”面板对象

AddEmployee AddEmp=new AddEmployee();

//移除主框架上原有的内容

this.remove(this.getContentPane());

//加载“添加职工”面板的对象到主框架

this.setContentPane(AddEmp);

//令界面可见

this.setVisible(true);

}

//点击“员工管理”菜单下的“修改员工”菜单项

if(actionEvent.getSource()==jMenuItem2)

{

//创建“修改员工”面板对象

ModifyEmployee ModifyEmp=new ModifyEmployee();

this.remove(this.getContentPane());

//加载“修改员工”面板的对象到主框架

this.setContentPane(ModifyEmp);

this.setVisible(true);

}

//点击“员工管理”菜单下的“删除员工”菜单项

if(actionEvent.getSource()==jMenuItem3)

{

//创建“删除员工”面板对象

DeleteEmployee DeleteEmp=new DeleteEmployee();

this.remove(this.getContentPane());

//加载“删除员工”面板的对象到主框架

this.setContentPane(DeleteEmp);

this.setVisible(true);

}

//点击“工资管理”菜单下的“添加工资”菜单项

if(actionEvent.getSource()==jMenuItem4)

{

//创建工资添加的面板对象

AddSalary AddSal=new AddSalary();

this.remove(this.getContentPane());

//加载工资添加面板的对象到主框架

this.setContentPane(AddSal);

this.setVisible(true);

}

//点击“工资管理”菜单下的“修改工资”菜单项

if(actionEvent.getSource()==jMenuItem5)

{

//创建工资修改的面板对象

ModifySalary ModifySal=new ModifySalary();

this.remove(this.getContentPane());

//加载工资修改面板的对象到主框架

this.setContentPane(ModifySal);

this.setVisible(true);

}

//点击“工资管理”菜单下的“工资查询”菜单项

if(actionEvent.getSource()==jMenuItem8)

{

//创建工资修改的面板对象

SalaryInquire SalaryInq=new SalaryInquire();

this.remove(this.getContentPane());

//加载工资修改面板的对象到主框架

this.setContentPane(SalaryInq);

this.setVisible(true);

}

//点击“员工查询”菜单下的“按工号查询”菜单项

if(actionEvent.getSource()==jMenuItem6)

{

//创建“按工号查询”面板对象

InquireOnGH OnGH=new InquireOnGH();

//移除主框架上原有的内容

this.remove(this.getContentPane());

this.setContentPane(OnGH);

this.setVisible(true);

}

}

}

4.43主函数Main代码:

//系统的主程序类Main

//导入包

import java.awt.*;

import javax.swing.*;

//创建主系统类

class Main

{

public static void main (String[] args)

{

//创建主界面,调用MainFrame()构造函数和方法

MainFrame frame=new MainFrame();

//获取屏幕尺寸

Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();

//获取主界面的窗体尺寸

Dimension frameSize =frame.getSize();

//令主界面窗体居中

if(frameSize.height>screenSize.height)

frameSize.height=screenSize.height;

if(frameSize.width>screenSize.width)

frameSize.width=screenSize.width;

frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height )/2);

//令主界面显示

frame.setVisible(true);

}

}

4.44员工信息查询代码

按工号查询代码

//导入系统的类包

import java.awt.*;

im//"按员工号查询"面板类InquireOnGH

port java.sql.*;

import javax.swing.*;

import java.awt.event.*;

//创建“按员工号查询”类

public class InquireOnGH extends JPanel implements ActionListener

{

//声明连接数据库对象

Connection con;

//声明SQL语句对象

Statement st;

//创建组件对象:标签、文本行、单选

JLabel jLabel1=new JLabel("请输入员工号:");

JTextField jTextField1=new JTextField();

JButton jButton1=new JButton("查找");

JTextArea jTextArea1=new JTextArea();

//构造方法

public InquireOnGH()

{

try{

//调用初始化方法

jbInit();

}

catch(Exception exception){

exception.printStackTrace();

}

}

//面板初始化方法

private void jbInit() throws Exception

{

//连接数据库

con=DBConnect.getConn();

st=con.createStatement();

//框架的布局

this.setLayout(null);

//设置各组件的大小

jLabel1.setFont(new java.awt.Font("黑体",Font.BOLD,16));

jLabel1.setBounds(new Rectangle(46,4,222,32));

jTextField1.setBounds(new Rectangle(47,37,247,31));

jButton1.setBounds(new Rectangle(47,86,247,30));

jTextArea1.setBounds(new Rectangle(24,130,305,109));

//添加按钮动作事件

jButton1.addActionListener(this);

//添加组件到面板

this.add(jLabel1);

this.add(jTextField1);

this.add(jTextArea1);

this.add(jButton1);

}

//点击按钮事件

public void actionPerformed(ActionEvent e)

{

//获取输入的员工号

String EmployeeID=jTextField1.getText();

//清空文本区原有的内容

jTextArea1.setText("");

try{

//利用st对象执行SQL语句,返回结果集对象

ResultSet rs=st.executeQuery("select * from Employee where 员工号

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