




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、中北大學(xué)課 程 設(shè) 計(jì) 說 明 書學(xué)生姓名: 陳 松 學(xué) 號(hào): 0606054112學(xué) 院: 電子與計(jì)算機(jī)科學(xué)技術(shù)學(xué)院專 業(yè): 軟件工程 題 目:工資管理系統(tǒng)-職工考勤管理系統(tǒng)指導(dǎo)教師: 韓燮 職稱: 教授2008 年 6 月 27 日1 系統(tǒng)設(shè)計(jì) 1.1 目標(biāo)設(shè)計(jì)在工資管理中,需要從公司管理方式以及實(shí)際情況中提取相關(guān)信息,以反映工資管理情況。傳統(tǒng)的手工操作方式,易發(fā)生數(shù)據(jù)丟失,統(tǒng)計(jì)錯(cuò)誤,勞動(dòng)強(qiáng)度高,且速度慢。使用計(jì)算機(jī)可以高速,快捷地完成以上工作。避免重復(fù)勞動(dòng),規(guī)范工資管理行為,從而提高了管理效率和水平。讓人們的效率大大提高.不難想象,正是資訊的迅速發(fā)展使得人們從過去繁復(fù)的手工勞作中得以解脫
2、,從而使這種服務(wù)在現(xiàn)在才可能迅速普及。同時(shí),編寫一套完整的工資管理系統(tǒng)的任務(wù)就顯得尤為重要。 開發(fā)設(shè)計(jì)思想本系統(tǒng)開發(fā)設(shè)計(jì)思想: 對公司軟硬件調(diào)查,從實(shí)際環(huán)境出發(fā),以便充分利用公司現(xiàn)在資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果。 了解公司的需要及相關(guān)方面的規(guī)定,根據(jù)需要做出符合要求的軟件,并達(dá)到操作過程中的直觀、方便、實(shí)用、安全等要求。 將系統(tǒng)按模塊分工到人,提高效率,且模塊化設(shè)計(jì)便于系統(tǒng)功能的各種組合和修改及日后的維護(hù) 系統(tǒng)應(yīng)具備數(shù)據(jù)庫維護(hù)功能,及時(shí)根據(jù)用戶需求進(jìn)行數(shù)據(jù)的添加、刪除、修改、等操作。1.3 開發(fā)和運(yùn)行環(huán)境選擇開發(fā)工具:SQL2000, java 語言。運(yùn)行環(huán)境: Windows XP,Wi
3、ndows 2000或VISTA 操作系統(tǒng)。 1.4 系統(tǒng)功能分析本系統(tǒng)主要用于員工基本信息的管理,對員工以及其他信息的添加、修改、刪除、查詢等基本操作。對于數(shù)據(jù)庫的保護(hù)有數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)的功能。針對這些要求,設(shè)計(jì)本月工資信息管理系統(tǒng)。該系統(tǒng)主要包括職工信息、職工考勤信息、職工津貼信息。 1) 職工信息管理系統(tǒng)功能為:財(cái)務(wù)部門相關(guān)人員錄入、修改、刪除、查詢員工個(gè)人信息;員工本人能通過用戶名和密碼查詢自己的信息以及修改自己的密碼;2) 職工工資管理系統(tǒng)功能為:根據(jù)工資生成公式,按照員工的考勤情況及各種表現(xiàn)按月生成相應(yīng)的工資;財(cái)務(wù)部門相關(guān)人員能錄入、修改、刪除、查詢每個(gè)月每個(gè)員工的工資信息以及工
4、資匯總;員工本人能查詢自己的工資信息以及工資匯總;3) 職工津貼管理系統(tǒng)功能為:財(cái)務(wù)部門相關(guān)人員錄入、修改、刪除、查詢職工津貼信息;職工本人能查詢自己的津貼;4) 職工考勤管理系統(tǒng)功能為:后勤管理人員錄入、修改、刪除、查詢職工考勤信息;職工本人能查詢自己的考勤情況。采用模塊化設(shè)計(jì)思想,可以大大提高設(shè)計(jì)的效率,并且可以最大限度地減少不必要的錯(cuò)誤。其系統(tǒng)結(jié)構(gòu)框圖如圖所示: 圖1.1 系統(tǒng)功能模塊圖2. 數(shù)據(jù)庫設(shè)計(jì) 2.1 數(shù)據(jù)庫需求分析根據(jù)工資管理要求及用戶需求調(diào)查分析,得到以下數(shù)據(jù)流圖 圖2.1第一層數(shù)據(jù)流圖 圖2.2職工信息的載入進(jìn)入基本界面 圖2.3工資的信息載入 圖2.4考勤的信息載入-
5、5 -圖2.5津貼的信息載入 圖2.6信息查詢及管理的流程圖- 6 -有了數(shù)據(jù)流圖,用E-R 圖來說明工資信息管理系統(tǒng)的數(shù)據(jù)庫概念模式,如圖2-2所示 圖2.7 實(shí)體之間關(guān)系E-R 圖- 7 -將以上E-R 轉(zhuǎn)換成如下關(guān)系模式員工(職工號(hào),姓名,工齡,部門崗位,電話號(hào)碼,密碼)工資(職工號(hào),個(gè)人所得稅,基本工資,醫(yī)療保險(xiǎn),缺勤扣除) 考勤(職工號(hào),缺勤天數(shù),缺勤類別,時(shí)間)津貼(職工號(hào),年終獎(jiǎng)金,加班獎(jiǎng)金,其他獎(jiǎng)金)其中,標(biāo)有下劃線的字段表示為該數(shù)據(jù)表的主碼,即主關(guān)鍵字。在上面的實(shí)體以及實(shí)體之間關(guān)系的基礎(chǔ)上,形成數(shù)據(jù)庫中的表格以及各個(gè)表格之間的關(guān)系。工資信息管理系統(tǒng)數(shù)據(jù)庫中各個(gè)表格的設(shè)計(jì)結(jié)果如
6、下面的幾個(gè)表格所示。每個(gè)表格表示在數(shù)據(jù)庫中的一個(gè)表。表一:員工信息表: 表二:工資表: 表三:員工考勤信息表- 8 -表四:津貼信息表 3功能模塊詳細(xì)設(shè)計(jì)3.1主界面及工資基本信息界面的設(shè)計(jì)圖2.8 歡迎畫面 - 9 -圖2.9登錄界面 圖3.0 系統(tǒng)主界面 圖3.1 考勤信息錄入, 修改, 刪除, 查詢界面3.2功能描述1主界面通過菜單將各個(gè)模塊連接起來2.工資基本信息模塊工資基本信息的添加、修改和刪除等基本操作3.3主要源代碼class zzlc implements ActionListenerJFrame frame=new JFrame("歡迎進(jìn)入ZZLC 工資管理系統(tǒng)&q
7、uot;JLabel label=new JLabel("制作人:陳松 張淑靜 張虎 黎成",JLabel.CENTER;JButton button1=new JButton("進(jìn)入系統(tǒng)"JButton button2=new JButton("退出系統(tǒng)" ImageIcon im=new ImageIcon("1.jpg"JLabel a1=new JLabel(im;void Create(JPanel pcontentPane=(JPanelframe.getContentPane(;JPanel pcon
8、tentPane1=new JPanel(;pcontentPane.add(label;pcontentPane.setLayout(new FlowLayout(;pcontentPane.add(button1;pcontentPane.add(button2;pcontentPane.add(new Label(" "pcontentPane.add(a1;pcontentPane.setBackground(Color.pink;pcontentPane.setVisible(true;button1.addActionListener(this;button2.
9、addActionListener(this;frame.pack(;frame.setBounds(200,100,550,600;frame.setVisible(true;public static void main(String argszzlc dome=new zzlc(;dome.Create(; public void actionPerformed(ActionEvent eif(button1.equals(e.getSource(DL dl=new DL(;dl.create(; if(button2.equals(e.getSource(/退出System.exit(
10、0; class DL implements ActionListenerJFrame frame=new JFrame("職工/管理員登陸"JLabel label1=new JLabel("用戶名"JLabel label2=new JLabel("密碼"JButton logonButton1=new JButton("管理員登錄"JButton logonButton2=new JButton("職工登錄"JButton cancelButton=new JButton("退出
11、"JTextField t2=new JTextField(0; ImageIcon im=new ImageIcon("2.jpg"JLabel a2=new JLabel(im;JTextField username=new JTextField(9;JPasswordField password=new JPasswordField(9;void create(JPanel p=(JPanelframe.getContentPane(;JPanel p1=new JPanel(;p.setLayout(new FlowLayout(;p.add(label1
12、;p.setSize(5,5;p.setLocation(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(cancel
13、Button;p.add(new JLabel(" "p.add(a2;p.add(t1;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,100,750,
14、550;frame.setVisible(true;public void actionPerformed(ActionEvent eif(logonButton1.equals(e.getSource(&&(username.getText(.equals("123"=true&&(password.getText(.equals("123"=trueGZGLZJM gz=new GZGLZJM(;gz.create(; elseJOptionPane.showMessageDialog(null,"對不起,
15、你輸入的密碼錯(cuò)誤!"if(logonButton2.equals(e.getSource(&&(username.getText(.equals(t1.getText(=true&&(password.getText(.equals(t2.getText(=trueXK xk=new XK(;xk.create(;Connection con;Statement sql;ResultSet rs;Vector vector=new Vector(;try catch (ClassNotFoundException e1 try con = Driver
16、Manager.getConnection("jdbc:odbc:123", "", "" sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY;sql.executeQuery("SELECT Gno,mm FROM Y WHERE Gno="+t1.getText( +"AND mm="+t2.getText(;if(cancelButton.equals(e.getSourc
17、e(System.exit(0; class GZGLZJM extends JFrame implements ActionListenerJFrame f=new JFrame("工資管理系統(tǒng)"JButton b1=new JButton("津貼管理"JButton b2=new JButton("總查詢"JButton b3=new JButton("工資管理"JButton b4=new JButton("后勤管理"JButton b6=new JButton("員工個(gè)人信息管
18、理"JButton b5=new JButton("返回"ImageIcon im=new ImageIcon("3.jpg"JLabel a3=new JLabel(im;void create(JPanel p=(JPanelf.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
19、(new JLabel(" "p.add(b4;p.add(new JLabel(" "p.add(b2;p.add(new JLabel(" "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.ad
20、dActionListener(this;f.setBounds(200,100,800,600;f.setVisible(true;public void actionPerformed(ActionEvent eif(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(/員工個(gè)人信息管理YGGL yg=new YGGL(;yg.create(; if(b2.equals(e.g
21、etSource(/查詢XK xk=new XK(;xk.create(; if(b4.equals(e.getSource(/后勤管理KQGL 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("
22、;修改"JButton b3=new JButton("刪除"JButton b4=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 JB
23、utton("查詢單人考勤"String cloum="職工號(hào)"," 缺勤天數(shù)"," 缺勤類別"," 缺勤時(shí)間"Object row=new Object504; JTable table=new JTable(row,cloum;JScrollPane scrollpane=new JScrollPane(table;JSplitPane splitpane=new JSplitPane(JSplitPane.VERTICAL_SPLIT;void create(JPanel p=(JPane
24、lf.getContentPane(;p.setLayout(new 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(&
25、quot;"p.add(new JLabel("職工號(hào)"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("缺勤時(shí)間"p.add(tf4;p.add(new JLabel(" 在此處輸入職工號(hào)點(diǎn)擊查詢刪除"p.add(tf5;splitpane.add(p1,splitpane.TOP;spli
26、tpane.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;/可以調(diào)整界面
27、大小f.setVisible(true;public void actionPerformed(ActionEvent eif(b1.equals(e.getSource( /添加Connection con;Statement sql;ResultSet rs;try catch (ClassNotFoundException e1 try con = DriverManager.getConnection("jdbc:odbc:123", "", ""sql = con.createStatement(; String inser
28、tStr = "INSERT INTO K VALUES " + "(" + "'" + tf1.getText( + "'" + "," + tf2.getText(+"," + "'" +tf3.getText(+"'" + ","+tf4.getText(+""sql.executeUpdate(insertStr;con.close(; catch (SQL
29、Exception e1 if(b2.equals(e.getSource(/修改Connection con;Statement sql;ResultSet rs;try catch (ClassNotFoundException e1 try con = DriverManager.getConnection("jdbc:odbc:123", "", ""sql = con.createStatement(; sql.executeUpdate("UPDATE K SET ts="+tf2.getText(+&
30、quot;WHERE Kno="+tf1.getText(+""sql.executeUpdate("UPDATE K SET lb="+tf3.getText(+"WHEREKno="+tf1.getText(+""sql.executeUpdate("UPDATE K SET sj="+tf4.getText(+"WHERE Kno="+tf1.getText(+""con.close(; catch (SQLException e1 if(
31、b3.equals(e.getSource(/刪除Connection con;Statement sql;ResultSet rs;try catch (ClassNotFoundException e1 try con = DriverManager.getConnection("jdbc:odbc:123", "", "" sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY;sql.executeUpdate(&
32、quot;DELETE FROM K WHERE Kno="+tf5.getText(; con.close(; catch (SQLException e1 if(b4.equals(e.getSource(/查詢?nèi)緾onnection con;Statement sql;ResultSet rs;Vector vector=new Vector(;try catch (ClassNotFoundException e1 try con = DriverManager.getConnection("jdbc:odbc:123", "sa",
33、 "" sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY;if(b4.equals(e.getSource(for(int i=0;i<50;i+for(int j=0;j<4;j+table.setValueAt("",i,j ;rs = sql.executeQuery("SELECT * FROM K ORDER BY Kno DESC"int k=-1;while(rs.next( +k;Stri
34、ng Kno = rs.getString(1;String ts = rs.getString(2;String lb = rs.getString(3;String sj = rs.getString(4;table.setValueAt(Kno,k,0;table.setValueAt(ts,k,1;table.setValueAt(lb,k,2;table.setValueAt(sj,k,3;catch (SQLException e1 if(b6.equals(e.getSource( /查詢關(guān)鍵字Connection con;Statement sql;ResultSet rs;Vector vector=new Vector(;try catch (ClassNotFoundException e1 try con = DriverManager.getConnection("jdbc:odbc:123", "sa", "" sql=con.createStatement(Res
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 興寧租房合同范例
- 人才公寓咨詢合同范例
- 供地合同解除合同范例
- 內(nèi)部升職合同范例
- 五菱銷售合同范例
- 傳媒公司意向合同范例
- 公產(chǎn)房置換合同范例
- 2025年引導(dǎo)信標(biāo)機(jī)合作協(xié)議書
- 2025年海洋石油修井機(jī)合作協(xié)議書
- 中考化學(xué)二輪復(fù)習(xí) 科學(xué)探究題特訓(xùn)專題5 反應(yīng)后所得物質(zhì)的成分(含解析)
- 2024-2025年第二學(xué)期一年級語文教學(xué)進(jìn)度表
- 企業(yè)員工職務(wù)犯罪預(yù)防
- 2025年貴州省高職單招醫(yī)學(xué)類職業(yè)技能測試題庫及答案(備考刷題)
- 5《水污染》教學(xué)設(shè)計(jì)-2023-2024學(xué)年科學(xué)六年級下冊冀人版
- 2025年安徽電氣工程職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 幼兒園開學(xué)教職工安全教育培訓(xùn)
- 2025-2030年中國發(fā)酵豆粕行業(yè)運(yùn)行態(tài)勢及投資前景規(guī)劃研究報(bào)告
- 酒店建設(shè)項(xiàng)目施工總承包合同
- 2025年政府采購代理機(jī)構(gòu)考試題庫及答案
- 第14課《第一次世界大戰(zhàn)》中職高一下學(xué)期高教版(2023)世界歷史全一冊
- 2024年司法考試完整真題及答案
評論
0/150
提交評論