数据库课程设计—企业工资管理系统(java版+完整代码)
数据库工资管理系统报告和代码大全

数据库原理及应用课程设计报告题目:工资管理系统所在学院:信息工程学院班级:学号:姓名:指导教师:2014年1月2日目录一、概述二、需求分析三、概念设计四、逻辑设计五、系统实现六、小结一、概述在工资管理中,需要从公司管理方式以及实际情况中提取相关信息,以反映工资管理情况。
传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。
使用计算机可以高速,快捷地完成以上工作。
避免重复劳动,规范工资管理行为,从而提高了管理效率和水平。
让人们的效率大大提高.不难想象,正是资讯的迅速发展使得人们从过去繁复的手工劳作中得以解脱,从而使这种服务在现在才可能迅速普及。
同时,编写一套完整的工资管理系统的任务就显得尤为重要。
本课程设计共分为四大模块:1.系统数据初始化2.工基本信息数据的输入、修改、删除;3.员工个人信息及工资表的查询;4,员工工资的计算;二、需求分析本系统主要用于员工基本信息的管理,对员工以及其他信息的添加、修改、删除、查询等基本操作。
对于数据库的保护有数据备份和数据恢复的功能。
针对这些要求,设计本月工资信息管理系统。
该系统主要包括职工信息、工资级别和工资金额、公司福利表等。
⒈员工基本状况包括员工号、员工姓名、性别、所在部门、工资级别、工资等级等。
2.工资级别和工资金额包括工资等级、工资额。
3.企业部门及工作岗位信息包括部门名称、工作岗位名称、工作岗位工资等。
4.工龄和工资金额包括工龄及对应工资额。
5.公司福利表包括福利名称、福利值。
本系统概念设计思想:1.对公司软硬件调查,从实际环境出发,以便充分利用公司现在资源,提高系统开发水平和应用效果。
图1.1 系统功能模块图图2.6信息查询及管理的流程图三、概念设计分析前面的系统功能要求,需要一个表来存储和管理员工信息,使系统能够接受员工原始的各项数据,以实现数据录入、查询或统计员工信息等功能。
员工是本系统的第一个实体。
为了能实现查询和统计部门内员工情况等功能,必须有一个表来存储和管理所有部门的信息。
数据库课程设计—企业工资管理系统(java版+完整代码)

课程设计报告企业工资管理系统姓名XXX班级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位小数,即是精确到分的计算。
工资管理系统毕业设计附源码

