收藏 分销(赏)

java课程设计职工工资管理系统样本.docx

上传人:二*** 文档编号:4515057 上传时间:2024-09-26 格式:DOCX 页数:79 大小:261.26KB
下载 相关 举报
java课程设计职工工资管理系统样本.docx_第1页
第1页 / 共79页
本文档共79页,全文阅读请下载到手机保存,查看更方便
资源描述
苏州科技学院电子信息实验中心 面向对象技术课程设计 报告 --职工工资管理系统 专业年级 计算机科学与技术 班 级 计算机1422 学 号 姓 名 宋正伟 成 绩 指引教师 张宗杰 年 4月  一. 引言 1.1 项目名称 职工工资信息管理系统 1.2 项目背景和目的 职工工资信息管理系统重要可以对职工个人信息进行管理,对职工顾客提供个人信息查询,工资查询等,对管理顾客提供增长,修改,删除员工信息等操作。咱们目的就是为该系统提供后台连接数据库程序设计以及前台顾客界面设计。 1.3 项目可行性研究 设计此系统需要Java面向对象编程基本,数据库应用知识以及功能分析。依照当前所开设课程,学生已经具备了这样知识,有能力综合Java编程知识和数据库应用知识做出一种这样职工工资信息管理系统。 二.需求分析 2.1 系统概述 此系统提供应公司职工和管理者使用,职工登陆后可以对自己信息进行查询,管理者登陆后可以对职工信息进行修改,增长,删除等操作。 2.2 系统运营环境 Java程序运营在eclipse软件上编译并且运营,数据库用MYSQL数据库 三. 系统设计 3.1 开发与设计总体思想 职工方面:职工可以通过自己职工号和密码登陆后,进入职工主界面,在这个主界面里,职工可以进行信息查询操作。 管理员方面:管理员通过自己密码登陆后可以选取:查询功能,修改功能。在查询功能里,可以选取查询职工个人信息或者工资状况。在修改功能里,可以选取对职工信息进行增长,删除和修改操作。 3.2 系统模块构造图 职工工资管理系统 管理员登陆 职工登陆 管理员操作页面 职工个人信息 查询 修改 职工工资信息 职工基本信息 修改工资信息 修改职工基本信息 删除辞职者信息 添加新人信息 3.3 数据库构造设计 为了支持此职工档案管理系统,创立数据库employeemanage,在这个数据库里包括三个表:worker表,manager表,employee表,它们截图如下: 在worker表中,有八个属性列,分别为:id(职工号),wname(姓名),age(年龄),sex(性别),number(电话),salary(工资),dept(部门)。其基本数据类型分别为:char,char,int,char,char,int,char. 在manager表中,有两个属性列,分别为:mname(管理员姓名),password(密码)其基本数据类型分别为:char,char。当管理员登录系统时从此表获取数据,其截图如下: 在employee表中,有两个属性列,分别为:wname(职工姓名),password(密码)其基本数据类型分别为:char,char。当教职工登录系统时从此表获取数据,其截图如下: 3.4 模块设计 在整个系统主界面,可以选取登录方式,是职工登录还是管理员登录。如果选取职工,则进入职工登录界面,在这个界面上规定输入职工姓名和密码。输入后单击“确认登录”按钮,若密码对的,则转换到职工工资信息查询页面,当输入职工姓名后即可显示该名职工个人信息,若密码不对的,这提示密码错误。 如果选取是管理员登录,则进入管理员登陆界面,在这个界面上输入管理员姓名和密码,输入后单击“职工信息管理”按钮,则进入管理员主界面。在管理员主界面可以选取进行文献操作,查询操作还是修改操作。 若要查询职工信息,点击查询菜单项则进入职工信息检索界面,在此界面检索方式中选取要检索数据属性,在检索内容框中输入检索详细信息,例如,检索“姓名”字段时,要键入某个职工姓名。输入后,单击“检索”按钮,则开始对数据库中数据进行查询。如果数据库检索到所需信息,则生成列表显示检索构造,如果没有所需信息,则页面列表中显示为空。 若要查询职工工资信息,则点击职工工资信息查询菜单项,进入工资查询界面。在此界面文本框中输入要查询工资信息职工姓名,然后单击检索按钮。若数据库中有该职工工资信息,则生成列表显示工资信息,若没有此记录,则列表显示内容为空。 如果管理员要对数据库中进行修改操作,则在管理员主界面上选取修改菜单项,在此项中,选取要修改详细内容,总共有四项修改操作:添加新人信息,删除辞职者信息(这两个是对数据库中worker表操作)。在添加信息操作中,按照标签提示一次输入要添加记录值,输入完毕后,单击“添加”按钮,若输入成功,则提示成功,若输入失败,则提示失败。在删除信息操作中,输入要删除信息职工姓名,单击“删除”按钮,若删除成功,则提示成功,若删除失败则提示失败。 以上就是该职工工资管理系统涉及操作环节。 3.5 系统流程描述 登陆主界面 开始 职工登陆 管理员登陆 输入有误 成功 成功 输入有误 协助 No 选取协助 工资信息管理 信息查询 职工信息修改 职工信息查询 删除辞职者信息 退出系统 添加新职工信息 删除职工信息 添加职工信息 职工信息简介 退出 职工工资信息 输入职工姓名 选取检索方式和数据 成功 成功 输入辞职者姓名 输入删除者姓名 录入添加信息 录入添加信息 显示职工工资信息 Yes 显示信息 成功 成功 成功 成功 无输出 输入有误 Insert Success Insert Success Delete Success Delete Success 四、系统实现DBconnection类 本系统保存在employeemanage包里 其中包括四个包:connection包,dao包,model包,ui包 1. connection包中类: (1)DBconnection类:此类设立程序与数据库连接,通过设立驱动类型和数据源来拟定要连接数据库。若连接成功,提示:connection success,若连接失败,提示:connection failure DBconnection类源代码: package connection; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBconnection { public static void main(String[] args) { new DBconnection(); } public static Connection con=null; public static Connection getConnection() { try { String dbDriver="com.mysql.jdbc.Driver"; Class.forName(dbDriver); System.out.println("Driver Suceess"); } catch (ClassNotFoundException e) { System.out.println("Driver not found"); e.printStackTrace(); } try { con=DriverManager.getConnection("jdbc:mysql://localhost:3306/employeemanage","root",""); System.out.println("Connection Suceess"); } catch (SQLException e) { System.out.println("Connetion failure"); e.printStackTrace(); } return con; } public static void closeConnection() { if(con!=null) try { con.close(); System.out.println("database close success"); } catch (SQLException e) { System.out.println("close failure"); e.printStackTrace(); } } } 2. Dao包中类: (1)WorkerDao类:此类中有四个办法,managerLogin,addWorker,deleteWorker, queryworker,作用分别是控制管理员登陆系统,增长职工基本信息,删除职工基本信息,查询职工基本信息。 (2)managerLogin()办法中,有两个参数,分别传给select语句中mname(管理员姓名)和password(登录密码),运用select语句在employee表中检索管理员登录信息。若存在此信息,返回true,否则返回false。 (3)addWorker)办法中,有七个参数,分别传给insert语句中id(职工号),wname(职工姓名),age(年龄),sex(性别),number(电话),salary(工资)和dept(部门),运用insert语句向worker职工信息表中插入记录。若插入成功,返回true,否则返回false。 (4)deleteWorker()办法中,有一种参数,传给delete语句中wname(职工姓名),运用delete语句,把worker表中有关职工信息删除。若删除成功,返回true,否则返回false。 (5)queryWorker()办法中,有两个参数,分别传给select语句中field(查找方式)和key(查找内容),运用select语句,从worker表中检索职工信息。若存在此信息,则返回一种ArrayList类对象lis(表格),否则,异常解决。 WorkerDao类源代码: package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import model.Student; import connection.DBConnection; public class WorkerDao { public boolean managerLogin(String mname,String password) { DBconnection db=new DBconnection(); Connection con=db.getConnection(); boolean isfound=false; PreparedStatement pst; try { pst = con.prepareStatement("select * from manager where mname=?and password=?"); pst.setString(1,mname); pst.setString(2,password); ResultSet rs=pst.executeQuery(); if(rs.next()) isfound=true; } catch (SQLException e) { e.printStackTrace(); } System.out.println(isfound); return isfound; } public boolean addWorker(String id,String wname,String sex,int age,String number,int salary ,String dept) { Connection con = DBconnection.getConnection(); PreparedStatement pst; try { pst = con.prepareStatement("insert into worker values(?,?,?,?,?,?,?,?)"); pst.setString(1,id); pst.setString(2,wname); pst.setString(3,sex); pst.setInt(4,age); pst.setString(5,number); pst.setInt(6,salary); pst.setString(7,dept); int count = pst.executeUpdate(); // 返回修改记录数 if (count == 1) return true; else return false; } catch (SQLException e) { e.printStackTrace(); } return false; } public ArrayList queryWorker(String field,String key) { ArrayList lis = new ArrayList(); Connection con = DBconnection.getConnection(); Statement stm; try { stm = con.createStatement(); String sql = "select * from worker where " + field + " like '%" + key + "%' "; System.out.println(sql); ResultSet rs = stm.executeQuery(sql); while (rs.next()) { Work work= new Work(rs.getString(1),rs.getString(2),rs.getString(3),rs.getInt(4),rs.getString(5),rs.getString(6),rs.getInt(7); lis.add(work); } } catch (SQLException e) { e.printStackTrace(); } return lis; } public boolean deleteWorker(String key) { Connection con = DBconnection.getConnection(); Statement stm; try { stm = con.createStatement(); String sql = "delete from worker where wname like '%" + key + "%' "; System.out.println(sql); int count = stm.executeUpdate(sql); if (count == 1) return true; else return false; } catch (SQLException e) { e.printStackTrace(); } return false; } } (2) EmployeeDao类:此类中有一种办法:queryEmployee(),作用是控制职工登陆,queryEmployee()办法中,有两个参数,分别传给select语句中wname(职工姓名)和password(登陆密码),运用select语句在employee表中检索职工登陆信息。若存在此信息,返回true,否则返回false。 EmployeeDao类源代码: package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import connection.DBConnection public class EmployeeDao { public boolean queryEmployee(String wname,String password) { DBconnection db=new DBconnection(); Connection con=db.getConnection(); boolean isfound=false; PreparedStatement pst; try { pst = con.prepareStatement("select * from employee where wname=?and password=?"); pst.setString(1,wname); pst.setString(2,password); ResultSet rs=pst.executeQuery(); if(rs.next()) isfound=true; } catch (SQLException e) { e.printStackTrace(); } System.out.println(isfound); return isfound; } public static void main(String[] args) { } } (3) Salary类:在该类中有四个办法querySalary,addSalary,deleteSalary 作用分别是为职工顾客提供查询工资信息功能,为管理者顾客提供 询职工工资信息,添加工资信息,删除工资信息功能。 querySalary()办法中,有一种参数,传给select语句中wname(职工姓名),运用select语句,查询工资信息表中内容。若查询成功,则返回一种ArrayList类对象lis(表格),否则,异常解决。 addSalary()办法中,有七个参数,分别传给insert语句中id(职工号),wname(职工姓名),dept(部门)。运用insert语句,将这些记录写入salary表中。若插入成功返回true,否则返 回false。 deleteSalary()办法中,有一种参数,传给delete语句中wname(职工姓名),运用delete语句,把salary表中有关职工工资信息删除。若删除成功,返回 true,否则返回false。 Salary类源代码: package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import ui.WorkerLoginUI; import model.Salary; import model.Worker; import connection.DBConnection; public class SalaryDao { public ArrayList querySalary(String key) { ArrayList lis = new ArrayList(); Connection con = DBconnection.getConnection(); Statement stm; try { stm = con.createStatement(); String sql = "select * from salary where wname like '%" + key + "%' "; System.out.println(sql); ResultSet rs = stm.executeQuery(sql); while (rs.next()) { Salary salary = new Salary (rs.getString(1),rs.getString(2),rs .getString(3),rs.getString(4), rs.getInt(5),rs.getString(6),rs.getString(7)); lis.add(salary); } } catch (SQLException e) { e.printStackTrace(); } return lis; } public ArrayList querySalary(String key) { ArrayList lis = new ArrayList(); Connection con = DBconnection.getConnection(); Statement stm; try { stm = con.createStatement(); String sql = "select * from salary where wname like '%" + ManagerDD.st1 + "%' "; System.out.println(sql); ResultSet rs = stm.executeQuery(sql); while (rs.next()) { Salary salary = new Salary(rs.getString(1),rs.getString(2),rs .getString(3),rs.getString(4),rs.getInt(5),rs.getString(6),rs.getString(7)); lis.add(salary); } } catch (SQLException e) { e.printStackTrace(); } return lis; } public boolean addSalary(String id,String wname,String dept) { Connection con = DBconnection.getConnection(); PreparedStatement pst; try { pst = con.prepareStatement("insert into salary values(?,?,?,?,?,?,?)"); pst.setString(1,id); pst.setString(2,wname); pst.setInt(3,age); pst.setString(4,sex); pst.setInt(5,number); pst.setInt(6,salary); pst.setString(7,dept); int count = pst.executeUpdate();// 返回修改记录数 if (count == 1) return true; else return false; } catch (SQLException e) { e.printStackTrace(); } return false; } public boolean deleteSalary(String key) { Connection con = DBconnection.getConnection(); Statement stm; try { stm = con.createStatement(); String sql = "delete from salary where wname like '%" + key + "%' "; System.out.println(sql); int count = stm.executeUpdate(sql); if (count == 1) return true; else return false; } catch (SQLException e) { e.printStackTrace(); } return false; } } 3. Model包中类: (1)Worker类:此类中有七个成员变量,String id;String wname;String sex;int age;String number;int salary;String dept,和十四个成员办法,类中分别获取和设立了这七个变量,即为worker表中七个属性属性名,每个变量都相应了getXXX(),setXXX()办法,尚有一种构造办法,用于在调用其对象时对成员变量赋值。 Worker类源代码: package Model; public class Worker { String id; String wname; String sex; int age; String number; int salary; String dept; public String getID() { return id; } public void setID(String id) { this.id= id; } public String getWname() { return wname; } public void setWname(String wname) { this.wname = wname; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public int getSalary() { return salary; } public void setSalary(int salary) { this.salary = salary; } public String getDept() { return dept; } public void setDept(String dept) { this.dept = dept; } public Work(String id,String wname,String sex,int age,String number,int salary,String dept) { super(); this.id = id; this.wname = wname; this.sex = sex; this.age = age; this.number=number; this.salary=salary; this.dept = dept; } } (2) Salary类:此类中有七个成员变量,String id;String wname;Int age;String sex;int number;Int salary;String dept,和十四个成员办法,类中分别获取和设立了这七个变量,即为salary表中七个属性属性名,每个变量都相应了getXXX(),setXXX()办法,尚有一种构造办法,用于在调用其对象时对成员变量赋值. Salary类源代码: package model; public class Salary { String id; String wname; Int age String sex; String number; Int salary; String dept; public String getID() { return id; } public void setID(String id) { this.id = id; } public String getWname() { return wname; } public void setWname(String wname) { this.wname = wname; } public String getSex() { return Sex; } public void setSex(String sex) { this.sex= sex; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public Int getAge() { return age; } public void setAge(String age) { this.age= age; } public Int getSalary() { return salary; } public void setSalary(String salary) { this.salary= salary; } public String getDept() { return dept; } public void setDept(String dept) { this.dept = dept; } public Salary(String id,String wname,String sex,Int age,String number,Int salary,String dept) { super(); this.id = id; this.wname = wname; this.sex = sex; this.age= age; this.number=number; this.salary=salary; this.dept=dept; } } 4. Ui包中类: (1) LoginUI类:此类为登陆界面,在这个界面上,设立有两个按钮,职工按钮,管理员按钮。给这两个按钮注册事件addActionListener,分别在内部类WorkerLoginActionListene和ManageLoginActionListener中默认办法actionPerformed()中创立WorkerLoginUI类和ManageLoginUI类对象,即打开职工登陆界面和管理员登录界面,并将原登陆界面关闭。 LoginUi类源代码: package ui; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class LoginUI extends JFrame{ JLabel l1; JButton bt1,bt2; Container cp; public LoginUI() { l1 = new JLabel("请选取顾客类型"); bt1 = new JButton("职工"); bt2 = new JButton("管理员"); JPanel p1 = new JPanel(); p1.setLayout(null); l1.setBounds(150,150,120,40); p1.add(l1); bt1.setBounds(120,230,80,30); p1.add(bt1); bt2.setBounds(220,230,80,30); p1.add(bt2); bt1.addActionListener(new WorkerLoginActionListener());//注册事件 bt2.addActionListener(new ManageLoginActionListener());//注册事件 cp = getContentPane(); this.setBounds(200,200,p1.getHeight(),p1.getHeight()); cp.add(p1); this.setTitle("顾客登录界面"); this.setSize(400,400); this.setVisible(true); this.addWindowListener(new WindowAdapter() { public void windo
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服