



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、中北大學(xué)課程設(shè)計說明書學(xué)生姓名:陳 松學(xué) 號:0606054112學(xué)院 :電子與計算機科學(xué)技術(shù)學(xué)院專業(yè) :軟件工程題目 :工資管理系統(tǒng)- 職工考勤管理系統(tǒng)指導(dǎo)教師:韓燮職稱:教授2008年6 月27 日1 系統(tǒng)設(shè)計1.1 目標(biāo)設(shè)計在工資管理中, 需要從公司管理方式以及實際情況中提取相關(guān)信息,以反映工資管理情況。傳統(tǒng)的手工操作方式,易發(fā)生數(shù)據(jù)丟失,統(tǒng)計錯誤,勞動強度高,且速度慢。使用計算機可以高速,快捷地完成以上工作。避免重復(fù)勞動,規(guī)范工資管理行為,從而提高了管理效率和水平。讓人們的效率大大提高.不難想象, 正是資訊的迅速發(fā)展使得人們從過去繁復(fù)的手工勞作中得以解脫,從而使這種服務(wù)在現(xiàn)在才可能迅速
2、普及。同時,編寫一套完整的工資管理系統(tǒng)的任務(wù)就顯得尤為重要。開發(fā)設(shè)計思想本系統(tǒng)開發(fā)設(shè)計思想:對公司軟硬件調(diào)查, 從實際環(huán)境出發(fā), 以便充分利用公司現(xiàn)在資源, 提高系統(tǒng)開發(fā)水平和應(yīng)用效果。了解公司的需要及相關(guān)方面的規(guī)定, 根據(jù)需要做出符合要求的軟件, 并達(dá)到操作過程中的直觀、方便、實用、安全等要求。將系統(tǒng)按模塊分工到人, 提高效率, 且模塊化設(shè)計便于系統(tǒng)功能的各種組合和修改及日后的維護(hù)系統(tǒng)應(yīng)具備數(shù)據(jù)庫維護(hù)功能,及時根據(jù)用戶需求進(jìn)行數(shù)據(jù)的添加、刪除、修改、等操作。1.3開發(fā)和運行環(huán)境選擇開發(fā)工具: SQL2000, java語言。運行環(huán)境:Windows XP,Windows 2000或 VIST
3、A 操作系統(tǒng)。1.4系統(tǒng)功能分析本系統(tǒng)主要用于員工基本信息的管理,對員工以及其他信息的添加、修改、刪除、查詢等基本操作。 對于數(shù)據(jù)庫的保護(hù)有數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)的功能。針對這些要求, 設(shè)計本月工資信息管理系統(tǒng)。該系統(tǒng)主要包括職工信息、職工考勤信息、職工津貼信息。1) 職工信息管理系統(tǒng)功能為:財務(wù)部門相關(guān)人員錄入、修改、刪除、查詢員工個人信息;員工本人能通過用戶名和密碼查詢自己的信息以及修改自己的密碼;2) 職工工資管理系統(tǒng)功能為: 根據(jù)工資生成公式,按照員工的考勤情況及各種表現(xiàn)按月生成相應(yīng)的工資;務(wù)部門相關(guān)人員能錄入、修改、 刪除、查詢每個月每個員工的工資信息以及工資匯總;財員工本人能查詢自己的
4、工資信息以及工資匯總;3) 職工津貼管理系統(tǒng)功能為:財務(wù)部門相關(guān)人員錄入、修改、刪除、查詢職工津貼信息;職工本人能查詢自己的津貼;4) 職工考勤管理系統(tǒng)功能為:后勤管理人員錄入、修改、刪除、查詢職工考勤信息;職工本人能查詢自己的考勤情況。采用模塊化設(shè)計思想,可以大大提高設(shè)計的效率,并且可以最大限度地減少不必要的錯誤。其系統(tǒng)結(jié)構(gòu)框圖如圖所示:工資管理系統(tǒng)系工津考員統(tǒng)資貼勤工模生管管管塊成理理理模模模模塊塊塊塊圖 1.1系統(tǒng)功能模塊圖2. 數(shù)據(jù)庫設(shè)計2.1數(shù)據(jù)庫需求分析根據(jù)工資管理要求及用戶需求調(diào)查分析,得到以下數(shù)據(jù)流圖職工信息操作數(shù)據(jù)工資信息系統(tǒng)操作考勤信息津貼管理進(jìn)入基本界圖 2.1 第一層數(shù)
5、據(jù)流圖添加操作輸入職工基本信息用戶修改職工信息修改操作刪除職工記錄刪除操作職工號查詢操作圖 2.2 職工信息的載入數(shù)據(jù)庫操作職工表添加操作輸入工資基本信息用戶修改工資信息修改操作刪除工資信息刪除操作查詢操作圖 2.3 工資的信息載入添加操作輸入考勤基本信息用戶修改考勤信息修改操作刪除考勤信息刪除操作查詢操作圖 2.4 考勤的信息載入工資表考勤表添加操作輸入津貼基本信息用戶修改津貼信息修改操作津貼表刪除津貼信息刪除操作查詢操作圖 2.5 津貼的信息載入職工管理員進(jìn)入系統(tǒng)進(jìn)入員工 (工資 ,考勤 ,津貼 )表職工表津貼表工資表考勤表進(jìn)行錄入, 修改 ,刪除 ,查詢操作圖 2.6 信息查詢及管理的流
6、程圖2.2 數(shù)據(jù)庫概念設(shè)計有了數(shù)據(jù)流圖,用E-R 圖來說明工資信息管理系統(tǒng)的數(shù)據(jù)庫概念模式,如圖2-2 所示基本工資職工號個人所得稅1n領(lǐng)取工資醫(yī)療保險電話號碼m缺勤扣除職工號缺勤天數(shù)姓名1n員工工齡缺勤類別密碼部門崗位年終獎金1領(lǐng)取加班獎金影響職工號n考勤m時間影響職工號nn津貼其他獎金圖 2.7實體之間關(guān)系E-R 圖2.3數(shù)據(jù)庫邏輯設(shè)計將以上 E-R 轉(zhuǎn)換成如下關(guān)系模式員工(職工號,姓名,工齡,部門崗位,電話號碼,密碼)工資(職工號,個人所得稅,基本工資,醫(yī)療保險,缺勤扣除)考勤(職工號,缺勤天數(shù),缺勤類別,時間)津貼(職工號,年終獎金,加班獎金,其他獎金)其中,標(biāo)有下劃線的字段表示為該數(shù)
7、據(jù)表的主碼,即主關(guān)鍵字。在上面的實體以及實體之間關(guān)系的基礎(chǔ)上,形成數(shù)據(jù)庫中的表格以及各個表格之間的關(guān)系。工資信息管理系統(tǒng)數(shù)據(jù)庫中各個表格的設(shè)計結(jié)果如下面的幾個表格所示。每個表格表示在數(shù)據(jù)庫中的一個表。表一:員工信息表:列名數(shù)據(jù)類型可否取空備注說明noChar ( 8 )NOT NULL職工號(主鍵)nameChar( 10)NOT NULL職工姓名gwChar( 20)NOT NULL部門崗位glSmallintNOT NULL工齡hmChar(11)NULL電話號碼miSmallintNOT NULL登錄密碼表二 : 工資表:列名數(shù)據(jù)類型可否取空備注說明noChar ( 8 )NOT NUL
8、L職工號(主鍵)JbmoneyNOT NULL基本工資ylmoneyNULL醫(yī)療保險SwmoneyNULL個人所得稅kcmoneyNULL缺勤扣除JtmoneyNULL津貼yzmoneyNOT NULL月總工資表三:員工考勤信息表列名數(shù)據(jù)類型可否取空備注說明noChar ( 8 )NOT NULL職工號(主鍵)tsInt(4)NULL缺勤天數(shù)lbChar( 30)NULL缺勤類別SjChar(10)NULL缺勤時間表四:津貼信息表列名數(shù)據(jù)類型可否為空備注說明noChar ( 8 )NOT NULL職工號(主鍵)JiabanmoneyNULL月加班獎金nzmoneyNULL年終獎金qtmoney
9、NULL其他獎金3功能模塊詳細(xì)設(shè)計3.1 主界面及工資基本信息界面的設(shè)計圖 2.8歡迎畫面圖 2.9 登錄界面圖 3.0系統(tǒng)主界面圖 3.1考勤信息錄入 , 修改 , 刪除 , 查詢界面3.2 功能描述1 主界面通過菜單將各個模塊連接起來2. 工資基本信息模塊工資基本信息的添加、修改和刪除等基本操作3.3 主要源代碼import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.awt.*;import java.sql.*;import java.lang.*;import java.util.*;impo
10、rt javax.swing.table.*;import java.math.*;class zzlc implements ActionListenerJFrame frame=new JFrame("歡迎進(jìn)入ZZLC工資管理系統(tǒng)");JLabel label=new JLabel("制作人:陳松張淑靜張虎黎成 ",JLabel.CENTER);JButton button1=new JButton("進(jìn)入系統(tǒng)");JButton button2=new JButton("退出系統(tǒng)");ImageIcon im
11、=new ImageIcon("1.jpg");JLabel a1=new JLabel(im);void Create()JPanel pcontentPane=(JPanel)frame.getContentPane();JPanel pcontentPane1=new JPanel();pcontentPane.add(label);pcontentPane.setLayout(new FlowLayout();pcontentPane.add(button1);pcontentPane.add(button2);pcontentPane.add(new Label(
12、"");pcontentPane.add(a1);pcontentPane.setBackground(Color.pink);pcontentPane.setVisible(true);button1.addActionListener(this);button2.addActionListener(this);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setBounds(200,100,550,600);frame.setVisible(true);public sta
13、tic void main(String args)zzlc dome=new zzlc();dome.Create();public void actionPerformed(ActionEvent e)if(button1.equals(e.getSource()DL dl=new DL();dl.create();if(button2.equals(e.getSource()/退出System.exit(0);class DL implements ActionListenerJFrame frame=new JFrame("職工 / 管理員登陸 ");JLabel
14、label1=new JLabel("用戶名 ");JLabel label2=new JLabel("密碼 ");JButton logonButton1=new JButton("管理員登錄 ");JButton logonButton2=new JButton("職工登錄 ");JButton cancelButton=new JButton("退出 ");JTextField t1=new JTextField(0);JTextField t2=new JTextField(0);Ima
15、geIcon im=new ImageIcon("2.jpg");JLabel a2=new JLabel(im);JTextField username=new JTextField(9);JPasswordField password=new JPasswordField(9);void create()JPanel p=(JPanel)frame.getContentPane();JPanel p1=new JPanel();p.setLayout(new FlowLayout();p.add(label1);p.setSize(5,5);p.setLocation(
16、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(new JLabel("");p.add(logonButton2);p.add(new JLabel("");p.add(cancelButton);p.add(n
17、ew JLabel("");p.add(a2);p.add(t1);p.add(t2);p.setBackground(Color.red);p.setVisible(true);logonButton1.addActionListener(this);logonButton2.addActionListener(this); cancelButton.addActionListener(this); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setBounds(200,1
18、00,750,550);frame.setVisible(true);public void actionPerformed(ActionEvent e)if(logonButton1.equals(e.getSource()&&(username.getText().equals("123")=true)&&(password.getText().equals("123")=true)GZGLZJM gz=new GZGLZJM();gz.create();elseJOptionPane.showMessageDialo
19、g(null,"對不起,你輸入的密碼錯誤!");if(logonButton2.equals(e.getSource()&&(username.getText().equals(t1.getTex t()=true)&&(password.getText().equals(t2.getText()=true)XK xk=new XK();xk.create();Connection con;Statement sql;ResultSet rs;Vector vector=new Vector();try Class.forName("
20、;sun.jdbc.odbc.JdbcOdbcDriver"); catch (ClassNotFoundException e1) System.out.println("" + e1);try con = DriverManager.getConnection("jdbc:odbc:123", "", "");sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);sql.executeQu
21、ery("SELECTGno,mmFROMY WHEREGno="+t1.getText()+"ANDmm="+t2.getText();catch (SQLException e1) System.out.println(e1);if(cancelButton.equals(e.getSource()System.exit(0);class GZGLZJM extends JFrame implements ActionListenerJFrame f=new JFrame("工資管理系統(tǒng)");JButton b1=new JBut
22、ton("津貼管理 ");JButton b2=new JButton("總查詢 ");JButton b3=new JButton("工資管理 ");JButton b4=new JButton("后勤管理 ");JButton b6=new JButton("員工個人信息管理");JButton b5=new JButton("返回 ");ImageIcon im=new ImageIcon("3.jpg");JLabel a3=new JLabel(
23、im);void create()JPanel p=(JPanel)f.getContentPane();JPanel p1=new JPanel();p.setLayout(new FlowLayout();p.add(b1);p.add(new JLabel("");p.add(b6);p.add(new JLabel("");p.add(b3);p.add(new JLabel("");p.add(b4);p.add(new JLabel("");p.add(b2);p.add(new JLabel(&quo
24、t;");p.add(b5);p.add(a3);p.setBackground(Color.red);p.setVisible(true);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);f.setBounds(200,100,800,600);f.setVisible(true);public void ac
25、tionPerformed(ActionEvent e)if(b5.equals(e.getSource()/DL d=new DL();f.dispose();返回if(b1.equals(e.getSource()/津貼管理JTGL jt=new JTGL();jt.create();if(b6.equals(e.getSource()/員工個人信息管理YGGL yg=new YGGL();yg.create();if(b2.equals(e.getSource()/XK xk=new XK();xk.create();查詢if(b4.equals(e.getSource()/后勤管理KQ
26、GL kq=new KQGL();kq.create();if(b3.equals(e.getSource()/工資管理GZGL gz=new GZGL();gz.create();class KQGL implements ActionListenerJFrame f=new JFrame("錄入修改刪除考勤信息");JButton b1=new JButton("錄入 ");JButton b2=new JButton("修改 ");JButton b3=new JButton("刪除 ");JButton b
27、4=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);JButton b6=new JButton("查詢單人考勤");String cloum="
28、職工號 "," 缺勤天數(shù) "," 缺勤類別 "," 缺勤時間 "Object row=newObject504;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
29、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(b6);p1.add(b5);JPanel p2=new JPanel();p2.setBackground(Color.red);p2.add(scrollpane);JPanel p3=new JPanel();p.setLayout(new FlowLayout();p.add(new JLabel("");p.add(new
30、 JLabel("職工號");p.add(tf1);p.add(new JLabel("缺勤天數(shù)");p.add(tf2);p.add(new JLabel("缺勤類別");p.add(tf3);p.add(new JLabel("");p.add(new JLabel("缺勤時間");p.add(tf4);p.add(new JLabel("在此處輸入職工號點擊查詢刪除");p.add(tf5);splitpane.add(p1,splitpane.TOP);splitpa
31、ne.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);b6.addActionListener(this);f.setBounds(200,100,500,600);f.setResizable(true)
32、;/可以調(diào)整界面大小f.setVisible(true);public void actionPerformed(ActionEvent e)if(b1.equals(e.getSource() /添加Connection con;Statement sql;ResultSet rs;try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); catch (ClassNotFoundException e1) System.out.println("" + e1);try con = DriverManager.
33、getConnection("jdbc:odbc:123", "", "");sql = con.createStatement();String insertStr= "INSERT INTO K VALUES "+ "("+ "'"+tf1.getText()+"'"+","+tf2.getText()+","+"'"+tf3.getText()+"'
34、"+","+tf4.getText()+")"sql.executeUpdate(insertStr);con.close(); catch (SQLException e1) System.out.println(e1);if(b2.equals(e.getSource()/修改Connection con;Statement sql;ResultSet rs;try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); catch (ClassNotFoundException e
35、1) System.out.println("" + e1);try con = DriverManager.getConnection("jdbc:odbc:123", "", "");sql = con.createStatement();sql.executeUpdate("UPDATEKSET ts="+tf2.getText()+"WHEREKno="+tf1.getText()+"");sql.executeUpdate("UPDAT
36、EKSET lb="+tf3.getText()+"WHEREKno="+tf1.getText()+"");sql.executeUpdate("UPDATE K SET sj="+tf4.getText()+"WHERE Kno="+tf1.getText()+"");con.close(); catch (SQLException e1) System.out.println(e1);if(b3.equals(e.getSource()/刪除Connection con;Stat
37、ement sql;ResultSet rs;try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); catch (ClassNotFoundException e1) System.out.println("" + e1);try con = DriverManager.getConnection("jdbc:odbc:123", "", "");sql = con.createStatement(ResultSet.TYPE_SCROLL_SEN
38、SITIVE,ResultSet.CONCUR_READ_ONLY);sql.executeUpdate("DELETE FROM K WHERE Kno="+tf5.getText();con.close(); catch (SQLException e1) System.out.println(e1);if(b4.equals(e.getSource()/查詢?nèi)緾onnection con;Statement sql;ResultSet rs;Vector vector=new Vector();try Class.forName("sun.jdbc.odb
39、c.JdbcOdbcDriver"); catch (ClassNotFoundException e1) System.out.println("" + e1);try con = DriverManager.getConnection("jdbc:odbc:123", "sa", "");sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY) ;if(b4.equals(e.getSou
40、rce()for(int i=0;i<50;i+)for(int j=0;j<4;j+)table.setValueAt("",i,j) ;rs= sql.executeQuery("SELECT* FROMK ORDERBY Kno DESC");int k=-1;while(rs.next() +k;String Kno = rs.getString(1);String ts = rs.getString(2);String lb = rs.getString(3);String sj = rs.getString(4);table.se
41、tValueAt(Kno,k,0);table.setValueAt(ts,k,1);table.setValueAt(lb,k,2);table.setValueAt(sj,k,3);catch (SQLException e1) System.out.println(e1);if(b6.equals(e.getSource() /Connection con;Statement sql;ResultSet rs;Vector vector=new Vector();查詢關(guān)鍵字try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); catch (ClassNotFoundException e1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機電工程施工圖設(shè)計常見問題匯編
- 護(hù)理晉升主管述職報告
- 體育課開學(xué)課件
- 2025年大學(xué)統(tǒng)計學(xué)期末考試題庫-數(shù)據(jù)分析計算題實戰(zhàn)案例實戰(zhàn)解析
- 2025年調(diào)酒師職業(yè)技能大賽實操技能考核試題集
- 藥物治療方案制定
- 2025年安全生產(chǎn)考試題庫(危險化學(xué)品安全)危險化學(xué)品安全操作規(guī)范修訂與實施效果試題試卷
- 2025年統(tǒng)計學(xué)專業(yè)期末考試題庫:統(tǒng)計質(zhì)量管理實務(wù)試題
- 2025年高壓電工考試題庫:安全事故應(yīng)急處理與現(xiàn)場指揮試題
- 2025年會計職稱考試《初級會計實務(wù)》錯題復(fù)盤強化測試試題
- 細(xì)胞內(nèi)蛋白質(zhì)的分選和運輸細(xì)胞生物學(xué)-1
- 高血壓健康宣教-飲食課件
- 八年級-現(xiàn)在完成時復(fù)習(xí)(共26張)課件
- 電氣基礎(chǔ)知識培訓(xùn)要點課件
- 福建省泉州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 基坑工程施工驗收記錄表
- GB∕T 37045-2018 信息技術(shù) 生物特征識別 指紋處理芯片技術(shù)要求
- 質(zhì)量部人員崗位技能矩陣圖
- 瀝青項目運營方案參考范文
- 商品混凝土項目園區(qū)審批申請報告(范文參考)
- 機電一體化技術(shù)專業(yè)實踐教學(xué)評價體系
評論
0/150
提交評論