人事工資管理系統(tǒng)課程設計報告_第1頁
人事工資管理系統(tǒng)課程設計報告_第2頁
人事工資管理系統(tǒng)課程設計報告_第3頁
人事工資管理系統(tǒng)課程設計報告_第4頁
人事工資管理系統(tǒng)課程設計報告_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、蘇州科技大學電子信息與智能化實驗中心面向對象技術課程設計A報告人事工資管理系統(tǒng)專業(yè)年級計算機科學與技術(嵌入式培養(yǎng))15級班級嵌入式1511學號1520014111915200141115152001411011520014113715200141136姓名張梓軒戚春陽徐敏杰袁祺林王雨欣成績指導教師 丁 俊2016年12月24日43 / 45文檔可自由編輯姓名角色承擔任務自評成績張梓軒組長E-R圖;統(tǒng)一數(shù)據(jù)庫;工資管理系統(tǒng)顯示所有員工的工資,部門整體調薪的實現(xiàn);人事管理系統(tǒng)的時序圖和活動圖;戚春陽組員統(tǒng)計管理系統(tǒng)顯示各個部門和人數(shù)功能的實現(xiàn);用戶權限和密碼設置;系統(tǒng)時間輸出;實現(xiàn)系統(tǒng)設置管理中

2、的數(shù)據(jù)備份和數(shù)據(jù)恢復;整合所有人代碼,實現(xiàn)功能的統(tǒng)一和代碼的優(yōu)化;登錄界面的活動圖和時序圖;徐敏杰組員人事管理系統(tǒng)添加員工信息,修改員工信息;用例圖和用例說明;任務書的編寫;系統(tǒng)設置系統(tǒng)的活動圖、時序圖;袁祺林組員人事管理系統(tǒng)查詢員工的登陸信息、模糊查詢和刪除員工;課程總結;任務書的編寫;人事管理系統(tǒng)的時序圖和活動圖;王雨欣組員員工獎懲表的增、刪、改、查;系統(tǒng)類圖;課程設計與需求分析;統(tǒng)計管理系統(tǒng)的活動圖和時序圖;注:如果按小組進行,需要此表,否則刪除。人事工資系統(tǒng)設計報告1 課程設計任務概述 人事工資管理系統(tǒng)是非常通用的管理信息系統(tǒng),一個公司必須要有健全的人事工資管理系統(tǒng)來管理員工的信息,才

3、能實現(xiàn)它的日常運轉。因此,為了支持企業(yè)規(guī)范化的管理,高效率地完成人事的業(yè)務,需要實現(xiàn)包括員工的姓名、年齡、編號、電話號碼等基本信息的建立,授予員工所能獲取的權限,例如管理員權限,就可以對普通員工進行信息管理,其中包括新員工個人的基本信息資料的增加、修改,退休員工的信息的刪除,員工獎懲信息的增加、刪除和修改;此外還支持管理員對部門整體進行調薪,擴大了管理員的管理范圍;同時為了支持人事管理及其相關方面的科學決策,增加了員工的個人基本信息查詢、薪資查詢、獎懲情況查詢和部門的總體情況查詢等,大大提高了公司內部員工管理的效率,減少了不必要的精力的投入,使得企業(yè)的正常維護得以實現(xiàn)。 2 系統(tǒng)需求分析2.1

4、 系統(tǒng)功能分析 本系統(tǒng)主要是實現(xiàn)企業(yè)人事管理的系統(tǒng)化、規(guī)范化和自動化,實現(xiàn)數(shù)據(jù)的錄入、插入、刪除、查詢、統(tǒng)計、更新等功能。具有員工注冊以及登錄的功能,且登錄后管理員可修改自己用戶權限;大體分為以下四個主功能:1.人事管理系統(tǒng):主要用來實現(xiàn)對員工的基本信息的增加、信息的刪除、信息的修改以及模糊查詢,還包括對員工的獎懲信息的增加,信息的刪除,信息的修改以及信息的查詢;2.工資管理系統(tǒng):主要包括模糊查詢部門信息、員工的總體以及個人工資信息,以及對部門的薪資進行整體調整的功能;3.統(tǒng)計管理系統(tǒng):主要指用來顯示部門的整體情況以及員工人數(shù);4.系統(tǒng)設置系統(tǒng):主要是用來對數(shù)據(jù)進行恢復和備份。2.2 用例圖及

5、用例說明2.2.1 用戶注冊用例1.用例名稱: 注冊2.用例描述: 注冊成為本管理系統(tǒng)的用戶3.角色: 用戶4.前置條件: 格式輸入正確5.后置條件: 保存此用戶的信息6.基本路徑: A.填寫用戶名和密碼 B.保存用戶信息7.擴展點: A.未填寫完整或者格式錯誤 a1.錯誤提示 B.用戶已經存在 b1.錯誤提示3 系統(tǒng)設計3.1 系統(tǒng)類圖3.2 系統(tǒng)活動圖用戶登陸活動圖:人事管理系統(tǒng)活動圖:統(tǒng)計管理系統(tǒng)活動圖: 工資管理系統(tǒng)活動圖: 系統(tǒng)設置管理活動圖:3.3 系統(tǒng)時序圖用戶登陸時序圖:人事管理系統(tǒng)時序圖:工資管理系統(tǒng)時序圖:統(tǒng)計管理系統(tǒng)時序圖:系統(tǒng)設置管理時序圖:4 系統(tǒng)實現(xiàn)4.1登錄模塊設

