数据库课程设计企业工资管理系统java版+完整代码.docx

上传人:b****4 文档编号:24543534 上传时间:2023-05-28 格式:DOCX 页数:50 大小:108.89KB
下载 相关 举报
数据库课程设计企业工资管理系统java版+完整代码.docx_第1页
第1页 / 共50页
数据库课程设计企业工资管理系统java版+完整代码.docx_第2页
第2页 / 共50页
数据库课程设计企业工资管理系统java版+完整代码.docx_第3页
第3页 / 共50页
数据库课程设计企业工资管理系统java版+完整代码.docx_第4页
第4页 / 共50页
数据库课程设计企业工资管理系统java版+完整代码.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

数据库课程设计企业工资管理系统java版+完整代码.docx

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

数据库课程设计企业工资管理系统java版+完整代码.docx

数据库课程设计企业工资管理系统java版+完整代码

得分:

课程设计报告

企业工资管理系统

XXXXX

班级XXXXX

学号XXXXXX

课程名称数据库原理及应用

指导教师

201X年X月X日

一.工资管理系统需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

1.1功能需求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

1.1.1功能划分⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

1.1.2功能描述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

1.2性能需求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

1.3数据流图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

二.总体设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

2.1数据库概念设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

2.2功能模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

三.系统详细设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

3.1数据库逻辑设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

3.2各模块功能⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

3.2.1职工信息管理系统⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

3.2.2职工工资管理系统⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

3.2.3职工津贴管理系统⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

四.系统实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

4.1界面截图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

4.1.1主界面及工资基本信息界面⋯⋯⋯⋯⋯⋯⋯⋯

4.1.2登录界面⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

4.1.3系统主界面⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

4.1.4信息录入,修改,删除,查询界面⋯⋯⋯⋯

4.2设计代码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯五.实验总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

1、需求分析

1.1功能需求

1.1.1功能划分

(1)、员工信息表;及时反映员工的基本信息

(2)、员工津贴表,反映员工津贴

(3)、员工基本工资表

1.1.2功能描述

(1)、基本工资的设定

(2)、津贴的设定

(3)、计算出月工资

(4)、录入员工工资信息

(5)、添加员工工资信息

(6)、更改员工工资信息

1.2性能需求

此工资管理系统对工资数据精度的计算能在默认情况之下精确到小数点后3位小数,即是精确到分的计算。

但在用户使用过程中,能自行根据实际情况进

行小数计算精度的设定,最大能允许保留小数点后5位的精度。

在时间特性上,

当用户发出命令请求时的服务器的响应时间、对数据更新处理、工资数据的查询

检索等上,同样要求系统响应时间不会超过0.5秒时间。

系统支持多种操作系统

的运行环境,多不同操作系统,不同文件格式的磁盘上的数据均能实现信息的互

通,及共享。

当服务器移植到其他的系统平台,如:

Linux平台下时,同样能和

其他的系统进行数据存取同步,不会出现系统之间互不兼容的情况,系统支持多

系统之间的互连互通,系统有巨大的强健性。

本课程设计是用Java语言编写,

mysql数据库。

1.3数据流图

根据工资管理要求及用户需求调查分析,得到以下数据流图

图1.1第一层数据流图

1

添加操作

输入职工基本信息

用户

修改职工信息

修改操作

工资表

删除职工记录

删除操作

职工号

查询操作

图1.2职工信息的载入

添加操作

用户

修改操作

津贴表

删除操作

查询操作

图1.4考勤的信息载入

2.总体设计

2.1数据库概念设计

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

2

XX

基本工资

职工号

1n

领取工资

m

影职工号

XX津贴

员工

领取津贴XX

密码

职工号

图2.1实体之间关系E-R图

3

2.2功能模块

工资管理系统

系工职员

统资工工

模管登管

块理陆理

模模模

块块块

3.系统详细设计

3.1数据库逻辑设计

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

员工(职工号,XX,密码)

工资(职工号,XX,基本工资,)

