大数据库课程设计企业工资管理系统java版+完整代码Word格式.docx
《大数据库课程设计企业工资管理系统java版+完整代码Word格式.docx》由会员分享,可在线阅读,更多相关《大数据库课程设计企业工资管理系统java版+完整代码Word格式.docx(37页珍藏版)》请在冰豆网上搜索。
五.实验总结…………………………………………………
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.2职工信息的载入
图1.4考勤的信息载入
2.总体设计
2.1数据库概念设计
有了数据流图,用E-R图来说明工资信息管理系统的数据库概念模式,如图
1n
m
图2.1实体之间关系E-R图
2.2功能模块
3.系统详细设计
3.1数据库逻辑设计
将以上E-R转换成如下关系模式
员工(职工号,姓名,密码)
工资(职工号,姓名,基本工资,)
津贴(职工号,姓名,奖金)
其中,标有下划线的字段表示为该数据表的主码,即主关键字。
在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。
工资信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。
每个表格表示在数据库中的一个表。
表一:
员工信息表:
列名
数据类型
可否取空
备注说明
no
Char(8)
NOTNULL
职工号(主键)
name
Char(10)
职工姓名
mi
Smallint
登录密码
表二:
基本工资表:
Char(8)
Jb
money
基本工资
表四:
津贴信息表
可否为空
Jt
津贴
3.2各模块功能
3.2.1职工信息管理系统
功能为:
财务部门相关人员录入、修改、删除、查询员工个人信息
3.2.2职工工资管理系统
功能为:
根据工资生成公式,按照员工的考勤情况及各种表现按月生成相应的工资;
财务部门相关人员能录入、修改、删除、查询每个月每个员工的工资信息以及工资汇总;
员工本人能查询自己的工资信息以及工资汇总;
3.2.3职工登陆查询系统
员工本人能通过用户名和密码查询自己的信息以及修改自己的密码;
4.系统实现
4.1界面截图
4.1.1主界面
4.1.2登录界面
4.1.3管理员管理工资界面
4.1.4信息录入,修改,删除,查询界面
4.1.5职工信息查询界面
4.1.6职工密码修改界面
4.2设计代码
DB.java
packagewage_management;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
classDBextendsJFrameimplementsActionListener{
JFrameframe=newJFrame("
欢迎进入企业工资管理系统"
);
JLabellabel=newJLabel("
"
JLabel.CENTER);
JButtonbutton1=newJButton("
进入系统"
JButtonbutton2=newJButton("
退出系统"
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);
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
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.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JPanel;
importjavax.swing.JPasswordField;
importjavax.swing.JTextField;
importcom.mysql.jdbc.PreparedStatement;
importQuery.Querypad;
classDLextendsJFrameimplementsActionListener
{
2.jpg"
JLabela2=newJLabel(im);
职工/管理员登陆"
JLabellabel1=newJLabel("
用户名"
JLabellabel2=newJLabel("
密码"
JButtonlogonButton1=newJButton("
管理员登录"
JButtonlogonButton2=newJButton("
职工登录"
JButtoncancelButton=newJButton("
退出"
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);
p.add(logonButton2);
p.add(cancelButton);
p.setBackground(Color.cyan);
p.setVisible(true);
logonButton1.addActionListener(this);
logonButton2.addActionListener(this);
cancelButton.addActionListener(this);
frame.setBounds(200,100,500,220);
publicvoidactionPerformed(ActionEvente)
t1=username.getText();
t2=password.getText();
if(e.getSource()==logonButton1)
{
if(username.getText().equals("
admin"
)==true
&
&
(password.getText().equals("
)==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"
).newInstance();
con=DriverManager.getConnection(
"
jdbc:
mysql:
//localhost:
3306/wagemanagement"
"
root"
jxb"
sql="
select*fromworkerinfowherename='
+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()))//退出
GZGLZJM.java//工资管理主界面
classGZGLZJMextendsJFrameimplementsActionListener{
JFramef=newJFrame("
工资管理系统"
JButtonb1=newJButton("
工资管理"
JButtonb2=newJButton("
员工信息管理"
JButtonb3=newJButton("
返回"
3.jpg"
voidcreate(){
JPanelp=(JPanel)f.getContentPane();
p.add(a1);
p.add(b1);
p.add(b2);
p.add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
f.setBounds(200,100,500,200);
f.setVisible(true);
if(b3.equals(e.getSource())){//返回
DLd=newDL();
d.create();
f.dispose();
if(b2.equals(e.getSource())){//员工信息管理
YGGLyg=newYGGL();
yg.create();
if(b1.equals(e.getSource())){//工资管理
GZGLgz=newGZGL();
gz.create();
//////工资管理
GZGL.java
importjava.sql.SQLException;
importjavax.swing.JScrollPane;
importjavax.swing.JSplitPane;
importjavax.swing.JTable;
publicclassGZGLextendsJFrameimplementsActionListener{
录入"
修改"
删除"
JButtonb4=newJButton("
查询所有"
JButtonb5=newJButton("
JTextFieldtf1=newJTextField(4);
JTextFieldtf2=newJTextField(4);
JTextFieldtf3=newJTextField(4);
JTextFieldtf4=newJTextField(4);
JTextFieldtf5=newJTextField(6);
JTextFieldtf6=newJTextField(7);
String[]cloum={"
职工号"
"
姓名"
津贴"
月基本工资"
月薪"
};
Object[][]row=newObject[50][5];
JTabletable=newJTable(row,cloum);
JScrollPanescrollpane=newJScrollPane(table);
JSplitPanesplitpane=newJSplitPane(JSplitPane.VERTICAL_SPLIT);
p.add(scrollpane);
p.add(splitpane);
p1.add(