数据库课程设计—企业工资管理系统(java版+完整代码)
- 格式:doc
- 大小:421.06 KB
- 文档页数:33
数据库原理及应用课程设计报告题目:工资管理系统所在学院:信息工程学院班级:学号:姓名:指导教师:2014年1月2日目录一、概述二、需求分析三、概念设计四、逻辑设计五、系统实现六、小结一、概述在工资管理中,需要从公司管理方式以及实际情况中提取相关信息,以反映工资管理情况。
传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。
使用计算机可以高速,快捷地完成以上工作。
避免重复劳动,规范工资管理行为,从而提高了管理效率和水平。
让人们的效率大大提高.不难想象,正是资讯的迅速发展使得人们从过去繁复的手工劳作中得以解脱,从而使这种服务在现在才可能迅速普及。
同时,编写一套完整的工资管理系统的任务就显得尤为重要。
本课程设计共分为四大模块:1.系统数据初始化2.工基本信息数据的输入、修改、删除;3.员工个人信息及工资表的查询;4,员工工资的计算;二、需求分析本系统主要用于员工基本信息的管理,对员工以及其他信息的添加、修改、删除、查询等基本操作。
对于数据库的保护有数据备份和数据恢复的功能。
针对这些要求,设计本月工资信息管理系统。
该系统主要包括职工信息、工资级别和工资金额、公司福利表等。
⒈员工基本状况包括员工号、员工姓名、性别、所在部门、工资级别、工资等级等。
2.工资级别和工资金额包括工资等级、工资额。
3.企业部门及工作岗位信息包括部门名称、工作岗位名称、工作岗位工资等。
4.工龄和工资金额包括工龄及对应工资额。
5.公司福利表包括福利名称、福利值。
本系统概念设计思想:1.对公司软硬件调查,从实际环境出发,以便充分利用公司现在资源,提高系统开发水平和应用效果。
图1.1 系统功能模块图图2.6信息查询及管理的流程图三、概念设计分析前面的系统功能要求,需要一个表来存储和管理员工信息,使系统能够接受员工原始的各项数据,以实现数据录入、查询或统计员工信息等功能。
员工是本系统的第一个实体。
为了能实现查询和统计部门内员工情况等功能,必须有一个表来存储和管理所有部门的信息。
课程设计报告企业工资管理系统姓名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() {。
工资管理系统一,设计数据库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程序语言设计》课程设计报告书设计题目:员工工资管理系统指导老师:学生班级:软工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。
JavaMySQL数据库课程设计(员工工资管理系统)简介本文档是关于使用Java和MySQL数据库设计的员工工资管理系统的课程设计报告。
该系统旨在提供一个方便快捷的员工工资管理平台,帮助雇主轻松管理员工的工资信息。
功能概述•管理员功能1.登录/注销:管理员可以使用用户名和密码登录系统,并在不需要时注销账户。
2.添加员工:管理员可以添加新员工信息,包括姓名、性别、职位、工资等。
3.修改员工信息:管理员可以修改已有员工的个人信息,并更新工资等相关信息。
4.删除员工:管理员可以删除已有员工账号,同时删除与之相关的所有工资信息。
5.查询员工:管理员可以根据不同的条件查询员工信息,比如按部门、职位等。
6.导出工资表:管理员可以导出员工工资表,包括每个员工的姓名、工资、加班时长等信息。
•员工功能1.登录/注销:员工可以使用用户名和密码登录系统,并在不需要时注销账户。
2.查看个人信息:员工可以查看自己的个人信息,包括姓名、性别、职位、工资等。
3.修改个人信息:员工可以修改自己的个人信息,如联系方式、住址等。
4.查询工资信息:员工可以查询自己的工资信息,包括基本工资、奖金、扣款等。
5.查询加班记录:员工可以查询自己的加班记录,包括加班日期、加班时长等。
数据库设计本系统使用MySQL数据库管理员工工资信息,下面是数据库中的表格设计:表:员工信息表(employees)•字段:员工ID、姓名、性别、职位、工资•主键:员工ID•外键:无表:工资信息表(salaries)•字段:员工ID、基本工资、奖金、扣款、发放日期•主键:无(使用员工ID作为外键)•外键:员工ID(关联employees表)表:加班记录表(overtime_records)•字段:员工ID、加班日期、加班时长•主键:无(使用员工ID作为外键,与employees 表关联)•外键:员工ID(关联employees表)技术实现本系统采用Java作为开发语言,并使用MySQL作为后端数据库。
课程设计报告企业工资管理系统姓名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位小数,即是精确到分的计算。
Java工资管理系统代码简介工资管理是企业人力资源管理中重要的一环,可以通过一个可靠的工资管理系统来方便地计算、调整、记录和管理员工工资信息。
本文将介绍一个基于Java语言开发的简单而实用的工资管理系统代码。
功能特点该工资管理系统代码具有以下功能特点:1.员工管理:可以添加、删除、修改和查询员工信息。
2.工资计算:可以根据员工的基本工资、绩效考核等因素来计算实际工资。
3.工资调整:可以根据业务需要进行工资调整,并记录调整日志。
4.工资报表:可以生成月度、季度或年度的工资报表,用于管理和分析工资情况。
系统框架该工资管理系统代码基于Java语言开发,采用MVC(Model-View-Controller)架构,方便代码的维护和扩展。
模型层(Model)模型层负责处理数据相关的逻辑,包括员工信息的增删改查、工资的计算和调整等。
视图层(View)视图层负责与用户的交互,展示员工信息、工资报表等内容,并接收用户的操作。
控制层(Controller)控制层负责处理用户操作的逻辑,根据用户的请求调用模型层的方法,并将结果返回给视图层。
代码示例下面是部分Java代码示例,展示了工资管理系统的主要功能:```java // 员工类 public class Employee { private int id; private String name; private double baseSalary; // 其他属性和方法省略// 获取员工实际工资public double getActualSalary() {// 根据基本工资、绩效考核等因素来计算工资// 省略具体实现}}// 工资管理类 public class SalaryManager { // 员工列表 private List employees; // 其他属性和方法省略// 添加员工public void addEmployee(Employee employee) {// 省略具体实现}// 删除员工public void deleteEmployee(int id) {// 省略具体实现}// 修改员工信息public void updateEmployee(Employee employee) {// 省略具体实现}// 查询员工信息public Employee findEmployee(int id) {// 省略具体实现}// 计算员工工资public double calculateSalary(Employee employee) {// 省略具体实现}// 调整员工工资public void adjustSalary(Employee employee, double newSalary) {// 省略具体实现}// 生成工资报表public void generateSalaryReport() {// 省略具体实现}}// 主程序 public class Main { public static void main(String[] args) { // 创建工资管理对象 SalaryManager salaryManager = new SalaryManager();// 添加员工Employee employee1 = new Employee(1, \。
Java MySql数据库课程设计 - 员工工资管理系统1. 引言在现代企业中,员工工资管理是一项非常重要的任务。
合理管理员工工资不仅可以激励员工的积极性,还可以提高企业的运营效率。
为了更好地管理员工工资,我们决定设计一个员工工资管理系统,使用Java编程语言与MySql数据库进行开发。
2. 功能需求该员工工资管理系统将包含以下功能模块: - 员工信息管理:包括添加员工、删除员工、查看员工信息、修改员工信息等功能。
- 工资管理:包括录入员工工资、计算员工工资、查询员工工资等功能。
- 统计分析:包括统计部门工资总和、统计员工工资平均值等功能。
3. 技术选型为了实现上述功能需求,我们选择使用Java编程语言与MySql数据库进行开发。
以下是我们选择这些技术的原因: - Java是一种面向对象的编程语言,具有良好的可读性和可维护性,适合开发大型项目。
- MySql是一种关系型数据库管理系统,具有高性能和可扩展性,适合处理大量的数据。
4. 数据库设计4.1 数据表设计我们将设计两个数据表来存储员工信息和工资信息。
4.1.1 员工信息表字段名称数据类型说明id int员工IDname varchar员工姓名age int员工年龄gender varchar员工性别department varchar员工部门4.1.2 工资信息表字段名称数据类型说明id int工资IDemployee_id int员工IDmonth varchar月份salary decimal工资金额4.2 数据库查询语句以下是一些常用的数据库查询语句,用于实现系统功能模块:4.2.1 添加员工INSERT INTO employee (id, name, age, gender, d epartment)VALUES (1001, '张三', 25, '男', '技术部');4.2.2 删除员工DELETE FROM employee WHERE id=1001;4.2.3 查看员工信息SELECT*FROM employee;4.2.4 修改员工信息UPDATE employee SET age =26WHERE id=1001;4.2.5 录入员工工资INSERT INTO salary (id, employee_id, month, sa lary)VALUES (1, 1001, '2021-01', 5000);4.2.6 计算员工工资SELECT SUM(salary) FROM salary WHERE employee_ id =1001;4.2.7 查询员工工资SELECT*FROM salary;4.2.8 统计部门工资总和SELECT department, SUM(salary) FROM employee JOIN salary ON employee.id= salary.employee_id GROUP BY department;4.2.9 统计员工工资平均值SELECT employee_id, AVG(salary) FROM salary GROUP BY employee_id;5. 系统架构为了提高系统的扩展性和灵活性,我们将采用三层架构来设计该员工工资管理系统。
课程设计报告企业工资管理系统姓名X X X班级XXXXX学号XXXXXX课程名称数据库原理及应用指导教师201X年X月X日目录一.工资管理系统需求分析…………………………………功能需求…………………………………………………功能划分………………………………………功能描述……………………………………………性能需求…………………………………………………数据流图………………………………………………二.总体设计…………………………………………………数据库概念设计…………………………………………功能模块…………………………………………………三.系统详细设计……………………………………………数据库逻辑设计…………………………………………各模块功能………………………………………………职工信息管理系统…………………………………职工工资管理系统…………………………………职工津贴管理系统…………………………………四.系统实现…………………………………………………界面截图…………………………………………………主界面及工资基本信息界面……………………登录界面…………………………………………系统主界面………………………………………信息录入,修改,删除,查询界面…………设计代码…………………………………………………五.实验总结…………………………………………………1、需求分析1.1功能需求功能划分(1)、员工信息表;及时反映员工(de)基本信息(2)、员工津贴表,反映员工津贴(3)、员工基本工资表功能描述(1)、基本工资(de)设定(2)、津贴(de)设定(3)、计算出月工资(4)、录入员工工资信息(5)、添加员工工资信息(6)、更改员工工资信息性能需求此工资管理系统对工资数据精度(de)计算能在默认情况之下精确到小数点后3位小数,即是精确到分(de)计算.但在用户使用过程中,能自行根据实际情况进行小数计算精度(de)设定,最大能允许保留小数点后5位(de)精度.在时间特性上,当用户发出命令请求时(de)服务器(de)响应时间、对数据更新处理、工资数据(de)查询检索等上,同样要求系统响应时间不会超过秒时间.系统支持多种操作系统(de)运行环境,多不同操作系统,不同文件格式(de)磁盘上(de)数据均能实现信息(de)互通,及共享.当服务器移植到其他(de)系统平台,如:Linux平台下时,同样能和其他(de)系统进行数据存取同步,不会出现系统之间互不兼容(de)情况,系统支持多系统之间(de)互连互通,系统有巨大(de)强健性.本课程设计是用Java 语言编写,mysql数据库.数据流图根据工资管理要求及用户需求调查分析,得到以下数据流图图第一层数据流图图职工信息(de)载入图考勤(de)信息载入2.总体设计数据库概念设计有了数据流图,用E-R图来说明工资信息管理系统(de)数据库概念模式,如图图实体之间关系E-R 图功能模块3.系统详细设计数据库逻辑设计将以上E-R转换成如下关系模式员工(职工号,姓名,密码)工资(职工号,姓名,基本工资,)津贴(职工号,姓名,奖金)其中,标有下划线(de)字段表示为该数据表(de)主码,即主关键字.在上面(de)实体以及实体之间关系(de)基础上,形成数据库中(de)表格以及各个表格之间(de)关系.工资信息管理系统数据库中各个表格(de)设计结果如下面(de)几个表格所示.每个表格表示在数据库中(de)一个表.表一:员工信息表:表二:基本工资表:表四:津贴信息表各模块功能职工信息管理系统功能为:财务部门相关人员录入、修改、删除、查询员工个人信息职工工资管理系统功能为:根据工资生成公式,按照员工(de)考勤情况及各种表现按月生成相应(de)工资;财务部门相关人员能录入、修改、删除、查询每个月每个员工(de)工资信息以及工资汇总;员工本人能查询自己(de)工资信息以及工资汇总;职工登陆查询系统功能为:员工本人能通过用户名和密码查询自己(de)信息以及修改自己(de)密码;4.系统实现界面截图主界面登录界面管理员管理工资界面信息录入,修改,删除,查询界面职工信息查询界面职工密码修改界面设计代码package wage_management;import .;import .;class DB extends JFrame implements ActionListener { JFrame frame = new JFrame("欢迎进入企业工资管理系统");JLabel label = new JLabel("", ;JButton button1 = new JButton("进入系统"); JButton button2 = new JButton("退出系统"); ImageIcon im = new ImageIcon("");JLabel a1 = new JLabel(im);void Create() {JPanel pcontentPane = (JPanel) ();(a1);(label);(new FlowLayout());(button1);(button2);(true);(this);(this);;();(200, 100, 550, 180);(true);}public static void main(String[] args) {DB dome = new DB();();}public void actionPerformed(ActionEvent e) { if ())) {DL dl = new DL();();();}if ())) {quals("admin") == true&& ().equals("admin") == true)) {(this, "登录成功");GZGLZJM gz = new GZGLZJM();();();}else {(null, "输入用户名或密码错误");}}if ()==logonButton2){try {Connection con;Statement ps;ResultSet rs;String sql = null;("");("").newInstance();con = ("jdbc: management","root","jxb");sql="select from workerinfo where name='"+t1+"' and mi='"+t2+"'";ps = (PreparedStatement) (sql);rs = (sql);if()){if("name").equals(t1) && ("mi").equals(t2)){YGDLJM yg = new YGDLJM();();();(this, "登录成功");();}}else {(this, "输入用户名或密码错误");}}catch (Exception e1) {// TODO Auto-generated catch block();}}if ())) // 退出{(0);}}}package wage_management;import 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("");JLabel a1 = new JLabel(im);void create() {JPanel p = (JPanel) ();(new FlowLayout());(a1);(b1);(b2);(b3);;(true);(this);(this);(this);(200, 100, 500, 200);(true);}public void actionPerformed(ActionEvent e) { if ())) {// 返回DL d = new DL();();();}if ())) {// 员工信息管理YGGL yg = new YGGL();();();}if ())) {// 工资管理GZGL gz = new GZGL();();();}}}package wage_management;import class GZGL 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][5];JTable table = new JTable(row, cloum);JScrollPane scrollpane = new JScrollPane(table); JSplitPane splitpane = new JSplitPane;void create() {JPanel p = (JPanel) ();(new FlowLayout());(scrollpane);(splitpane);JPanel p1 = new JPanel();(b1);(b2);(b3);(b4);(b5);JPanel p2 = new JPanel();;(scrollpane);JPanel p3 = new JPanel();(new FlowLayout());(new JLabel(""));(new JLabel("职工号"));(tf1);(new JLabel("姓名"));(tf2);(new JLabel("津贴"));(tf3);(new JLabel("月基本工资"));(tf4);(new JLabel("月薪"));(tf5);(new JLabel(" 在此处输入职工号点击查询删除"));(tf6);(p1, ;(p2, ;(50);;(this);(this);(this);(this);(this);(200, 100, 500, 600);(true);// 可以调整界面大小(true);}public void actionPerformed(ActionEvent e) {if ())) { // 录入Connection con;Statement sql;try {("");} catch (ClassNotFoundException e1) {"" + e1);}try {con = ("jdbc: management","root","jxb");sql = ();String insertStr = "INSERT INTO welfare (no,name,jt)VALUES('"+()+"','"+()+"','"+()+"');";(insertStr);String insertStr1 = "INSERT INTO wageinfo (no,name,jb)VALUES('"+()+"','"+()+"','"+()+"');";(insertStr1);();(this, "入录成功");} catch (SQLException e1) {(this, "入录失败");}}if ())) {// 修改Connection con;Statement sql;try {("");} catch (ClassNotFoundException e1) {"" + e1);}try {con = ("jdbc: management","root","jxb");sql = ();String updateStr = "UPDATE welfare SET jt='"+()+"',name='"+()+"'where no='"+()+"';";(updateStr);String updateStr1 = "UPDATE wageinfo SET jb='"+()+"',name='"+()+"'where no='"+()+"';";(updateStr1);(this, "修改成功");();} catch (SQLException e1) {(this, "信息不存在");}}if ())) {// 删除Connection con;Statement sql;ResultSet rs;try {("");} catch (ClassNotFoundException e1) {"" + e1);}try {con = ("jdbc: management","root","jxb");sql = ,;("DELETE FROM wageinfo where no='"+()+"';");("DELETE FROM welfare where no='"+()+"';");(this, "删除成功");();} catch (SQLException e1) {(this, "删除失败");}}if ())) {// 查询全部Connection con;Statement sql;ResultSet rs;//Vector vector = new Vector();try {("");} catch (ClassNotFoundException e1) { (this, "连接数据库失败");}try {con = ("jdbc: management","root","jxb");sql = ,;if ())) {for (int i = 0; i < 50; i++)for (int j = 0; j < 4; j++)("", i, j);rs = ("select distinct from wageinfo ,welfare where =");int k = -1;while ()) {++k;String no = (1);String name = (2);String jb = (3);String jt = (6);int sum= (3)+(6);(no, k, 0);(name, k, 1);(jb, k, 3);(jt, k, 2);(sum,k,4);}}} catch (SQLException e1) {(this, "查询失败");}}if ())) {// 返回GZGLZJM gl=new GZGLZJM();();();}}}package wage_management;import 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;void create() {JPanel p = (JPanel) ();(new FlowLayout());(scrollpane);(splitpane);JPanel p1 = new JPanel();(b1);(b2);(b3);JPanel p2 = new JPanel();;(scrollpane);JPanel p3 = new JPanel();(new FlowLayout());(p1, ;(p2, ;(50);;(this);(this);(this);(200, 100, 500, 550);(true);// 可以调整界面大小(true);}public void actionPerformed(ActionEvent e) { if ())) {// 查询个人工资Connection con;Statement sql;ResultSet rs;try {("");} catch (ClassNotFoundException e1) {"" + e1);}try {con = ("jdbc: management","root","jxb");sql = ,;if ())) {for (int i = 0; i < 50; i++)for (int j = 0; j < 4; j++)("", i, j);// rs = ("select distinct from wageinfo ,welfare,workerinfo where = and = and ='"+t1+"' and ='"+t2+"'");int k = -1;while ()) {++k;String no = (1);String name = (2);String jb = (3);String jt = (6);int sum= (3)+(6);(no, k, 0);(name, k, 1);(jb, k, 3);(jt, k, 2);(sum,k,4);}}} catch (SQLException e1) {(this, "查询失败");}}if ())){// 修改密码XGMM xgmm=new XGMM();();}if ())) {// 返回DL dl=new DL();();();}}}package wage_management;import 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; void create() {JPanel p = (JPanel) ();(new FlowLayout());(scrollpane);(splitpane);JPanel p1 = new JPanel();(b1);(b2);(b3);(b4);(b5);JPanel p2 = new JPanel();;(scrollpane);(new FlowLayout());(new JLabel(""));(new JLabel("职工号"));(tf1);(new JLabel("姓名"));(tf2);(new JLabel("津贴"));(tf3);(new JLabel("月基本工资"));(tf4);(new JLabel("登陆密码"));(tf5);(new JLabel(" 在此处输入职工号点击查询删除"));(tf6);(p1, ;(p2, ;(50);;(this);(this);(this);(this);(this);(200, 100, 600, 600);(true);// 可以调整界面大小(true);}public void actionPerformed(ActionEvent e) {if ())) { // 添加新员工信息Connection con;Statement sql;try {("");} catch (ClassNotFoundException e1) {(this, "连接数据库失败");}try {con = ("jdbc: management","root","jxb");sql = ();String insertStr = "INSERT INTO welfare (no,name,jt)VALUES('"+()+"','"+()+"','"+()+"');";(insertStr);String insertStr1 = "INSERT INTO wageinfo (no,name,jb)VALUES('"+()+"','"+()+"','"+()+"');";(insertStr1);String insertStr2 = "INSERT INTO workerinfo (no,name,mi)VALUES('"+()+"','"+()+"','"+()+"');";(insertStr2);(this, "添加成功");();} catch (SQLException e1) {(this, "添加失败");}}if ())) {// 修改员工信息Connection con;Statement sql;try {("");} catch (ClassNotFoundException e1) {(this, "连接数据库失败");}try {con = ("jdbc: management","root","jxb");sql = ();con = ("jdbc: management","root","jxb");sql = ();String updateStr = "UPDATE welfare SET jt='"+()+"',name='"+()+"'where no='"+()+"';";(updateStr);String updateStr1 = "UPDATE wageinfo SET jb='"+()+"',name='"+()+"'where no='"+()+"';";(updateStr1);(updateStr1);String updateStr2 = "UPDATE workerinfo SET name='"+()+"',mi='"+()+"'where no='"+()+"';";(updateStr2);(this, "修改成功");();} catch (SQLException e1) {(this, "修改失败");}}if ())) {// 删除员工信息Connection con;Statement sql;try {("");} catch (ClassNotFoundException e1) {(this, "连接数据库失败");}try {con = ("jdbc: management","root","jxb");sql = ,;("DELETE FROM wageinfo where no='"+()+"';");("DELETE FROM welfare where no='"+()+"';");("DELETE FROM workerinfo where no='"+()+"';");(this, "删除成功");();} catch (SQLException e1) {(this, "删除失败");}}if ())) {// 查询全部员工信息Connection con;Statement sql;ResultSet rs;try {("");} catch (ClassNotFoundException e1) {(this, "连接数据库失败");}try {con = ("jdbc: management","root","jxb");sql = ,;if ())) {for (int i = 0; i < 50; i++)for (int j = 0; j < 4; j++)("", i, j);rs = ("select distinct from wageinfo ,welfare,workerinfo where = and = ;");int k = -1;while ()) {++k;String no = (1);String name = (2);String jb = (3);String jt = (6);int sum= (3)+(6);String mi = (9);(no, k, 0);(name, k, 1);(jb, k, 3);(jt, k, 2);(sum,k,4);(mi,k,5);}}} catch (SQLException e1) {(this, "查询失败");}}if ())) {// 返回GZGLZJM gl=new GZGLZJM();();();}}}package wage_management;import 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) ();(new FlowLayout());(label1);(5, 5);(4, 8);(password);(100, 200);(600, 600);(label2);(50, 20);(newpassword);(100, 20);(80, 120);(Button1);(cancelButton);;(true);(this);(this);;();(200, 100, 500, 220);(true);}public void actionPerformed(ActionEvent e) {if ()==Button1){Connection con;Statement sql;try {} catch (ClassNotFoundException e1) {(this, "连接数据库失败");}try {con = ("jdbc: management","root","jxb");sql = ();String updateStr = "UPDATE workerinfo SET mi='"+()+"'where name='"+t1+"';";(updateStr);(this, "修改成功");();} catch (SQLException e1) {(this, "请输入原密码和新密码");// }}if ()==cancelButton) // 返回{YGDLJM dl=new YGDLJM();();();}}}5.课设总结此次课设难度有点大,通过几天(de)努力终于完成了,开始对如何连接数据库不太了解,通过小组合作,和网上查阅资料,最终解决了问题,在写员工登陆界面时,要从数据库读取和验证密码,开始遇到了些问题,后来慢慢都完成了,总(de)来说收获很大,了解了如何将所学数据库运用到编程里,对数据库数据(de)查询,更改,添加都有了更一步(de)了解.。
工资管理系统java课程设计一、课程目标知识目标:1. 掌握Java语言面向对象编程的基本原理,包括类、对象、封装、继承和多态。
2. 学会使用Java集合框架,如List、Map等,存储和管理工资数据。
3. 理解数据库连接和SQL语句的基本使用,实现工资数据的持久化存储。
技能目标:1. 能够运用所学知识,设计并实现一个工资管理系统的基本功能,如添加、删除、修改和查询员工工资记录。
2. 通过实践,提升问题分析和解决能力,培养编程思维和逻辑思维能力。
3. 学会使用Java开发工具和调试技巧,提高程序开发效率。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,激发自主学习动力。
2. 增强团队协作意识,学会在项目开发过程中与他人沟通和协作。
3. 培养良好的编程习惯,注重代码规范和注释,提高代码可读性。
本课程针对高年级学生,在掌握Java基础知识和面向对象编程原理的基础上,通过实际项目设计,让学生在实践中巩固和提高所学知识。
课程注重培养学生实际操作能力和团队协作精神,为将来从事软件开发工作打下坚实基础。
课程目标具体、可衡量,旨在帮助学生和教师明确课程预期成果,并为后续教学设计和评估提供依据。
二、教学内容1. Java面向对象编程基础:- 类与对象的概念- 封装、继承和多态- 抽象类和接口2. Java集合框架:- List、Set、Map的使用- 集合的遍历和操作3. 数据库连接与操作:- JDBC简介- 数据库连接和SQL语句执行4. 工资管理系统功能设计:- 系统需求分析- 功能模块划分- 数据模型设计5. 工资管理系统功能实现:- 添加、删除、修改和查询员工工资记录- 数据的持久化存储- 系统异常处理6. 编程规范与调试技巧:- 代码规范与注释- 调试方法与技巧- 优化程序性能教学内容参考教材相关章节,按照以下进度安排:1. 第1-2周:Java面向对象编程基础2. 第3周:Java集合框架3. 第4周:数据库连接与操作4. 第5-6周:工资管理系统功能设计5. 第7-8周:工资管理系统功能实现6. 第9周:编程规范与调试技巧教学内容科学性和系统性相结合,旨在帮助学生将所学知识应用于实际项目中,提高实践操作能力。
实现在管理系统中,数据库的连接显得尤为重要,决定了用户能否对数据库进行操作,其中数据库连接的类(Base.cs)的实现代码:public class Base{#regionOleDbConnection conn;static string str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Directory.GetCurrentDirectory() + "\\manange.mdb";public Base(){conn = new OleDbConnection(str);conn.Open();}#endregion#regionpublic int ExeSQL(string sql){OleDbCommand cmd = new OleDbCommand(sql,this.conn);try{cmd.ExecuteNonQuery();return 0;}catch(System.Data.OleDb.OleDbException ex){throw new Exception(ex.ToString());}finally{cmd.Dispose();this.conn.Close();}}#endregion对工资管理系统(WagesInfoForm.cs和WagesRecord.cs)的增加删除的代码:WagesInfoForm.cs的删除操作该模块是工资管理系统的主要功能模块,当用户是管理员时,点击删除信息时会删除选中的工资记录,或者右击选中信息也可以删除信息。
删除成功后,刷新列表。
该模块的删除功能的主要代码为:private void delete(object sender, System.EventArgs e){DialogResult result = MessageBox.Show("是否删除此记录","提示?!",MessageBoxButtons.YesNo,MessageBoxIcon.Question);if(result == DialogResult.Yes){string str = "delete from WagesInfo where wwwaId=" + int.Parse(this.dataGrid1[this.dataGrid1.CurrentCell.RowNumber,0].ToString());Base bb = new Base();bb.ExeSQL(str);this.DBDataGrid();MessageBox.Show("删除成功!");}if(result == DialogResult.No){return;}}WagesRecord.cs的确定操作,对工资管理进行修改和增加该模块是工资管理系统的主要功能模块,当用户是管理员时,点击增加或修改信息时会修改或增加选中的工资记录,或者右击选中信息也可以修改或增加信息。
得分:课程设计报告企业工资管理系统X X 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位小数,即是精确到分的计算。
数据库工资管理系统报告和代码大全数据库原理及应用课程设计报告资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。
题目:工资管理系统所在学院:信息工程学院班级:学号:姓名:指导教师:资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。
一、概述目录二、需求分析三、概念设计四、逻辑设计五、系统实现小结概述在工资管理中, 需要从公司管理方式以及实际情况中提取相关信息, 以反映工资管理情况。
传统的手工操作方式, 易发生数据丢失, 统计错误, 劳动强度高, 且速度慢。
使用计算机能够高速, 快捷地完成以上工作。
避免重复劳动, 规范工资管理行为, 从而提高了管理效率和水平。
让人们的效率大大提高.不难想象, 正是资讯的迅速发展使得人们从过去繁复的手工劳作中得以解脱, 从而使这种服务在现在才可能迅速普及。
同时, 编写一套完整的工资管理系统的任务就显得尤为重要。
本课程设计共分为四大模块:1. 系统数据初始化2. 工基本信息数据的输入、修改、删除;3. 员工个人信息及工资表的查询;4, 员工工资的计算;二、需求分析本系统主要用于员工基本信息的管理, 对员工以及其它信息的添加、修改、删除、查询等基本操作。
对于数据库的保护有数据备份和数据恢复的功能。
针对这些要求, 设计本月工资信息管理系统。
该系统主要包括职工信息、工资级别和工资金额、公司福利表等。
1. 员工基本状况包括员工号、员工姓名、性别、所在部门、工资级别、工资等级等。
2. 工资级别和工资金额包括工资等级、工资额。
3. 企业部门及工作岗位信息包括部门名称、工作岗位名称、工作岗位工资等。
4. 工龄和工资金额包括工龄及对应工资额。
5. 公司福利表包括福利名称、福利值。
本系统概念设计思想:1. 对公司软硬件调查, 从实际环境出发, 以便充分利用公司现在资源, 提高系统开发水平和应用效果。
2. 了解公司的需要及相关方面的规定, 根据需要做出符合要求的软件, 并达到操作过程中的直观、方便、实用、安全等要求。
课程设计报告企业工资管理系统姓名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);。