数据库课程设计员工薪资管理系统.docx

上传人:b****4 文档编号:3670010 上传时间:2022-11-24 格式:DOCX 页数:32 大小:25.47KB
下载 相关 举报
数据库课程设计员工薪资管理系统.docx_第1页
第1页 / 共32页
数据库课程设计员工薪资管理系统.docx_第2页
第2页 / 共32页
数据库课程设计员工薪资管理系统.docx_第3页
第3页 / 共32页
数据库课程设计员工薪资管理系统.docx_第4页
第4页 / 共32页
数据库课程设计员工薪资管理系统.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

数据库课程设计员工薪资管理系统.docx

《数据库课程设计员工薪资管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计员工薪资管理系统.docx(32页珍藏版)》请在冰豆网上搜索。

数据库课程设计员工薪资管理系统.docx

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

数据库课程设计_员工薪资管理系统

**理工学院

数据库课程设计报告

——员工薪资管理系统

专业:

计算科学与技术

课程:

数据库原理及应用

班级:

**级计科*班

组员:

学号:

***********3、*****8、**********9

指导教师:

2019/07/02

*摘要*

企业员工薪资管理是公司管理的一个重要内容。

工资管理既涉及到企业劳动人事的管理,同时也是企业财务管理的重要组成部分。

工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。

资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。

但考虑到学生的开发时间,本次设计主要阐述员工工资管理系统主要是以企业员工工资情况为对象而开发的。

涉及系统比较小,有利于学生单独编写。

其系统的设计主要包括数据库的设计、维护和应用界面的设计与后台数据库的连接。

经分析采用SunMicrosystems公司的Java为前台开发工具,MicrosoftSQLsever2019为后台数据库。

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE,JavaME,JavaSE)的总称。

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。

Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

目前市场上数据库的主流厂商及产品有IBMDB2、MicrosoftSQLSERVER2000、ORACLE9i、Sybase。

MicrosoftSQLServer2019是在SQLServer2000的基础上对性能、可靠性、质量以及易用性进行了扩展。

SQLServer2019中包含许多新特性,这些特性使其成为针对电子商务、数据仓库和在线商务解决方案的卓越的数据库平台。

其增强的特性包括对丰富的扩展标记语言(XML)的支持、综合分析服务以及便捷的数据库管理。

MicrosoftSQLServer2019简化了管理、优化工作,并且增强了迅速、成功的部署在线商务应用程序所需的可靠性和伸缩性。

开发平台:

操作系统:

Windows8前台开发工具:

JavaSE

后台数据库:

MicrosoftSQLsever2019开发人员:

***************

*摘要„„„„„„„„„„„„„„„„„„„„„„01

一、开发背景„„„„„„„„„„„„„„„„„„„„„03设计背景„„„„„„„„„„„„„„„03设计要求„„„„„„„„„„„„„„„03

二、系统性需求分析„„„„„„„„„„„„„„„„„„04

三、概要设计„„„„„„„„„„„„„„„„„„„„„04

四、物理设计„„„„„„„„„„„„„„„„„„„„„05

五、详细设计„„„„„„„„„„„„„„„„„„„„„05数据库的E-R图„„„„„„„„„„„„05数据库结构设计„„„„„„„„„„„„06

六、调试分析„„„„„„„„„„„„„„„„„„„„„07

七、管理软件源代码„„„„„„„„„„„„„„„„„„11

八、思考与总结„„„„„„„„„„„„„„„„„„„„30

九、参考文献„„„„„„„„„„„„„„„„„„„„„31

一、开发背景

1.设计背景:

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

人员。

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

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

工资中扣除。

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

师、销售员等)。

5)每月个人的最高工资不超过3000元。

工资按月发放,实际发放的工资金额为工资减去扣除。

2.设计要求:

1)2)3)4)5)6)7)8)

进行需求分析。

设计E-R图。

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

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

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

实现分类查询。

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

开发工具不限。

二、系统性需求分析

本系统的开发宗旨以及总体任务就是帮助企业的财务主管部门提高工作效率,实现企业工资信息管理的自动化、规范化和系统化。

所以为了能够实现编制这个系统所设定的目标,在程序的开发之前,需求分析是必不可少的。

需求分析的第一步描述工资管理系统的功能,即定义用例,以此确定系统的功能需求。