6、計與實現(xiàn)登錄模塊是用戶登錄進去進行相關操作的,如員工信息的增刪改查等等。(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.JPasswordField();limit = new javax.swing.JComboBox();jLabel3 = new javax.swing.JLabel()

7、;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);setResizable(false);setState(1);loginTitle.setFont(new java.awt.Font(Microsoft YaHe

8、i UI, 1, 44);loginTitle.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);loginTitle.setText(u4ebau4e8bu5de5u8d44u7ba1u7406u7cfbu7edf);jLabel1.setText(u7528u6237u540d);jLabel2.setText(u5bc6 u7801uff1a);/limit.setModel(javax.swing.DefaultComboBoxModel187e702);jLabel3.setText(u6743 u9650uff1a)

9、;loginBtn.setText(u767bu9646);(2) Action層private void registerBtnActionPerformed(java.awt.event.ActionEvent evt) registerFrame r = new registerFrame();r.setVisible(true);private void loginBtnMouseClicked(java.awt.event.MouseEvent evt) String name = this.uname.getText();String pwd = this.pwd.getText(

10、);String limit = this.limit.getSelectedItem().toString();int type = 0;if (管理員.equals(limit) type = 1;usertype=管理員; else type = 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)

11、;setVisible(false); else fail f = new fail();f.setVisible(true);dispose();(3) Dao數(shù)據(jù)交互層Overridepublic User login(User 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_p

12、wd=+user.getUserPwd()+ + 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); resultUser.setUser

13、Pwd(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系統(tǒng)主界面可在該模塊完成員工資料的常用操作。員工的各項人事記錄可在選擇員工后,在主界面下面的分欄里面進行添加、修改、刪除操作。4.3人事管理模塊設計及實現(xiàn)對員工的相關資料及記錄進行管理??稍谠撃K對員工基本資料、獎懲記錄、

14、修改員工信息可實現(xiàn)對員工的調動、薪水記錄進行修改。當進入到人事管理子系統(tǒng)模塊,再點擊模糊查詢。刪除員工按鈕,會進入到下面的界面其中的模糊查詢代碼如下(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();jname = new javax.swing.JTextField(

15、);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.swing.WindowConstants.EXIT_ON_CLOSE);jTable1.setMod

16、el(new javax.swing.table.DefaultTableModel(new Object , new String 姓名, 編號, 部門編號, 職稱, 性別, 基本工資,電話號碼, 工號 );jScrollPane1.setViewportView(jTable1);jButton1.setText(u786eu5b9a);jButton1.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButt

17、on1ActionPerformed(evt););jLabel1.setText(u8bf7u8f93u5165u59d3u540duff0cu652fu6301u6a21u7ccau67e5u627e);jname.setText(null);jButton2.setText(u9000u51fau6a21u7ccau67e5u627e);jButton2.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jBut

18、ton2ActionPerformed(evt););jButton3.setText(u5237u65b0);jButton3.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton3ActionPerformed(evt););jLabel2.setText(u5237u65b0u540eu53efu7ee7u7eedu67e5u627e);jButton4.setText(u5220u9664u6b64

19、u5458u5de5);jButton4.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton4ActionPerformed(evt););jLabel3.setText(u7a7au503cu53efu67e5u627eu6240u6709u5458u5de5);jLabel4.setText(u9700u8981u8f93u5165u5168u540du53efu4ee5u5220u9664u5458

20、u5de5);public void findStaffName(JTable jTable, String name) 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(

21、java.awt.event.ActionEvent evt) String name = jname.getText();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 + w

22、here staff_name like% + 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);listObject.add(rs.getString(staff_name

23、);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);listObject.add(rs.getInt(staff_phoneNum);listObject.add(rs.getString(staff_workNum);list.add(listObject);

24、catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); finally JDBCUtil.closeResource(conn, psmt, stmt, rs);return list;4.4 工資管理模塊設計與實現(xiàn)在員工基本信息管理界面里可以對單個員工進行基本工資的修改,因而在面向人數(shù)較多的企業(yè)時,這種方式存在弊端,部門整體調薪操作可以對整個業(yè)績高的部門進行整體調薪(1) view層private void initComponents() jButton1 = new javax.swing.

25、JButton();jLabel1 = new javax.swing.JLabel();jdepart = new javax.swing.JTextField();jButton2 = new javax.swing.JButton();jLabel2 = new javax.swing.JLabel();jScrollPane1 = new javax.swing.JScrollPane();jTable1 = new javax.swing.JTable();jLabel3 = new javax.swing.JLabel();jdepart2 = new javax.swing.JT

26、extField();sure = new javax.swing.JButton();jLabel4 = new javax.swing.JLabel();money = new javax.swing.JTextField();jLabel5 = new javax.swing.JLabel();jLabel6 = new javax.swing.JLabel();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);jButton1.setText(u8fd4u56deu4e3bu754cu9762);jB