津贴(职工号,XX,奖金)

其中,标有下划线的字段表示为该数据表的主码,即主关键字。

在上面的实

体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。

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

个表格表示在数据库中的一个表。

表一:

员工信息表:

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

noChar(8)NOTNULL职工号(主键)

nameChar(10)NOTNULL职工XX

miSmallintNOTNULL登录密码

4

表二:

基本工资表:

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

noChar(8)NOTNULL职工号(主键)

nameChar(10)NOTNULL职工XX

moneyNOTNULL基本工资

表四:

津贴信息表

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

noChar(8)NOTNULL职工号(主键)

nameChar(10)NOTNULL职工XX

JtmoneyNOTNULL津贴

3.2各模块功能

3.2.1职工信息管理系统

功能为:

财务部门相关人员录入、修改、删除、查询员工个人信息

3.2.2职工工资管理系统

功能为:

根据工资生成公式,按照员工的考勤情况及各种表现按月生成相应

的工资;财务部门相关人员能录入、修改、删除、查询每个月每个员工的工资信

息以及工资汇总;员工本人能查询自己的工资信息以及工资汇总;

3.2.3职工登陆查询系统

功能为:

员工本人能通过用户名和密码查询自己的信息以及修改自己的密码;

4.系统实现

4.1界面截图

4.1.1主界面

5

4.1.2登录界面

4.1.3管理员管理工资界面

4.1.4信息录入,修改,删除,查询界面

6

4.1.5职工信息查询界面

4.1.6职工密码修改界面

7

4.2设计代码

DB.java

packagewage_management;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

classDBextendsJFrameimplementsActionListener{

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

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

uttonbutton1=newutton("进入系统");

uttonbutton2=newutton("退出系统");

ImageIconim=newImageIcon("1.jpg");

JLabela1=newJLabel(im);

voidCreate(){

JPanelpcontentPane=(JPanel)frame.getContentPane();

pcontentPane.add(a1);

pcontentPane.add(label);

pcontentPane.setLayout(newFlowLayout());pcontentPane.add(button1);

pcontentPane.add(button2);

pcontentPane.setVisible(true);

button1.addActionListener(this);

button2.addActionListener(this);

8

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

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

frame.setVisible(true);

}

publicstaticvoidmain(String[]args){

DBdome=newDB();

dome.Create();

}

publicvoidactionPerformed(ActionEvente){

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

DLdl=newDL();

dl.create();

frame.dispose();

}

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

System.exit(0);

}

}

}

DL.java

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.ImageIcon;importjavax.swing.utton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JPasswordField;importjavax.swing.JTextField;

9

importcom.mysql.jdbc.PreparedStatement;

importQuery.Querypad;

classDLextendsJFrameimplementsActionListener

{

ImageIconim=newImageIcon("2.jpg");

JLabela2=newJLabel(im);

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

JLabellabel1=newJLabel("用户名");JLabellabel2=newJLabel("密码");

uttonlogonButton1=newutton("管理员登录");

uttonlogonButton2=newutton("职工登录");

uttoncancelButton=newutton("退出");

JTextFieldusername=newJTextField(9);

JPasswordFieldpassword=newJPasswordField(9);

staticStringt1;

staticStringt2;

voidcreate()

{

JPanelp=(JPanel)frame.getContentPane();

JPanelp1=newJPanel();

p.setLayout(newFlowLayout());

p.add(a2);

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

10

p.add(logonButton2);

p.add(cancelButton);

p.setBackground(Color.cyan);

p.setVisible(true);

logonButton1.addActionListener(this);

logonButton2.addActionListener(this);

cancelButton.addActionListener(this);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

frame.setBounds(200,100,500,220);

frame.setVisible(true);

}

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;

11

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/wage

management","root","jxb");

sql="select*fromworkerinfowhere

name='"+t1+"'andmi='"+t2+"'";

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

rs=ps.executeQuery(sql);

if(rs.next())

{

if(rs.getString("name").equals(t1)&&

rs.getString("mi").equals(t2))

{

YGDLJMyg=newYGDLJM();

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

}

}

12

}