工资管理系统的用例分析主要是找出系统中所有的用例,因此要和工资管理系统的潜在用户进行讨论。

系统最终实现的主要功能如下:

1、员工基本信息模块

员工基本信息模块具有员工信息输入、员工增删和员工信息查询三个功能。

员工基本信息包括员工编号、员工姓名、员工性别、所在部门、年龄、住址和联系电话等信息。

员工增删实现了对数据库中员工信息的增加和删除。

2、工资结构设置模块

根据该公司的工资管理实际情况,本系统将工资结构分为基础工资、岗位工资和工龄工资三部分。

该模块可以对这三个工资类型设置工资等级,并对每个等级设置工资标准。

数据流需求分析:

数据库

数据库需求分析——数据流图

三、概要设计

根据需求分析阶段得到的功能需求,管理员、员工通过输入用户名号和密码进下该系统后,可以进行一些基本查询(员工工资信息查询、津贴信息查询)、还可以进行员工删除和添加员工的操作,员工通过登录并输入密码,可以进行查询自己的数据(工资,信息)。

模块功能大概可以分为如下5个方面:

这几个模块工资管理、信息查询,添加和删除员工,登陆、退出。

工资管理包括基本工资查询,添加员工、删除员工等。

四、物理设计

1.选择[登陆]则会进入相应登陆网页。

2.选择[员工][管理员][游客]即可进入对应的网页3.进入[员工界面]即可进入[员工工资查询]功能窗体。

4.进入[管理员界面]即可进入[修改信息][添加信息][查询信息]功能窗体。

5.选择[添加信息]按钮即可进入[添加员工信息]功能窗体。

6.选择[删除信息]菜单按钮即可进入[删除员工]功能窗体。

7.选择[查询信息]菜单按钮即可进入[查询员工信息]功能窗体。

8.选择[首页]将返回整个系统。

五、详细设计

(1)数据库的E-R图及合并部分视图生成E-R图员工信息E-R图:

员工工资信息E-R图:

(2)数据库结构设计

根据上面概念结构设计阶段得到的E-R图,下一步应该将它转化为关系模型。

可以得到对应的关系模式为:

Worker(num,name,sex,age,dep,occup,password)

Salary(work_num,basic_pay,welfare,honus,insurance,housing_fund,payment)

数据库表的建立:

(sql语句及截图)语句如下:

Createtableworker

(numchar(5)primarykey,namevarchar(8),sexchar(5),agesmallint,depvarchar(20),occupvarchar(20),passwordvarchar(10),);

Createtablesalary

(worker_numnchar(5)primarykey,basic_payfloat,welfarefloat,bonusfloat,insurancefloat,housing_fundfloat,paymentfloat,)

六、调试分析

1、进入系统界面

2、职工/管理员系统界面

3、工资管理界面

4、密码修改界面

5、工资管理界面

录入/修改/删除/查询所有/返回

员工信息管理界面

七、管理软件源代码

说明:

管理界面选择采用Java构建管理界面,Java对数据库有着对数据库良好的连接功能,且其可以很容易的实现窗口的构建,可以给用户以及管理员以良好友善的界面,便于人机交互,能够很好的对数据库实现管理,以及其面向对象的特性在后期的维护中很容易实现软件的扩展与各种维护!

Java编程语言的风格十分接近C语言、C++语言。

Java是一个纯粹的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心。

Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。

packagewage_management;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

classDB1extendsJFrameimplementsActionListener{

privatestaticfinallongserialVersionUID=1L;

JFrameframe=newJFrame("欢迎进入工资管理系统");

JLabellabel=newJLabel("",JLabel.CENTER);

JButtonbutton1=newJButton("进入系统");

JButtonbutton2=newJButton("退出系统");

voidCreate(){

JPanelpcontentPane=(JPanel)frame.getContentPane();

pcontentPane.add(label);

pcontentPane.setLayout(newFlowLayout());

pcontentPane.add(button1);

pcontentPane.add(button2);

pcontentPane.setBackground(Color.gray);

pcontentPane.setVisible(true);

button1.addActionListener(this);

button2.addActionListener(this);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

frame.setBounds(500,300,300,150);

frame.setResizable(false);

frame.setVisible(true);

}

publicstaticvoidmain(String[]args){

DB1dome=newDB1();

dome.Create();

}

publicvoidactionPerformed(ActionEvente){

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

DLdl=newDL();

dl.create();

frame.dispose();

}

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

System.exit(0);

}

}

}

