java课程设计职工工资管理系统样本.docx
《java课程设计职工工资管理系统样本.docx》由会员分享,可在线阅读,更多相关《java课程设计职工工资管理系统样本.docx(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- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 职工工资 管理 系统 样本
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文