GZGLZJM.java

packagewage_management;

importjava.awt.Color;

importjava.awt.FlowLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjavax.swing.ImageIcon;

importjavax.swing.utton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;

classGZGLZJMextendsJFrameimplementsActionListener{

JFramef=newJFrame("工资管理系统");uttonb1=newutton("工资管理");uttonb2=newutton("员工信息管理");

uttonb3=newutton("返回");

ImageIconim=newImageIcon("3.jpg");

JLabela1=newJLabel(im);

voidcreate(){

JPanelp=(JPanel)f.getContentPane();

p.setLayout(newFlowLayout());

p.add(a1);p.add(b1);p.add(b2);p.add(b3);

p.setBackground(Color.cyan);

p.setVisible(true);

b1.addActionListener(this);

b2.addActionListener(this);

b3.addActionListener(this);

f.setBounds(200,100,500,200);

f.setVisible(true);

}

publicvoidactionPerformed(ActionEvente){

if(b3.equals(e.getSource())){//返回

13

DLd=newDL();d.create();

f.dispose();

}

if(b2.equals(e.getSource())){//员工信息管理

YGGLyg=newYGGL();

yg.create();

f.dispose();

}

if(b1.equals(e.getSource())){//工资管理

GZGLgz=newGZGL();

gz.create();

f.dispose();

}}

}

GZGL.java

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.utton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.JSplitPane;importjavax.swing.JTable;importjavax.swing.JTextField;

publicclassGZGLextendsJFrameimplementsActionListener{

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

uttonb1=newutton("录入");

14

uttonb2=newutton("修改");uttonb3=newutton("删除");

uttonb4=newutton("查询所有");

uttonb5=newutton("返回");

JTextFieldtf1=newJTextField(4);

JTextFieldtf2=newJTextField(4);

JTextFieldtf3=newJTextField(4);

JTextFieldtf4=newJTextField(4);

JTextFieldtf5=newJTextField(6);

JTextFieldtf6=newJTextField(7);

String[]cloum={"职工号","XX","津贴","月基本工资","月薪"};

Object[][]row=newObject[50][5];

JTabletable=newJTable(row,cloum);

JScrollPanescrollpane=newJScrollPane(table);

JSplitPanesplitpane=new

JSplitPane(JSplitPane.VERTICAL_SPLIT);

voidcreate(){

JPanelp=(JPanel)f.getContentPane();

p.setLayout(newFlowLayout());

p.add(scrollpane);

p.add(splitpane);

JPanelp1=newJPanel();

p1.add(b1);

p1.add(b2);

p1.add(b3);

p1.add(b4);

p1.add(b5);

JPanelp2=newJPanel();

p2.setBackground(Color.cyan);

p2.add(scrollpane);

JPanelp3=newJPanel();

p.setLayout(newFlowLayout());

p.add(newJLabel(""));

p.add(newJLabel("职工号"));

p.add(tf1);

p.add(newJLabel("XX"));

p.add(tf2);

p.add(newJLabel("津贴"));

p.add(tf3);

p.add(newJLabel("月基本工资"));

p.add(tf4);

p.add(newJLabel("月薪"));

p.add(tf5);

15

p.add(newJLabel("在此处输入职工号点击查询删除"));

p.add(tf6);

splitpane.add(p1,splitpane.TOP);

splitpane.add(p2,splitpane.BOTTOM);

splitpane.setDividerLocation(50);

p.setBackground(Color.CYAN);

b1.addActionListener(this);

b2.addActionListener(this);

b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);

f.setBounds(200,100,500,600);

f.setResizable(true);//可以调整界面大小

f.setVisible(true);

}

publicvoidactionPerformed(ActionEvente){

if(b1.equals(e.getSource())){//录入

Connectioncon;

Statementsql;

try{

Cla

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

当前位置:首页 > 高中教育 > 高考

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

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