----------------------------------------------------------------------

packagewage_management;

importjava.awt.Color;

importjava.awt.FlowLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.Statement;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JPasswordField;

importjavax.swing.JTextField;

importcom.mysql.jdbc.PreparedStatement;

@SuppressWarnings("serial")

classDLextendsJFrameimplementsActionListener

{

JFrameframe=newJFrame("职工/管理员登陆");

JLabellabel1=newJLabel("用户名");

JLabellabel2=newJLabel("密码");

JButtonlogonButton1=newJButton("管理员登录");

JButtonlogonButton2=newJButton("职工登录");

JButtoncancelButton=newJButton("退出");

JTextFieldusername=newJTextField(9);

JPasswordFieldpassword=newJPasswordField(9);

staticStringt1;

staticStringt2;

voidcreate()

{

JPanelp=(JPanel)frame.getContentPane();

@SuppressWarnings("unused")

JPanelp1=newJPanel();

p.setLayout(newFlowLayout());

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(logonButton2);

p.add(cancelButton);

p.setBackground(Color.gray);

p.setVisible(true);

logonButton1.addActionListener(this);

logonButton2.addActionListener(this);

cancelButton.addActionListener(this);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

frame.setBounds(500,300,500,220);

frame.setVisible(true);

}

@SuppressWarnings("deprecation")

publicvoidactionPerformed(ActionEvente)

{

t1=username.getText();

t2=password.getText();

if(e.getSource()==logonButton1)

{

if(username.getText().equals("admin")==true

&&(password.getText().equals("admin")==true))

{

JOptionPane.showMessageDialog(this,"登录成功!

");

GZGLZJMgz=newGZGLZJM();

gz.create();

frame.dispose();

}

else{

JOptionPane.showMessageDialog(null,"输入用户名或密码错误!

");

}

}

if(e.getSource()==logonButton2)

{

try{

Connectioncon;

Statementps;

ResultSetrs;

Stringsql=null;

Class.forName("org.gjt.mm.mysql.Driver");

Class.forName("org.gjt.mm.mysql.Driver").newInstance();

con=DriverManager.getConnection(

"jdbc:

mysql:

//localhost:

3306/management","root","hellomysql");

sql="select*fromworkerwherenum='"+t1+"'andpassword='"+t2+"'";

ps=(PreparedStatement)con.prepareStatement(sql);

rs=ps.executeQuery(sql);

if(rs.next())

{

if(rs.getString("num").equals(t1)&&rs.getString("password").equals(t2))

{

YGGLZJMyg=newYGGLZJM();

yg.create();

frame.dispose();

JOptionPane.showMessageDialog(this,"登录成功!

");

this.dispose();

}

}

else{

JOptionPane.showMessageDialog(this,"输入用户名或密码错误!

");

}

}catch(Exceptione1){

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}

}

if(cancelButton.equals(e.getSource()))//退出

{

System.exit(0);

}

}

}

--------------------------------------------------------------------------------

packagewage_management;

importjava.awt.Color;

importjava.awt.FlowLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JScrollPane;

importjavax.swing.JSplitPane;

importjavax.swing.JTable;

importjavax.swing.JTextField;

@SuppressWarnings("serial")

publicclassGZGLextendsJFrameimplementsActionListener{

JFramef=newJFrame("员工工资管理");

JButtonb1=newJButton("录入");

JButtonb2=newJButton("修改");

JButtonb3=newJButton("删除");

JButtonb4=newJButton("查询所有");

JButtonb5=newJButton("返回");

JTextFieldtf1=newJTextField(6);

JTextFieldtf2=newJTextField(4);

JTextFieldtf3=newJTextField(4);

JTextFieldtf4=newJTextField(4);

JTextFieldtf5=newJTextField(4);

JTextFieldtf6=newJTextField(4);

JTextFieldtf7=newJTextField(6);

JTextFieldtf8=newJTextField(6);

JTextFieldtf9=newJTextField(4);

JTextFieldtf10=newJTextField(4);

JTextFieldtf11=newJTextField(6);

JTextFieldtf12=newJTextField(6);

String[]cloum={"职工号","基本工资","津贴","奖金","保险","房贷","总工资"};

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1