27、utton1.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton1ActionPerformed(evt););jLabel1.setText(u8bf7u8f93u5165u90e8u95e8u540du53efu8fdbu884cu6a21u7ccau67e5u627e);jButton2.setText(u786eu5b9a);jButton2.addActionListener(new java.

28、awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton2ActionPerformed(evt););jLabel2.setText(u7ed9u6307u5b9au90e8u95e8u7684u6240u6709u5458u5de5u8c03u85aa);jTable1.setModel(new javax.swing.table.DefaultTableModel(new Object , new String 部門編號, 部門名稱 );jScrollPan

29、e1.setViewportView(jTable1);jLabel3.setText(u8f93u5165u5168u540du9009u5b9au90e8u95e8);sure.setText(u786eu5b9a);sure.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) sureActionPerformed(evt););jLabel4.setText(u8f93u5165u8c03u6574u529bu5

30、ea6);money.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) moneyActionPerformed(evt););jLabel5.setText(u6e29u99a8u63d0u793a:u63d0u85aau5219u8f93u5165u6b63u6570,u964du85aau5219u8f93u5165u8d1fu6570);jLabel6.setText(u5143);(2) action層pri

31、vate void sureActionPerformed(java.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

32、 void jButton2ActionPerformed(java.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();Strin

33、g 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 Vector();/ listObject.add( new/ User(rs.getInt(id),rs.getString(uname),rs.getString(pwd);list

34、Object.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, rs);return list;4.5 統(tǒng)計管理模塊設計與實現(xiàn)統(tǒng)計部門總數(shù)和各部門人數(shù)(1) view層private void initComponents() j

35、ScrollPane1 = 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.swing.JButton();jScrollPane3 = new javax.swing.JScrollPane();jTable2 = new javax.swing.JT

36、able();jLabel2 = new javax.swing.JLabel();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);jTable1.setModel(new javax.swing.table.DefaultTableModel(new Object , new String 員工編號, 員工姓名, 統(tǒng)計人數(shù) );jScrollPane1.setViewportView(jTable1);jButton1.setText(u786eu5b9a);jButton1.addActionListe

37、ner(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton1ActionPerformed(evt););jLabel1.setText(u8bf7u8f93u5165u90e8u95e8u540du8fdbu884cu6a21u7ccau67e5u627e);jdepart.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(j

38、ava.awt.event.ActionEvent evt) jdepartActionPerformed(evt););jButton2.setText(u8fd4u56deu4e3bu754cu9762);jButton2.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton2ActionPerformed(evt););jTable2.setModel(new javax.swing.table.De

39、faultTableModel(new Object , new String 部門編號, 部門名稱 );jScrollPane3.setViewportView(jTable2);jLabel2.setText(u8f93u5165u7a7au503cu53efu67e5u627eu5168u90e8u5458u5de5u6240u5728u90e8u95e8u7684u4fe1u606f);public void findDepart(JTable jTable, String name) DefaultTableModel model = (DefaultTableModel) jTab

40、le.getModel();model.setRowCount(0);Vector v = departDao.findDepart(name);for (int i = 0; i v.size(); i+) model.addRow(Vector) v.get(i);Overridepublic void showDepartNumber(JTable jTable, String name) DefaultTableModel model = (DefaultTableModel) jTable.getModel();model.setRowCount(0);Vector v = depa

41、rtDao.showDepartNumber(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 depart2 = jdepart.getText();if (depart2 != null) d.showDepartNumber(jTable1, depart2);d.findDepart(jTable2, depart2); else

42、 pleaseInput p = new pleaseInput();p.setVisible(true);(3) dao層public Vector findDepart(String name) 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);wh

43、ile (rs.next() Vector listObject = new Vector();/ 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.printStackTrace();

44、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 +(select dept_no from t_department +where dept_

45、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_id);listObject.add(rs.getString(staff_name); /int rowCount = rs.last().getRow();/得到當前行號,也就是記錄數(shù) ro

46、wCount+;list.add(listObject);listObject.add(rowCount); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); finally JDBCUtil.closeResource(conn, psmt, stmt, rs);return list;4.6 系統(tǒng)設置模塊設計與實現(xiàn)可以對數(shù)據(jù)庫備份,恢復,管理操作員,基礎資料設置.其中數(shù)據(jù)備份和數(shù)據(jù)恢復的代碼是public void backUp(User user) / TODO Auto-genera

47、ted method stubtry ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(g:user.txt); oos.writeObject(user); oos.close(); backupok b=new backupok(); b.setVisible(true); catch (FileNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace();backupfalse b=new backupfalse()

48、;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 ObjectInputStream ois = new ObjectInputStream(new FileInputStream(g:user.txt); user=(User)ois.readObject();ois.close();recoverok r=new rec

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論