数据库课程设计企业工资管理系统java版+完整代码.docx
- 文档编号:24543534
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:50
- 大小:108.89KB
数据库课程设计企业工资管理系统java版+完整代码.docx
《数据库课程设计企业工资管理系统java版+完整代码.docx》由会员分享,可在线阅读,更多相关《数据库课程设计企业工资管理系统java版+完整代码.docx(50页珍藏版)》请在冰豆网上搜索。
数据库课程设计企业工资管理系统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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 企业 工资管理 系统 java 完整 代码