工资管理系统毕业设计附源码工资管理系统是一种用于管理和计算员工工资的软件系统。
它可以帮助企业自动化工资计算、发放和记录,提高工资管理的效率和准确性。
下面是一个简单的工资管理系统的毕业设计附源码的示例。
首先,我们需要设计数据库来存储员工信息和工资数据。
可以使用关系型数据库如MySQL或SQLite。
以下是一个简化的员工表和工资表的设计示例:员工表(employees):employee_id: 员工ID(主键)。
name: 员工姓名。
department: 所属部门。
position: 职位。
工资表(salaries):salary_id: 工资记录ID(主键)。
employee_id: 员工ID(外键)。
salary_date: 工资发放日期。
basic_salary: 基本工资。
bonus: 奖金。
deductions: 扣款。
total_salary: 总工资。
接下来,我们需要开发一个用户界面,让管理员可以输入员工信息和工资数据,并进行工资计算和管理。
可以使用Java编程语言和Swing图形用户界面库来实现。
以下是一个简单的Java代码示例:java.import javax.swing.;import java.awt.;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class SalaryManagementSystem extends JFrame {。
// 声明界面组件。
private JTextField idField, nameField, departmentField, positionField;private JTextField dateField, basicSalaryField, bonusField, deductionsField;private JTextArea resultArea;private JButton calculateButton, saveButton;public SalaryManagementSystem() {。
JAVA工资管理系统_百度文库_20141125_215940

!","警告 Fra bibliotek",1); } else if(!(rs.next())){ JOptionPane jop=new JOptionPane(); jop.showMessageDialog(null,"用户不存在,删除失败!","警告
沈阳工程学院Java课程设计报告 第5章 系统详细模块设计与实现
38 工资管理功能的添加信息的核心代码如下: public void actionPerformed(ActionEvent ae){ if(ae.getActionCommand().equals("退出")) dispose(); if(ae.getActionCommand().equals("清空")){ bWageTxt.setText(""); bonusTxt.setText(""); mWageTxt.setText(""); fWageTxt.setText(""); } if(ae.getActionCommand().equals("修改")){//getActionCommand()用来获得与当前动作相关的命令字符串 try{ //测试部分 sql="select * from wages where id='"+idTxt.getText()+"'"; conn=new sqlconn(); try{ rs=conn.getRs(sql); if(!(rs.next())){ JOptionPane jop=new JOptionPane(); jop.showMessageDialog(null,"用户不存在,修改失败!","警告
Java和SQL-Server2000开发的职工和工资管理系统(全过程及代码)

工资管理系统一,设计数据库SalaryManagement职工表:工资表二,创建“数据源(ODBC)”具体步骤:“开始”-“控制面板”-“管理工具”-“数据源(ODBC)-在用户DNS里,点“添加”--在数据源驱动列表最下方选择“SQLServer”-点“完成”--出现了一个创建到SQL Server的新数据源-在数据源“名称”右侧,填写数据库的名称;在“服务器”右侧,写(local)-点“下一步”--继续点“下一步”-在更改默认的数据库为“SalaryManagement”,这里的数据库为我刚刚新建的数据库。
-点“下一步”-点“完成”-出现一个“ODBC Microsoft SQL Server 安装”对话框-点击下面的“测试数据源”-出现图2.1就好了。
图2.1-下面依次点击“确定”就完成了。
-完成了以后,你会在数据源里看到自己刚刚新建的数据源,名为:“SalaryManagement”三代码的编写:3.1数据库连接(文件名:DBConnect.java)注意,这个文件最好先编译,因为后面的main.java文件的编译会用到该文件编译完产生的DBConnect.class文件//类DBConnect用于数据库的连接//导入sql包import java.sql.*;//创建数据库连接类DBConnectpublic class DBConnect{//静态方法提高数据库的连接效率public static Connection getConn() throws Exception{//加载JDBC驱动Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//以系统默认用户身份,连接数据库StudentManagerreturn DriverManager.getConnection("jdbc:odbc:SalaryManagement","","");}}3.2 添加职工信息(文件名:AddEmployee.java)//添加职工面板类AddEmployee//导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“添加职工“面板类public class AddEmployee extends JPanel implements ActionListener {//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;//创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel("职工工号");JLabel jLabel2=new JLabel("职工姓名");JLabel jLabel3=new JLabel("职工性别");JLabel jLabel4=new JLabel("职工年龄");JLabel jLabel5=new JLabel("家庭住址");JLabel jLabel6=new JLabel("联系电话");JTextField jTextField1=new JTextField();JTextField jTextField2=new JTextField();JTextField jTextField3=new JTextField();JTextField jTextField4=new JTextField();JTextField jTextField5=new JTextField();JRadioButton jRadioButton1=new JRadioButton("男");JRadioButton jRadioButton2=new JRadioButton("女");ButtonGroup buttonGroup1=new ButtonGroup();JButton jButton1=new JButton("添加职工");//构造方法public AddEmployee(){try{//调用初始化方法jbInit();}catch(Exception exception){exception.printStackTrace();}}//界面初始化方法private void jbInit() throws Exception{//连接数据库con=DBConnect.getConn();st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setBounds(new Rectangle(21,17,64,24));jLabel2.setBounds(new Rectangle(21,51,53,22));jLabel3.setBounds(new Rectangle(21,86,61,27));jLabel4.setBounds(new Rectangle(21,122,59,25));jLabel5.setBounds(new Rectangle(21,168,54,24));jLabel6.setBounds(new Rectangle(21,205,54,24));jTextField1.setBounds(new Rectangle(102,10,200,30));jTextField2.setBounds(new Rectangle(102,49,200,30));jTextField3.setBounds(new Rectangle(102,117,80,33));jTextField4.setBounds(new Rectangle(102,163,200,29));jTextField5.setBounds(new Rectangle(102,200,200,29));jRadioButton1.setBounds(new Rectangle(102,83,65,30));jRadioButton2.setBounds(new Rectangle(190,85,85,30));jButton1.setBounds(new Rectangle(130,240,150,32));//设置单选按钮被选中jRadioButton1.setSelected(true);//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jLabel2);this.add(jTextField2);this.add(jLabel3);buttonGroup1.add(jRadioButton1);buttonGroup1.add(jRadioButton2);this.add(jRadioButton1);this.add(jRadioButton2);this.add(jLabel4);this.add(jTextField3);this.add(jLabel5);this.add(jTextField4);this.add(jLabel6);this.add(jTextField5);this.add(jButton1);}//点击按钮事件public void actionPerformed(ActionEvent e){//获取用户输入的信息String EmployeeID=jTextField1.getText();String EmployeeName=jTextField2.getText();String EmployeeSex="";if(jRadioButton1.isSelected())EmployeeSex+="男";if(jRadioButton2.isSelected())EmployeeSex+="女";String EmployeeAge=jTextField3.getText();String EmployeeAddress=jTextField4.getText();String EmployeePhone=jTextField5.getText();try{//设置日期格式st.execute("set dateformat ymd");//利用st对象执行SQL语句,进行插入操作st.executeUpdate("insert into Employee values('"+EmployeeID+"','"+EmployeeName+"','"+EmployeeSex+"','"+EmployeeAge+"','"+Empl oyeeAddress+"','"+EmployeePhone+"')");//利用消息对话框提示职工添加成功JOptionPane.showMessageDialog(this,"职工添加成功!");//清空文本行的内容jTextField1.setText("");jTextField2.setText("");jTextField3.setText("");jTextField4.setText("");jTextField5.setText("");}catch(Exception ex){//利用消息对话框提示异常的信息JOptionPane.showMessageDialog(this,"职工添加失败!");ex.printStackTrace();}}}3.3 修改职工信息(文件名:ModifyEmployee.java)//“职工信息修改”面板类ModifyEmployee//导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“职工信息修改资”类public class ModifyEmployee extends JPanel implements ActionListener {//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;//创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel("请输入职工的编号:");JTextField jTextField1=new JTextField();JButton jButton1=new JButton("查找该职工");JLabel jLabel2=new JLabel("职工编号:");JTextField jTextField2=new JTextField();JLabel jLabel3=new JLabel("职工姓名:");JTextField jTextField3=new JTextField();JLabel jLabel4=new JLabel("职工性别:");JTextField jTextField4=new JTextField();JLabel jLabel5=new JLabel("职工年龄:");JTextField jTextField5=new JTextField();JLabel jLabel6=new JLabel("家庭住址:");JTextField jTextField6=new JTextField();JLabel jLabel7=new JLabel("联系电话:");JTextField jTextField7=new JTextField();JButton jButton2=new JButton("修改职工信息");//构造方法public ModifyEmployee(){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,14)); jLabel1.setBounds(new Rectangle(40,15,140,30)); jTextField1.setBounds(new Rectangle(185,15,120,30)); jButton1.setBounds(new Rectangle(110,55,150,30)); jLabel2.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel2.setBounds(new Rectangle(20,105,80,30)); jTextField2.setBounds(new Rectangle(100,105,80,30)); jLabel3.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel3.setBounds(new Rectangle(190,105,80,30)); jTextField3.setBounds(new Rectangle(270,105,80,30)); jLabel4.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel4.setBounds(new Rectangle(20,145,80,30)); jTextField4.setBounds(new Rectangle(100,145,80,30)); jLabel5.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel5.setBounds(new Rectangle(190,145,80,30)); jTextField5.setBounds(new Rectangle(270,145,80,30)); jLabel6.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel6.setBounds(new Rectangle(20,185,80,30)); jTextField6.setBounds(new Rectangle(100,185,80,30)); jLabel7.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel7.setBounds(new Rectangle(190,185,80,30)); jTextField7.setBounds(new Rectangle(270,185,80,30)); jButton2.setBounds(new Rectangle(120,240,150,30));//添加按钮动作事件jButton1.addActionListener(this);jButton2.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jButton1);this.add(jLabel2);this.add(jTextField2);jTextField2.setEditable(false);this.add(jLabel3);this.add(jTextField3);this.add(jLabel4);this.add(jTextField4);this.add(jLabel5);this.add(jTextField5);this.add(jLabel6);this.add(jTextField6);this.add(jLabel7);this.add(jTextField7);this.add(jButton2);}//点击按钮事件public void actionPerformed(ActionEvent actionevent){//点击“查找该职工”按钮if(actionevent.getSource()==jButton1){try{//利用st对象执行SQL语句,返回结果集对象ResultSet rs=st.executeQuery("select * from Employee where 职工编号='"+jTextField1.getText()+"'");//处理结果集if(rs.next()){jTextField2.setText(rs.getString("职工编号"));jTextField3.setText(rs.getString("职工姓名"));jTextField4.setText(rs.getString("职工性别"));jTextField5.setText(rs.getString("职工年龄"));jTextField6.setText(rs.getString("家庭住址"));jTextField7.setText(rs.getString("联系电话"));}else{JOptionPane.showMessageDialog(this,"没有这个工号的职工!");}}catch(Exception ex){//利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"职工信息修改失败!");}}//点击“修改工资”按钮if(actionevent.getSource()==jButton2){//获取用户更改的工资try{//利用st对象执行SQL语句,进行插入操作st.executeUpdate("update Employee set 职工姓名='"+jTextField3.getText()+"' where 职工编号='"+jTextField2.getText()+"'");st.executeUpdate("update Employee set 职工性别='"+jTextField4.getText()+"' where 职工编号='"+jTextField2.getText()+"'");st.executeUpdate("update Employee set 职工年龄='"+jTextField5.getText()+"' where 职工编号='"+jTextField2.getText()+"'");st.executeUpdate("update Employee set 家庭住址='"+jTextField6.getText()+"' where 职工编号='"+jTextField2.getText()+"'");st.executeUpdate("update Employee set 联系电话='"+jTextField7.getText()+"' where 职工编号='"+jTextField2.getText()+"'");//利用消息对话框提示职工信息修改成功JOptionPane.showMessageDialog(this,"职工信息修改成功!");}catch(Exception ex){//利用消息对话框提示异常的信息JOptionPane.showMessageDialog(this,"职工信息修改失败!");ex.printStackTrace();}}}}3.4 删除职工信息(文件名:DeleteEmployee.java)//”删除职工“面板类DeleteEmployee//导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“删除职工”类public class DeleteEmployee extends JPanel implements ActionListener{//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;//创建组件对象JLabel jLabel1=new JLabel("请输入待删除的职工的编号");JTextField jTextField1=new JTextField();JButton jButton1=new JButton("删除");//构造方法public DeleteEmployee(){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,14));jLabel1.setBounds(new Rectangle(70,20,200,30));jTextField1.setBounds(new Rectangle(70,80,207,41));jButton1.setBounds(new Rectangle(70,175,205,36));//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jButton1);}//点击按钮事件public void actionPerformed(ActionEvent e){//获取用户输入的职工编号String EmployeeID=jTextField1.getText();//要求用户确认删除if(JOptionPane.showConfirmDialog(this,"确认要删除吗?")==JOptionPane.YES_OPTION){try{//利用st对象执行SQL删除操作st.executeUpdate("delete from Employee where 职工编号='"+EmployeeID+"'");//利用消息对话框提示删除操作成功JOptionPane.showMessageDialog(this,"职工删除操作,执行成功!");//清空输入学号的文本行jTextField1.setText("");}catch(Exception ex){//利用消息对话框提示不能删除JOptionPane.showMessageDialog(this,"职工删除操作,执行失败!");}}}}3.5 添加工资类(文件名:AddSalary.java)//"添加工资"面板类AddSalary//导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“添加工资“类public class AddSalary extends JPanel implements ActionListener {//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;//创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel("职工工号");JLabel jLabel2=new JLabel("职工工资");JTextField jTextField1=new JTextField();JTextField jTextField2=new JTextField();JButton jButton1=new JButton("添加工资");//构造方法public AddSalary(){try{//调用初始化方法jbInit();}catch(Exception exception){exception.printStackTrace();}}//界面初始化方法private void jbInit() throws Exception{//连接数据库con=DBConnect.getConn();st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setBounds(new Rectangle(21,17,64,24));jLabel2.setBounds(new Rectangle(21,51,53,22));jTextField1.setBounds(new Rectangle(102,10,200,30));jTextField2.setBounds(new Rectangle(102,60,200,30));jButton1.setBounds(new Rectangle(130,120,150,32));//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jLabel2);this.add(jTextField2);this.add(jButton1);}//点击按钮事件public void actionPerformed(ActionEvent e){//获取用户输入的信息String EmployeeID=jTextField1.getText();String EmployeeSalary=jTextField2.getText();try{//利用st对象执行SQL语句,进行插入操作st.executeUpdate("insert into Salary values('"+EmployeeID+"','"+EmployeeSalary+"')");//利用消息对话框提示工资添加成功JOptionPane.showMessageDialog(this,"工资添加成功!");//清空文本行的内容jTextField1.setText("");jTextField2.setText("");}catch(Exception ex){//利用消息对话框提示异常的信息JOptionPane.showMessageDialog(this,"工资添加失败!");ex.printStackTrace();}}}3.6 修改工资信息(文件名ModifySalary.java)//“修改工资”面板类ModifySalary//导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“修改工资”面板类public class ModifySalary extends JPanel implements ActionListener {//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;//创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel("请输入职工的编号:");JTextField jTextField1=new JTextField();JButton jButton1=new JButton("查找该职工");JLabel jLabel2=new JLabel("职工编号:");JTextField jTextField2=new JTextField();JLabel jLabel3=new JLabel("职工工资:");JTextField jTextField3=new JTextField();JButton jButton2=new JButton("修改工资");//构造方法public ModifySalary(){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,14));jLabel1.setBounds(new Rectangle(40,25,140,30));jTextField1.setBounds(new Rectangle(185,25,120,30));jButton1.setBounds(new Rectangle(110,65,120,30));jLabel2.setFont(new java.awt.Font("楷体",Font.BOLD,14));jLabel2.setBounds(new Rectangle(90,125,80,30));jTextField2.setBounds(new Rectangle(170,125,80,30));jLabel3.setFont(new java.awt.Font("楷体",Font.BOLD,14));jLabel3.setBounds(new Rectangle(90,160,80,30));jTextField3.setBounds(new Rectangle(170,160,80,30));jButton2.setBounds(new Rectangle(120,200,100,30));//添加按钮动作事件jButton1.addActionListener(this);jButton2.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jButton1);this.add(jLabel2);this.add(jTextField2);jTextField2.setEditable(false);this.add(jLabel3);this.add(jTextField3);this.add(jButton2);}//点击按钮事件public void actionPerformed(ActionEvent actionevent){//点击“查找该职工”按钮if(actionevent.getSource()==jButton1){//获取输入的职工的编号String EmployeeID=jTextField1.getText();try{//利用st对象执行SQL语句,返回结果集对象ResultSet rs=st.executeQuery("select * from Salary where 职工编号='"+EmployeeID+"'");//处理结果集if(rs.next()){jTextField2.setText(rs.getString("职工编号"));jTextField3.setText(rs.getString("职工工资"));}else{JOptionPane.showMessageDialog(this,"没有这个工号的职工!");}}catch(Exception ex){//利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"工资修改失败!");}}//点击“修改工资”按钮if(actionevent.getSource()==jButton2){//获取用户更改的工资try{//利用st对象执行SQL语句,进行修改操作st.executeUpdate("update Salary set 职工工资='"+jTextField3.getText()+"' where 职工编号='"+jTextField2.getText()+"'");//利用消息对话框提示工资修改成功JOptionPane.showMessageDialog(this,"工资修改成功!");}catch(Exception ex){//利用消息对话框提示异常的信息JOptionPane.showMessageDialog(this,"工资修改失败!");ex.printStackTrace();}}}}3.7 查询工资(文件名SalaryInquire.java)//"工资查询"面板类SalaryInquire//导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“工资查询”类public class SalaryInquire 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 SalaryInquire(){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 Salary where 职工编号='"+EmployeeID+"'");//处理结果集if(rs.next()){jTextArea1.setText("职工编号:"+rs.getString("职工编号")+"\n"+"职工工资:"+rs.getString("职工工资")+"\n");}else{JOptionPane.showMessageDialog(this,"该工号的职工没有工资记录!");}}catch(Exception ex){//利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"工资查询失败!");}}}3.8 按编号查询程序(文件名InquireOnGH.java)//"按职工的编号查询"面板类InquireOnGH//导入系统的类包import java.awt.*;import 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 职工编号='"+EmployeeID+"'");//处理结果集if(rs.next()){jTextArea1.setText("职工编号:"+rs.getString("职工编号")+"\n"+"职工姓名:"+rs.getString("职工姓名")+"\n"+"职工性别:"+rs.getString("职工性别")+"\n"+"职工年龄:"+rs.getString("职工年龄")+"\n"+"家庭住址:"+rs.getString("家庭住址")+"\n"+"联系电话:"+rs.getString("联系电话")+"\n");}else{JOptionPane.showMessageDialog(this,"没有这个工号的职工!");}}catch(Exception ex){//利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"职工查询失败!");}}}3.9 按姓名查询程序(文件名InquireOnName.java)//"按职工的姓名查询"面板类InquireOnName//导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“按职工的姓名查询”类public class InquireOnName 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 InquireOnName(){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 EmployeeName=jTextField1.getText();//清空文本区原有的内容jTextArea1.setText("");try{//利用st对象执行SQL语句,返回结果集对象ResultSet rs=st.executeQuery("select * from Employee where 职工姓名='"+EmployeeName+"'");//处理结果集if(rs.next()){jTextArea1.setText("职工编号:"+rs.getString("职工编号")+"\n"+"职工姓名:"+rs.getString("职工姓名")+"\n"+"职工性别:"+rs.getString("职工性别")+"\n"+"职工年龄:"+rs.getString("职工年龄")+"\n"+"家庭住址:"+rs.getString("家庭住址")+"\n"+"联系电话:"+rs.getString("联系电话")+"\n");}else{JOptionPane.showMessageDialog(this,"没有这个工号的职工!");}}catch(Exception ex){//利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"职工查询失败!");}}}3.10 按帮助查询程序(文件名EmployeeHelp.java)//“帮助”面板类EmployeeHelp//导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“帮助”面板类public class EmployeeHelp extends JPanel{//创建组件对象:标签JLabel jLabel1=new JLabel("有问题,请你联系作者:");JLabel jLabel4=new JLabel("林德军");JLabel jLabel2=new JLabel("QQ:929156887");JLabel jLabel3=new JLabel("邮箱:929156887@");//构造方法public EmployeeHelp(){try{//调用初始化方法jbInit();}catch(Exception exception){exception.printStackTrace();}}//初始化private void jbInit() throws Exception{//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setFont(new java.awt.Font("楷体",Font.BOLD,20));jLabel1.setBounds(new Rectangle(50,50,300,30));jLabel4.setFont(new java.awt.Font("楷体",Font.BOLD,20));jLabel4.setBounds(new Rectangle(50,90,150,30));jLabel2.setFont(new java.awt.Font("楷体",Font.BOLD,20));jLabel2.setBounds(new Rectangle(50,140,300,30));jLabel3.setFont(new java.awt.Font("楷体",Font.BOLD,20));jLabel3.setBounds(new Rectangle(50,180,300,30));//添加组件到面板this.add(jLabel1);this.add(jLabel2);this.add(jLabel3);this.add(jLabel4);}}3.11 主框架程序(文件名MainFrame.java)//系统主框架类//导入系统的包import java.awt.*;import java.awt.event.*;import javax.swing.*;//创建主框架类MainFramepublic 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("按姓名查询");JMenu jMenu4=new JMenu("帮助");JMenuItem jMenuItem9=new JMenuItem("互动");//创建标签,用于显示信息JLabel jLabel1=new JLabel("职工和工资管理小系统"); JLabel jLabel2=new JLabel("2010年12月22日,林德军"); //创建构造方法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);jMenuBar1.add(jMenu4);//添加菜单项到菜单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);jMenu4.add(jMenuItem9);//添加标签到主框架内容面板contentPane.add(jLabel1);contentPane.add(jLabel2);//设置标签组件的大小和字体jLabel1.setFont(new java.awt.Font("黑体",Font.BOLD,20));jLabel1.setBounds(new Rectangle(65,70,275,55));jLabel2.setFont(new java.awt.Font("黑体",Font.BOLD,16));jLabel2.setBounds(new Rectangle(90,150,200,35));}//菜单项事件对应的处理方法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)。
工资管理系统数据库课程设计源码

一、课程设计主题介绍本次课程设计的主题为工资管理系统数据库,旨在通过设计一个完善的工资管理系统数据库,实现对公司员工工资信息的管理和查询功能。
工资管理系统是企业日常管理中不可或缺的一部分,良好的工资管理系统能够有效提高企业的管理效率和员工的工作积极性,具有重要的实际意义。
二、系统需求分析1. 用户需求:系统应具有权限管理、员工信息管理、薪资发放管理等功能,不同用户拥有不同的操作权限。
2. 数据需求:系统需要存储员工基本信息、薪资信息、考勤信息等数据。
3. 界面需求:系统应具有友好的操作界面,用户操作简单方便。
4. 安全需求:系统要保证数据的安全性,防止未授权人员获取敏感信息。
三、系统设计思路1. 数据库设计:设计员工表、薪资表、权限表等数据库表结构,确保数据存储的规范性和完整性。
2. 功能设计:设计权限管理模块、员工信息管理模块、薪资发放管理模块等系统功能。
3. 界面设计:设计简洁清晰的操作界面,使用户能够轻松上手。
4. 安全设计:采用加密算法保护用户信息,设置严格的权限控制,防止数据泄露和篡改。
四、系统技术选型本系统选用MySQL数据库存储数据,采用Python语言进行后台逻辑开发,使用Django框架进行Web应用开发,前端界面采用HTML、CSS和JavaScript技术实现。
五、系统功能实现1. 权限管理:管理员用户可以设置不同用户的权限,包括查看员工信息、修改薪资、导出报表等操作。
2. 员工信息管理:实现员工信息的增加、修改、删除、查询等功能,包括基本信息、通联方式、部门信息等。
3. 薪资发放管理:实现对员工薪资的发放、调整、查询等功能,包括工资条生成、导出等。
4. 数据统计报表:系统可以生成各类工资统计报表,包括月度工资报表、年度工资报表等。
六、系统调试和测试在系统开发完成后,对系统进行全面的功能测试和性能测试,确保系统稳定可靠、业务流程正常、响应速度合理等。
七、系统部署和运行系统部署到服务器上,对外提供访问服务,确保系统在日常运行中稳定运行。
(完整)java课程设计-----员工工资管理系统-

(完整)java课程设计-----员工工资管理系统-编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)java课程设计-----员工工资管理系统-)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)java课程设计-----员工工资管理系统-的全部内容。
《JAVA程序语言设计》课程设计报告书设计题目:员工工资管理系统指导老师:学生班级:软工1602学生学号: 2016028学生姓名:同组人员:时间: 2018年12月一.引言1.1项目的名称员工工资管理系统1.2项目背景和目标职工工资信息管理系统主要能够对职工个人信息进行管理,对职工用户提供个人信息查询,工资查询等,对管理用户提供增加,修改,删除员工信息等操作.我们的目标就是为该系统提供后台连接数据库程序设计以及前台用户界面设计。
1.3项目的可行性研究设计此系统需要Java 面向对象编程基础,数据库应用知识以及功能分析。
根据目前所开设的课程,学生已经具备了这样的知识,有能力综合Java 编程知识和数据库应用知识做出一个这样的职工工资信息管理系统。
二.需求分析2.1 系统概述此系统提供给公司职工和管理者使用,职工登陆后可以对自己的信息进行查询,管理者登陆后可以对职工的信息进行修改,增加,删除等操作。
2.2 系统运行环境Java 程序运行在eclipse 软件上编译并且运行,数据库用MYSQL 数据库三. 系统设计3.1 开发与设计的总体思想职工方面:职工可以通过自己的职工号和密码登陆后,进入职工主界面,在这个主界面里,职工可以进行信息查询操作。
管理员方面:管理员通过自己的密码登陆后可以选择:查询功能,修改功能。
数据库课程设计实验报告-工资管理系统

延安大学计算机学院实验报告专用纸实验室:软件工程实验室学号:实验日期:2013年11月日(1)。
需求分析工资管理信息系统对企业加强工资管理有着极其重要的作用,就一般的大型企业来说,它的设计内容非常复杂而且繁多,比如拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比如工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等等.在做这个管理系统时,我们既咨询了父母又结合了教师等不同行业人士的工资情况,发现该系统受些许因素牵制比如说:公司大小,人员流动性,员工学历等通过我们的了解调查最终总结出系统功能如下:a。
整体结构合理, 模块化结构利于操作。
b。
完整的数据输入,输出,维护.c。
拥有不错的自检性,用户输错或误输均有提示。
d. 拥有较强的容错性,某个用户的错误操作不会引起系统的瘫痪。
e. 程序接口灵活,以便日后操作与维护。
f. 在不影响系统功能的前提下,美化操作界面.(2)。
概念设计○1E-R图错误!数据流图(3).逻辑设计基本信息(员工编号号,姓名,性别,毕业学校,所学专业,学历,电话,住址,从事岗位).考勤信息表(员工编号,姓名,请假天数,矿工天数,月迟到次数,月份).加班信息表(员工编号,姓名,晚班加班(天),周末加班(天),春节加班(天),节假日加班(天),月份)。
岗位信息表(员工编号,姓名,从事岗位,基本工资,部门名称)。
部门信息表(部门编号,部门名称,部门经理,部门人数)根据基本表创建了如下视图:加班津贴(员工编号,姓名,加班薪酬,月份)缺勤扣除表(员工编号,姓名,扣除工资,月份)月工资表(员工编号,姓名,基本工资,扣除工资,加班薪酬,实得工资,月份)年终奖(员工编号,姓名,奖(4).数据字典视图的创建:(5)。
系统的实现开发环境:SQL server 2005及eclipse○,1用SQL语言创建数据库Array 1.基本信息表(JBXX)Create table JBXX(Empno int not null primarykey,Emname varchar(8) not null,Sex char(2)check(Sex=’ 男’or Sex=’女’),School varchar(20)null,Profession varchar(20) null,Education varchar(6) null,Phone char(11) null,Address varchar(15)null)3.加班信息表(OVERTIMEINFORMA TION)Create table OVERTIMEINFORMATION(Empno int not null ,Night int null,Weekend int null,Festival int null,Special int null,Themonth int not null,5。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告企业工资管理系统姓名XXX班级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.2职工信息的载入图1.4考勤的信息载入2.总体设计2.1数据库概念设计有了数据流图,用E-R图来说明工资信息管理系统的数据库概念模式,如图2.2功能模块3.系统详细设计3.1数据库逻辑设计将以上E-R转换成如下关系模式员工(职工号,姓名,密码)工资(职工号,姓名,基本工资,)津贴(职工号,姓名,奖金)其中,标有下划线的字段表示为该数据表的主码,即主关键字。
在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。
工资信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。
每个表格表示在数据库中的一个表。
表一:员工信息表: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.javapackage wage_management;import java.awt.*;import java.awt.event.*;import javax.swing.*;class DB extends JFrame implements ActionListener { JFrame frame = new JFrame("欢迎进入企业工资管理系统");JLabel label = new JLabel("", JLabel.CENTER);JButton button1 = new JButton("进入系统");JButton button2 = new JButton("退出系统");ImageIcon im = new ImageIcon("1.jpg");JLabel a1 = new JLabel(im);void Create() {JPanel pcontentPane = (JPanel) frame.getContentPane();pcontentPane.add(a1);pcontentPane.add(label);pcontentPane.setLayout(new FlowLayout());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);}public static void main(String[] args) {DB dome = new DB();dome.Create();}public void actionPerformed(ActionEvent e) {if (button1.equals(e.getSource())) {DL dl = new DL();dl.create();frame.dispose();}if (button2.equals(e.getSource())) {// 退出System.exit(0);}}}登陆DL.javapackage wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import com.mysql.jdbc.PreparedStatement;import Query.Querypad;class DL extends JFrame implements ActionListener {ImageIcon im = new ImageIcon("2.jpg");JLabel a2 = new JLabel(im);JFrame frame = new JFrame("职工/管理员登陆");JLabel label1 = new JLabel("用户名");JLabel label2 = new JLabel("密码");JButton logonButton1 = new JButton("管理员登录");JButton logonButton2 = new JButton("职工登录");JButton cancelButton = new JButton("退出");JTextField username = new JTextField(9);JPasswordField password = new JPasswordField(9);static String t1;static String t2;void create(){JPanel p = (JPanel) frame.getContentPane();JPanel p1 = new JPanel();p.setLayout(new FlowLayout());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.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setBounds(200, 100, 500, 220);frame.setVisible(true);}public void actionPerformed(ActionEvent e){t1 = username.getText();t2 = password.getText();if(e.getSource()==logonButton1){if( username.getText().equals("admin") == true&& (password.getText().equals("admin") == true)){JOptionPane.showMessageDialog(this, "登录成功!");GZGLZJM gz = new GZGLZJM();gz.create();frame.dispose();}else {JOptionPane.showMessageDialog(null, "输入用户名或密码错误!");}}if (e.getSource()==logonButton2){try {Connection con;Statement ps;ResultSet rs;String sql = 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 * from workerinfo where name='"+t1+"' and mi='"+t2+"'";ps=(PreparedStatement)con.prepareStatement(sql);rs = ps.executeQuery(sql);if(rs.next()){if(rs.getString("name").equals(t1) && rs.getString("mi").equals(t2)){YGDLJM yg = new YGDLJM();yg.create();frame.dispose();JOptionPane.showMessageDialog(this, "登录成功!");this.dispose();}}else {JOptionPane.showMessageDialog(this, "输入用户名或密码错误!");}}catch (Exception e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}if (cancelButton.equals(e.getSource())) // 退出{System.exit(0);}}}GZGLZJM.java//工资管理主界面package wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;class GZGLZJM extends JFrame implements ActionListener {JFrame f = new JFrame("工资管理系统");JButton b1 = new JButton("工资管理");JButton b2 = new JButton("员工信息管理");JButton b3 = new JButton("返回");ImageIcon im = new ImageIcon("3.jpg");JLabel a1 = new JLabel(im);void create() {JPanel p = (JPanel) f.getContentPane();p.setLayout(new FlowLayout());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);}public void actionPerformed(ActionEvent e) {if (b3.equals(e.getSource())) {// 返回DL d = new DL();d.create();f.dispose();}if (b2.equals(e.getSource())) {// 员工信息管理YGGL yg = new YGGL();yg.create();f.dispose();}if (b1.equals(e.getSource())) {// 工资管理GZGL gz = new GZGL();gz.create();f.dispose();}}}//////工资管理GZGL.javapackage wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JTable;import javax.swing.JTextField;public class GZGL extends JFrame implements Act ionListener {JFrame f = new JFrame("工资管理");JButton b1 = new JButton("录入");JButton b2 = new JButton("修改");JButton b3 = new JButton("删除");JButton b4 = new JButton("查询所有");JButton b5 = new JButton("返回");JTextField tf1 = new JTextField(4);JTextField tf2 = new JTextField(4);JTextField tf3 = new JTextField(4);JTextField tf4 = new JTextField(4);JTextField tf5 = new JTextField(6);JTextField tf6 = new JTextField(7);String[] cloum = { "职工号", "姓名", "津贴", "月基本工资","月薪"};Object[][] row = new Object[50][5];JTable table = new JTable(row, cloum);JScrollPane scrollpane = new JScrollPane(table);JSplitPane splitpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);void create() {JPanel p = (JPanel) f.getContentPane();p.setLayout(new FlowLayout());p.add(scrollpane);p.add(splitpane);JPanel p1 = new JPanel();p1.add(b1);p1.add(b2);p1.add(b3);p1.add(b4);p1.add(b5);JPanel p2 = new JPanel();p2.setBackground(Color.cyan);p2.add(scrollpane);JPanel p3 = new JPanel();p.setLayout(new FlowLayout());p.add(new JLabel(""));p.add(new JLabel("职工号"));p.add(tf1);p.add(new JLabel("姓名"));p.add(tf2);p.add(new JLabel("津贴"));p.add(tf3);p.add(new JLabel("月基本工资"));p.add(tf4);p.add(new JLabel("月薪"));p.add(tf5);p.add(new JLabel("在此处输入职工号点击查询删除"));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);}public void actionPerformed(ActionEvent e) {if (b1.equals(e.getSource())) { // 录入Connection con;Statement sql;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {System.out.println("" + e1);}try {con=DriverManager.getConnection("jdbc:mysql://localhost :3306/wage management","root","jxb");sql = con.createStatement();String insertStr = "INSERT INTO welfare (no,name,jt)VALUES('"+tf1.getText()+"','"+tf2.getText()+"' ,'"+tf3.getText()+"');";sql.executeUpdate(insertStr);String insertStr1 = "INSERT INTO wageinfo (no,name,jb)VALUES('"+tf1.getText()+"','"+tf2.getText()+"','"+tf4.getText()+"');";sql.executeUpdate(insertStr1);con.close();JOptionPane.showMessageDialog(this, "入录成功!");} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "入录失败!");}}if (b2.equals(e.getSource())) {// 修改Connection con;Statement sql;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {System.out.println("" + e1);}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement();String updateStr = "UPDATE welfare SET jt='"+tf3.getText()+"',name='"+tf2.getText()+"'whereno='"+tf1.getText()+"';";sql.executeUpdate(updateStr);String updateStr1 = "UPDATE wageinfo SET jb='"+tf4.getText()+"',name='"+tf2.getText()+"'whereno='"+tf1.getText()+"';";sql.executeUpdate(updateStr1);JOptionPane.showMessageDialog(this, "修改成功!");con.close();} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "信息不存在!");}}if (b3.equals(e.getSource())) {// 删除Connection con;Statement sql;ResultSet rs;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {System.out.println("" + e1);}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);sql.executeUpdate("DELETE FROM wageinfo where no='"+tf6.getText()+"';");sql.executeUpdate("DELETE FROM welfare where no='"+tf6.getText()+"';");JOptionPane.showMessageDialog(this, "删除成功!");con.close();} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "删除失败!");}}if (b4.equals(e.getSource())) {// 查询全部Connection con;Statement sql;ResultSet rs;//Vector vector = new Vector();try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {JOptionPane.showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);if (b4.equals(e.getSource())) {for (int i = 0; i < 50; i++)for (int j = 0; j < 4; j++)table.setValueAt("", i, j);rs = sql.executeQuery("select distinct * from wageinfo ,welfare where =");int k = -1;while (rs.next()) {++k;String no = rs.getString(1);String name = rs.getString(2);String jb = rs.getString(3);String jt = rs.getString(6);int sum= rs.getInt(3)+rs.getInt(6);table.setValueAt(no, k, 0);table.setValueAt(name, k, 1);table.setValueAt(jb, k, 3);table.setValueAt(jt, k, 2);table.setValueAt(sum,k,4);}}} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "查询失败!");}}if (b5.equals(e.getSource())) {// 返回GZGLZJM gl=new GZGLZJM();gl.create();f.dispose();}}}////////修改管理主界面YGGLZJM.javapackage wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JTable;public class YGDLJM extends DL implements ActionListener { JFrame f = new JFrame("工资管理");JButton b1 = new JButton("查询个人工资");JButton b2 = new JButton("修改密码");JButton b3 = new JButton("返回");String[] cloum = { "职工号", "姓名", "津贴", "月基本工资","月薪"};Object[][] row = new Object[50][5];JTable table = new JTable(row, cloum);JScrollPane scrollpane = new JScrollPane(table);JSplitPane splitpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);void create() {JPanel p = (JPanel) f.getContentPane();p.setLayout(new FlowLayout());p.add(scrollpane);p.add(splitpane);JPanel p1 = new JPanel();p1.add(b1);p1.add(b2);p1.add(b3);JPanel p2 = new JPanel();p2.setBackground(Color.cyan);p2.add(scrollpane);JPanel p3 = new JPanel();p.setLayout(new FlowLayout());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);f.setBounds(200, 100, 500, 550);f.setResizable(true);// 可以调整界面大小f.setVisible(true);}public void actionPerformed(ActionEvent e) {if (b1.equals(e.getSource())) {// 查询个人工资Connection con;Statement sql;ResultSet rs;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {System.out.println("" + e1);}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);if (b1.equals(e.getSource())) {for (int i = 0; i < 50; i++)for (int j = 0; j < 4; j++)table.setValueAt("", i, j);//System.out.println(t1);rs = sql.executeQuery("select distinct * fromwageinfo ,welfare,workerinfo where wageinfo.no=welfare.no and wageinfo.no=workerinfo.no and ='"+t1+"' and workerinfo.mi='"+t2+"'");int k = -1;while (rs.next()) {++k;String no = rs.getString(1);String name = rs.getString(2);String jb = rs.getString(3);String jt = rs.getString(6);int sum= rs.getInt(3)+rs.getInt(6);table.setValueAt(no, k, 0);table.setValueAt(name, k, 1);table.setValueAt(jb, k, 3);table.setValueAt(jt, k, 2);table.setValueAt(sum,k,4);}}} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "查询失败!");}}if (b2.equals(e.getSource())){// 修改密码XGMM xgmm=new XGMM();xgmm.create();}if (b3.equals(e.getSource())) {// 返回DL dl=new DL();dl.create();f.dispose();}}}///修改管理YGGL.javapackage wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JTable;import javax.swing.JTextField;public class YGGL extends JFrame implements ActionListener {JFrame f = new JFrame("员工信息管理");JButton b1 = new JButton("添加新员工信息");JButton b2 = new JButton("修改员工信息");JButton b3 = new JButton("删除员工信息");JButton b4 = new JButton("查询所有员工信息");JButton b5 = new JButton("返回");JTextField tf1 = new JTextField(4);JTextField tf2 = new JTextField(4);JTextField tf3 = new JTextField(4);JTextField tf4 = new JTextField(4);JTextField tf5 = new JTextField(6);JTextField tf6 = new JTextField(7);String[] cloum = { "职工号", "姓名", "津贴", "月基本工资","月薪","登陆密码"};Object[][] row = new Object[50][6];JTable table = new JTable(row, cloum);JScrollPane scrollpane = new JScrollPane(table);JSplitPane splitpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);void create() {JPanel p = (JPanel) f.getContentPane();p.setLayout(new FlowLayout());p.add(scrollpane);p.add(splitpane);JPanel p1 = new JPanel();p1.add(b1);p1.add(b2);p1.add(b3);p1.add(b4);p1.add(b5);JPanel p2 = new JPanel();p2.setBackground(Color.cyan);p2.add(scrollpane);p.setLayout(new FlowLayout());p.add(new JLabel(""));p.add(new JLabel("职工号"));p.add(tf1);p.add(new JLabel("姓名"));p.add(tf2);p.add(new JLabel("津贴"));p.add(tf3);p.add(new JLabel("月基本工资"));p.add(tf4);p.add(new JLabel("登陆密码"));p.add(tf5);p.add(new JLabel(" 在此处输入职工号点击查询删除"));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, 600, 600);f.setResizable(true);// 可以调整界面大小f.setVisible(true);}public void actionPerformed(ActionEvent e) {if (b1.equals(e.getSource())) { // 添加新员工信息Connection con;Statement sql;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {JOptionPane.showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement();String insertStr = "INSERT INTO welfare (no,name,jt)VALUES('"+tf1.getText()+"','"+tf2.getText()+"' ,'"+tf3.getText()+"');";sql.executeUpdate(insertStr);String insertStr1 = "INSERT INTO wageinfo (no,name,jb)VALUES('"+tf1.getText()+"','"+tf2.getText()+"' ,'"+tf4.getText()+"');";sql.executeUpdate(insertStr1);String insertStr2 = "INSERT INTO workerinfo (no,name,mi)VALUES('"+tf1.getText()+"','"+tf2.getText()+"' ,'"+tf5.getText()+"');";sql.executeUpdate(insertStr2);JOptionPane.showMessageDialog(this, "添加成功!");con.close();} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "添加失败!");}}if (b2.equals(e.getSource())) {// 修改员工信息Connection con;Statement sql;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {JOptionPane.showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/wage management","root","jxb");sql = con.createStatement();con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement();String updateStr = "UPDATE welfare SET jt='"+tf3.getText()+"',name='"+tf2.getText()+"'whereno='"+tf1.getText()+"';";sql.executeUpdate(updateStr);String updateStr1 = "UPDATE wageinfo SET jb='"+tf4.getText()+"',name='"+tf2.getText()+"'whereno='"+tf1.getText()+"';";sql.executeUpdate(updateStr1);sql.executeUpdate(updateStr1);String updateStr2 = "UPDATE workerinfo SET name='"+tf2.getText()+"',mi='"+tf5.getText()+"'whereno='"+tf1.getText()+"';";sql.executeUpdate(updateStr2);JOptionPane.showMessageDialog(this, "修改成功!");con.close();} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "修改失败!");}}if (b3.equals(e.getSource())) {// 删除员工信息Connection con;Statement sql;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {JOptionPane.showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);sql.executeUpdate("DELETE FROM wageinfo where no='"+tf6.getText()+"';");sql.executeUpdate("DELETE FROM welfare where no='"+tf6.getText()+"';");sql.executeUpdate("DELETE FROM workerinfo where no='"+tf6.getText()+"';");JOptionPane.showMessageDialog(this, "删除成功!");con.close();} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "删除失败!");}}if (b4.equals(e.getSource())) {// 查询全部员工信息Connection con;Statement sql;ResultSet rs;try {Class.forName("org.gjt.mm.mysql.Driver");} catch (ClassNotFoundException e1) {JOptionPane.showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/w age management","root","jxb");sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);if (b4.equals(e.getSource())) {for (int i = 0; i < 50; i++)for (int j = 0; j < 4; j++)table.setValueAt("", i, j);rs = sql.executeQuery("select distinct * from wageinfo ,welfare,workerinfo where wageinfo.no=welfare.no and wageinfo.no=workerinfo.no ;");int k = -1;while (rs.next()) {++k;String no = rs.getString(1);String name = rs.getString(2);String jb = rs.getString(3);String jt = rs.getString(6);int sum= rs.getInt(3)+rs.getInt(6);String mi = rs.getString(9);table.setValueAt(no, k, 0);table.setValueAt(name, k, 1);table.setValueAt(jb, k, 3);table.setValueAt(jt, k, 2);table.setValueAt(sum,k,4);table.setValueAt(mi,k,5);}}} catch (SQLException e1) {JOptionPane.showMessageDialog(this, "查询失败!");}}if (b5.equals(e.getSource())) {// 返回GZGLZJM gl=new GZGLZJM();gl.create();f.dispose();}}}////修改密码XGMM.javapackage wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;class XGMM extends DL implements ActionListener{JFrame frame = new JFrame("密码修改");JLabel label1 = new JLabel("原密码");JLabel label2 = new JLabel("新密码");JButton Button1 = new JButton("确定");JButton cancelButton = new JButton("返回");JPasswordField password = new JPasswordField(9);JPasswordField newpassword = new JPasswordField(9);void create(){JPanel p = (JPanel) frame.getContentPane();p.setLayout(new FlowLayout());p.add(label1);p.setSize(5, 5);p.setLocation(4, 8);p.add(password);p.setSize(100, 200);p.setLocation(600, 600);p.add(label2);p.setSize(50, 20);p.setLocation(40, 80);p.add(newpassword);p.setSize(100, 20);p.setLocation(80, 120);p.add(Button1);p.add(cancelButton);p.setBackground(Color.cyan);p.setVisible(true);Button1.addActionListener(this);cancelButton.addActionListener(this);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setBounds(200, 100, 500, 220);frame.setVisible(true);。