




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、苏州科技大学电子信息与智能化实验中心面向对象技术课程设计A报告人事工资管理系统专业年级计算机科学与技术(嵌入式培养)15级班级嵌入式1511学号1520014111915200141115152001411011520014113715200141136姓名张梓轩戚春阳徐敏杰袁祺林王雨欣成绩指导教师 丁 俊2016年12月24日27姓名角色承担任务自评成绩张梓轩组长E-R图;统一数据库;工资管理系统显示所有员工的工资,部门整体调薪的实现;人事管理系统的时序图和活动图;戚春阳组员统计管理系统显示各个部门和人数功能的实现;用户权限和密码设置;系统时间输出;实现系统设置管理中的数据备份和数据恢复;整
2、合所有人代码,实现功能的统一和代码的优化;登录界面的活动图和时序图;徐敏杰组员人事管理系统添加员工信息,修改员工信息;用例图和用例说明;任务书的编写;系统设置系统的活动图、时序图;袁祺林组员人事管理系统查询员工的登陆信息、模糊查询和删除员工;课程总结;任务书的编写;人事管理系统的时序图和活动图;王雨欣组员员工奖惩表的增、删、改、查;系统类图;课程设计与需求分析;统计管理系统的活动图和时序图;注:如果按小组进行,需要此表,否则删除。人事工资系统设计报告1 课程设计任务概述 人事工资管理系统是非常通用的管理信息系统,一个公司必须要有健全的人事工资管理系统来管理员工的信息,才能实现它的日常运转。因此
3、,为了支持企业规范化的管理,高效率地完成人事的业务,需要实现包括员工的姓名、年龄、编号、电话号码等基本信息的建立,授予员工所能获取的权限,例如管理员权限,就可以对普通员工进行信息管理,其中包括新员工个人的基本信息资料的增加、修改,退休员工的信息的删除,员工奖惩信息的增加、删除和修改;此外还支持管理员对部门整体进行调薪,扩大了管理员的管理范围;同时为了支持人事管理及其相关方面的科学决策,增加了员工的个人基本信息查询、薪资查询、奖惩情况查询和部门的总体情况查询等,大大提高了公司内部员工管理的效率,减少了不必要的精力的投入,使得企业的正常维护得以实现。 2 系统需求分析2.1 系统功能分析 本系统主
4、要是实现企业人事管理的系统化、规范化和自动化,实现数据的录入、插入、删除、查询、统计、更新等功能。具有员工注册以及登录的功能,且登录后管理员可修改自己用户权限;大体分为以下四个主功能:1.人事管理系统:主要用来实现对员工的基本信息的增加、信息的删除、信息的修改以及模糊查询,还包括对员工的奖惩信息的增加,信息的删除,信息的修改以及信息的查询;2.工资管理系统:主要包括模糊查询部门信息、员工的总体以及个人工资信息,以及对部门的薪资进行整体调整的功能;3.统计管理系统:主要指用来显示部门的整体情况以及员工人数;4.系统设置系统:主要是用来对数据进行恢复和备份。2.2 用例图及用例说明2.2.1 用户
5、注册用例1.用例名称: 注册 2.用例描述: 注册成为本管理系统的用户 3.角色: 用户 4.前置条件: 格式输入正确 5.后置条件: 保存此用户的信息6.基本路径: A.填写用户名和密码 B.保存用户信息 7.扩展点: A.未填写完整或者格式错误 a1.错误提示 B.用户已经存在 b1.错误提示3 系统设计3.1 系统类图3.2 系统活动图用户登陆活动图:人事管理系统活动图:统计管理系统活动图: 工资管理系统活动图: 系统
6、设置管理活动图:3.3 系统时序图用户登陆时序图:人事管理系统时序图:工资管理系统时序图:统计管理系统时序图:系统设置管理时序图:4 系统实现4.1登录模块设计与实现登录模块是用户登录进去进行相关操作的,如员工信息的增删改查等等。(1)View层代码loginTitle = new javax.swing.JLabel();jLabel1 = new javax.swing.JLabel();jLabel2 = new javax.swing.JLabel();uname = new javax.swing.JTextField();pwd = new javax.swing.JPasswor
7、dField();limit = new javax.swing.JComboBox();jLabel3 = new javax.swing.JLabel();loginBtn = new javax.swing.JButton();registerBtn = new javax.swing.JButton();jLabel4 = new javax.swing.JLabel();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);setForeground(java.awt.Color.white);setR
8、esizable(false);setState(1);loginTitle.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 44);loginTitle.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);loginTitle.setText("u4ebau4e8bu5de5u8d44u7ba1u7406u7cfbu7edf");jLabel1.setText("u7528u6237u540d");jLabel2.s
9、etText("u5bc6 u7801uff1a");/limit.setModel(javax.swing.DefaultComboBoxModel187e702);jLabel3.setText("u6743 u9650uff1a");loginBtn.setText("u767bu9646");(2) Action层private void registerBtnActionPerformed(java.awt.event.ActionEvent evt) registerFrame r = new registerFrame(
10、);r.setVisible(true);private void loginBtnMouseClicked(java.awt.event.MouseEvent evt) String name = this.uname.getText();String pwd = this.pwd.getText();String limit = this.limit.getSelectedItem().toString();int type = 0;if ("管理员".equals(limit) type = 1;usertype="管理员" else type =
11、 2;usertype="普通员工"User user = new User(name, pwd, type);User flag = userService.login(user);if (flag != null) wusername = name;wtype = limit;ok o = new ok();o.setVisible(true);setVisible(false); else fail f = new fail();f.setVisible(true);dispose();(3) Dao数据交互层Overridepublic User login(Use
12、r user) / TODO Auto-generated method stub User resultUser=null;String sql = "select user_no,user_name,user_pwd,user_type" +" from t_user " +" where user_name='"+user.getUserName()+"' " +" and user_pwd='"+user.getUserPwd()+"'"
13、; +" and user_type="+user.getUserType()+""conn = JDBCUtil.getConnection();try stmt = conn.createStatement();rs = stmt.executeQuery(sql); if(rs.next() resultUser = new User(); resultUser.setUserNo(rs.getInt("user_no"); resultUser.setUserName(rs.getString("user_name&
14、quot;); resultUser.setUserPwd(rs.getString("user_pwd"); resultUser.setUserType(rs.getInt("user_type"); catch (SQLException e) e.printStackTrace();finallyJDBCUtil.closeResource(conn, psmt, stmt, rs);return resultUser;4.2系统主界面可在该模块完成员工资料的常用操作。员工的各项人事记录可在选择员工后,在主界面下面的分栏里面进行添加、修改、删除操
15、作。4.3人事管理模块设计及实现对员工的相关资料及记录进行管理。可在该模块对员工基本资料、奖惩记录、修改员工信息可实现对员工的调动、薪水记录进行修改。当进入到人事管理子系统模块,再点击模糊查询。删除员工按钮,会进入到下面的界面其中的模糊查询代码如下(1) view层private void initComponents() jScrollPane1 = new javax.swing.JScrollPane();jTable1 = new javax.swing.JTable();jButton1 = new javax.swing.JButton();jLabel1 = new javax.
16、swing.JLabel();jname = new javax.swing.JTextField();jButton2 = new javax.swing.JButton();jButton3 = new javax.swing.JButton();jLabel2 = new javax.swing.JLabel();jButton4 = new javax.swing.JButton();jLabel3 = new javax.swing.JLabel();jLabel4 = new javax.swing.JLabel();setDefaultCloseOperation(javax.s
17、wing.WindowConstants.EXIT_ON_CLOSE);jTable1.setModel(new javax.swing.table.DefaultTableModel(new Object , new String "姓名", "编号", "部门编号", "职称", "性别", "基本工资","电话号码", "工号" );jScrollPane1.setViewportView(jTable1);jButton1.se
18、tText("u786eu5b9a");jButton1.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton1ActionPerformed(evt););jLabel1.setText("u8bf7u8f93u5165u59d3u540duff0cu652fu6301u6a21u7ccau67e5u627e");jname.setText(null);jButto
19、n2.setText("u9000u51fau6a21u7ccau67e5u627e");jButton2.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton2ActionPerformed(evt););jButton3.setText("u5237u65b0");jButton3.addActionListener(new java.awt.event.Acti
20、onListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton3ActionPerformed(evt););jLabel2.setText("u5237u65b0u540eu53efu7ee7u7eedu67e5u627e");jButton4.setText("u5220u9664u6b64u5458u5de5");jButton4.addActionListener(new java.awt.event.ActionListener() public
21、void actionPerformed(java.awt.event.ActionEvent evt) jButton4ActionPerformed(evt););jLabel3.setText("u7a7au503cu53efu67e5u627eu6240u6709u5458u5de5");jLabel4.setText("u9700u8981u8f93u5165u5168u540du53efu4ee5u5220u9664u5458u5de5");public void findStaffName(JTable jTable, String nam
22、e) DefaultTableModel model = (DefaultTableModel) jTable.getModel();model.setRowCount(0);Vector v = staffInfoDao.findStaffInfo(name);for (int i = 0; i < v.size(); i+) model.addRow(Vector) v.get(i);(2) action层private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) String name = jname.g
23、etText();if (name != null) staff.findStaffName(jTable1, name); else pleaseInput p = new pleaseInput();p.setVisible(true);(3) dao层public Vector findStaffInfo(String staffname) Vector list = new Vector();String sql = "select *" + "from t_staff_info "+ "where staff_name like
24、9;%" + staffname + "%'"conn = JDBCUtil.getConnection();try stmt = conn.createStatement();rs = stmt.executeQuery(sql);while (rs.next() Vector listObject = new Vector();/ listObject.add( new/ User(rs.getInt("id"),rs.getString("uname"),rs.getString("pwd"
25、);listObject.add(rs.getString("staff_name");listObject.add(rs.getInt("staff_id");listObject.add(rs.getInt("dept_no");listObject.add(rs.getString("staff_pos_name");listObject.add(rs.getString("staff_sex");listObject.add(rs.getInt("staff_baseSal&q
26、uot;);listObject.add(rs.getInt("staff_phoneNum");listObject.add(rs.getString("staff_workNum");list.add(listObject); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); finally JDBCUtil.closeResource(conn, psmt, stmt, rs);return list;4.4 工资管理模块设计与实现在员工基本信息
27、管理界面里可以对单个员工进行基本工资的修改,因而在面向人数较多的企业时,这种方式存在弊端,部门整体调薪操作可以对整个业绩高的部门进行整体调薪(1) view层private void initComponents() jButton1 = new javax.swing.JButton();jLabel1 = new javax.swing.JLabel();jdepart = new javax.swing.JTextField();jButton2 = new javax.swing.JButton();jLabel2 = new javax.swing.JLabel();jScrollP
28、ane1 = new javax.swing.JScrollPane();jTable1 = new javax.swing.JTable();jLabel3 = new javax.swing.JLabel();jdepart2 = new javax.swing.JTextField();sure = new javax.swing.JButton();jLabel4 = new javax.swing.JLabel();money = new javax.swing.JTextField();jLabel5 = new javax.swing.JLabel();jLabel6 = new
29、 javax.swing.JLabel();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);jButton1.setText("u8fd4u56deu4e3bu754cu9762");jButton1.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton1ActionPerformed(evt););
30、jLabel1.setText("u8bf7u8f93u5165u90e8u95e8u540du53efu8fdbu884cu6a21u7ccau67e5u627e");jButton2.setText("u786eu5b9a");jButton2.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton2ActionPerformed(evt););jLabel2.se
31、tText("u7ed9u6307u5b9au90e8u95e8u7684u6240u6709u5458u5de5u8c03u85aa");jTable1.setModel(new javax.swing.table.DefaultTableModel(new Object , new String "部门编号", "部门名称" );jScrollPane1.setViewportView(jTable1);jLabel3.setText("u8f93u5165u5168u540du9009u5b9au90e8u95e8&q
32、uot;);sure.setText("u786eu5b9a");sure.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) sureActionPerformed(evt););jLabel4.setText("u8f93u5165u8c03u6574u529bu5ea6");money.addActionListener(new java.awt.event.ActionLi
33、stener() public void actionPerformed(java.awt.event.ActionEvent evt) moneyActionPerformed(evt););jLabel5.setText("u6e29u99a8u63d0u793a:u63d0u85aau5219u8f93u5165u6b63u6570,u964du85aau5219u8f93u5165u8d1fu6570");jLabel6.setText("u5143");(2) action层private void sureActionPerformed(ja
34、va.awt.event.ActionEvent evt) String jdept = jdepart2.getText();Double money2 = Double.parseDouble(money.getText();StaffInfo s=new StaffInfo();s.num(staff.updateSalary(jdept,money2);private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) dispose();private void jButton2ActionPerformed(ja
35、va.awt.event.ActionEvent evt) String department = jdepart.getText();if (department != null) depart.findDepart(jTable1, department); else pleaseInput p = new pleaseInput();p.setVisible(true);(3) dao层public Vector findDepart(String name) Vector list = new Vector();String sql = "select *" + &
36、quot;from t_department "+ "where dept_name like'%" + name + "%'"conn = JDBCUtil.getConnection();try stmt = conn.createStatement();rs = stmt.executeQuery(sql);while (rs.next() Vector listObject = new Vector();/ listObject.add( new/ User(rs.getInt("id"),rs.ge
37、tString("uname"),rs.getString("pwd");listObject.add(rs.getInt("dept_no");listObject.add(rs.getString("dept_name");list.add(listObject); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); finally JDBCUtil.closeResource(conn, psmt, stmt
38、, rs);return list;4.5 统计管理模块设计与实现统计部门总数和各部门人数(1) view层private void initComponents() jScrollPane1 = new javax.swing.JScrollPane();jTable1 = new javax.swing.JTable();jButton1 = new javax.swing.JButton();jLabel1 = new javax.swing.JLabel();jdepart = new javax.swing.JTextField();jButton2 = new javax.swin
39、g.JButton();jScrollPane3 = new javax.swing.JScrollPane();jTable2 = new javax.swing.JTable();jLabel2 = new javax.swing.JLabel();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);jTable1.setModel(new javax.swing.table.DefaultTableModel(new Object , new String "员工编号", "
40、员工姓名", "统计人数" );jScrollPane1.setViewportView(jTable1);jButton1.setText("u786eu5b9a");jButton1.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton1ActionPerformed(evt););jLabel1.setText("u8bf7u8f93u516
41、5u90e8u95e8u540du8fdbu884cu6a21u7ccau67e5u627e");jdepart.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jdepartActionPerformed(evt););jButton2.setText("u8fd4u56deu4e3bu754cu9762");jButton2.addActionListener(new java.aw
42、t.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton2ActionPerformed(evt););jTable2.setModel(new javax.swing.table.DefaultTableModel(new Object , new String "部门编号", "部门名称" );jScrollPane3.setViewportView(jTable2);jLabel2.setText("u8f93u
43、5165u7a7au503cu53efu67e5u627eu5168u90e8u5458u5de5u6240u5728u90e8u95e8u7684u4fe1u606f");public void findDepart(JTable jTable, String name) DefaultTableModel model = (DefaultTableModel) jTable.getModel();model.setRowCount(0);Vector v = departDao.findDepart(name);for (int i = 0; i < v.size(); i
44、+) model.addRow(Vector) v.get(i);Overridepublic void showDepartNumber(JTable jTable, String name) DefaultTableModel model = (DefaultTableModel) jTable.getModel();model.setRowCount(0);Vector v = departDao.showDepartNumber(name);for (int i = 0; i < v.size(); i+) model.addRow(Vector) v.get(i);(2) ac
45、tion层private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) String depart2 = jdepart.getText();if (depart2 != null) d.showDepartNumber(jTable1, depart2);d.findDepart(jTable2, depart2); else pleaseInput p = new pleaseInput();p.setVisible(true);(3) dao层public Vector findDepart(String nam
46、e) Vector list = new Vector();String sql = "select *" + "from t_department "+ "where dept_name like'%" + name + "%'"conn = JDBCUtil.getConnection();try stmt = conn.createStatement();rs = stmt.executeQuery(sql);while (rs.next() Vector listObject = new V
47、ector();/ listObject.add( new/ User(rs.getInt("id"),rs.getString("uname"),rs.getString("pwd");listObject.add(rs.getInt("dept_no");listObject.add(rs.getString("dept_name");list.add(listObject); catch (SQLException e) / TODO Auto-generated catch blocke
48、.printStackTrace(); finally JDBCUtil.closeResource(conn, psmt, stmt, rs);return list;Overridepublic Vector showDepartNumber(String name) / TODO Auto-generated method stubVector list = new Vector();String sql = "select staff_id,staff_name from t_staff_info " +"where dept_no in " +
49、"(select dept_no from t_department " +"where dept_name like '%"+name+"%')"conn = JDBCUtil.getConnection();try stmt = conn.createStatement();rs = stmt.executeQuery(sql);int rowCount=0;while (rs.next() listObject = new Vector();listObject.add(rs.getInt("staff
50、_id");listObject.add(rs.getString("staff_name"); /int rowCount = rs.last().getRow();/得到当前行号,也就是记录数 rowCount+;list.add(listObject);listObject.add(rowCount); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); finally JDBCUtil.closeResource(conn, psmt, stmt, rs)
51、;return list;4.6 系统设置模块设计与实现可以对数据库备份,恢复,管理操作员,基础资料设置.其中数据备份和数据恢复的代码是public void backUp(User user) / TODO Auto-generated method stubtry ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("g:user.txt"); oos.writeObject(user); oos.close(); backupok b=new backupok(); b.setVis
52、ible(true); catch (FileNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace();backupfalse b=new backupfalse();b.setVisible(true); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();backupfalse2 b=new backupfalse2();b.setVisible(true);Overridepublic User recOver() User user=null;try ObjectInputStrea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西省于都实验中学2025届高三下学期第二次联考历史试题含解析
- 武汉科技职业学院《新能源材料与器件导论》2023-2024学年第二学期期末试卷
- 项目施工流程计划
- 武夷学院《足球主项与实践Ⅰ》2023-2024学年第二学期期末试卷
- 海南科技职业大学《A设计》2023-2024学年第二学期期末试卷
- 天津传媒学院《运动生理学二》2023-2024学年第二学期期末试卷
- 包头铁道职业技术学院《新媒体展示设计》2023-2024学年第一学期期末试卷
- 四川铁道职业学院《草书2》2023-2024学年第二学期期末试卷
- 标准化基础知识培训
- 预防交叉感染制度
- 智慧能源-智慧能源管理平台建设方案
- 非线性弹性本构关系全量型增量型③弹塑性本构课件
- 涉嫌虚假诉讼立案监督申请书
- 通用高考英语答题卡模板word模板
- 外文文献 A SP的网站新闻管理系统的设计与实现 中英文版
- 中国教育简史全书ppt完整版课件最全电子教案正本书教学教程
- 中学生心理健康诊断测验-MHT量表
- 年轻干部教育管理监督调研情况报告
- 三级安全管理标准化评定标准
- 简谱视唱15942
- 民宿设计要点--ppt课件
评论
0/150
提交评论