




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.1 前言上學(xué)到的知識用于解決實際問題,培養(yǎng)軟件工作所需要的動手能力。另一方面,結(jié)構(gòu)設(shè)計,用戶界面設(shè)計、程序設(shè)計、基本技能和技巧,以及一整套軟件工作規(guī)處,但是我們還是從中獲益不少。下面簡要介紹一下我們課題組的分工,我們這組的分工其實借鑒了 ShariLawrence Pfleeger 和 Joanne M.Atlee 合著的 SOFTWARE ENGINEERINGTheory and Practice (高等教育出版社第三版影印版)中的一些理論,這些知識可以參考此書的第 25 頁中關(guān)于“開發(fā)團隊的角色分工”一節(jié)。根據(jù)分工的細化和部分重疊原則,我們組的具體分如下:(1)項目管理 : 王培(2)
2、需求分析 : 鐘耀明、賀純(3)概要設(shè)計 : 賀純、亦嫻(4)詳細設(shè)計 : 亦嫻、王培、鐘耀明、安、華、賀純(5)程序編碼 : 王培、華(6)系統(tǒng)測試 : 華、安我的主要任務(wù)是概要設(shè)計和詳細設(shè)計.s.2需求分析2.1 任務(wù)概述證通過的用戶使用系統(tǒng)。系統(tǒng)采用ASP.NET 語言開發(fā),系統(tǒng)的數(shù)據(jù)使用SQL 數(shù)據(jù)庫進行管理。2. 功能需求分析(1)系統(tǒng)能夠維護員工的基本信息,部門、職務(wù)、職稱以及工資記錄等信息。(2)系統(tǒng)應(yīng)該能記錄員工的每一個職稱信息,并授予相應(yīng)的職稱,系統(tǒng)在計算員工工資的時候選取職稱對應(yīng)的最高職稱津貼。(3)工資表應(yīng)當(dāng)由系統(tǒng)自動生成。系統(tǒng)負責(zé)員工的工資表以及員工工資的歷史記錄及記錄
3、員工的請假信息和出差信息等意外情況。系統(tǒng)的部分權(quán)限不能下放給普通用戶以保證系統(tǒng)的安全性以及數(shù)據(jù)的正確性。2.3 外部接口需求分析系統(tǒng)人機交互界面為半屏幕大小,采用上下左右居中方式顯示,系統(tǒng)分辯率默認設(shè)置為 1280*800,實際的界面大小由具體的屏幕決定。主界面包括標(biāo)題欄,菜單欄,快捷工作區(qū),幫助信息區(qū)(默認是隱藏的)。每一個菜單對應(yīng)一個鍵盤快捷鍵區(qū)。2.4 性能需求分析.s.系統(tǒng)在主頻 1.5GHZ,存 512MB,總線頻率 667MHZ的硬件平臺上運行時,系的運行主存控制在 1024KB 1000ms空間取決于數(shù)據(jù)庫系統(tǒng)表空間的約束限制。2.5 軟件屬性需求分析系統(tǒng)必須保證所有操作結(jié)果以及
4、存儲數(shù)據(jù)的正確性,對于用戶的非法操作,于可能會產(chǎn)生錯誤的操作,應(yīng)當(dāng)能夠防。另外系統(tǒng)必須提供一定的安全保密性,供適當(dāng)?shù)拇a注釋,盡可能地采用可復(fù)用技術(shù),提高軟件的可維護性。 概要設(shè)計3.1 系統(tǒng)設(shè)計總體思想理和員工信息管理,系統(tǒng)接收的輸入項目有員工信息,部門信息,職務(wù)信息,職稱信息,請假信息,出差信息等。系統(tǒng)能夠接受用戶的請求,顯示相應(yīng)的查詢信息,增加、刪除、修改相應(yīng)的合法的信息。.s.圖 3.1.1 工資管理系統(tǒng) HIPO 圖圖3.1.1是工資管理系統(tǒng)的HIPO圖,上圖主要說明了系統(tǒng)的各個主要功能以3.3.1 工資管理系統(tǒng) ER 圖 說明:加粗部分為主鍵,加底線部分為外鍵.圖 3.3.2 實體
5、及其相關(guān)屬性圖 詳細設(shè)計4.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計4.1.1 數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計Employee員工信息表說明deptno number(6)dutyno number(6)外鍵 department(deptno)外鍵 duty(dutyno)部門編號職務(wù)編號Department-部門信息表約束說明deptnodeptnameempnumtel主鍵numberDuty-職務(wù)信息表.s.字段名dutyno說明number(6)dutyname varchar(20)not nulldefault(0),dutypaynumbercheck(dutypay=0)說數(shù)據(jù)類型明number(6)titlen
6、ame varchar2(20)default(0),check(titlepay=0)titlepaynumber(6) 組合主鍵, 外鍵number(6) employee(empno)number(4)記錄職稱授予時間monthnumber月.s.Leave-員工請假信息表字段名數(shù)據(jù)類型名稱請假編號外鍵 employee(empno) 請假員工請假天數(shù)請假年份請假月份扣除工資請假原因deductionreasonnumbervarchar(60)BusinessTravel-出差信息表說明travelnonumber(6) primary keynumber(6) 外鍵 employee
7、(empno) 員工編號traveldaystravelyeartravelmonthtravelpaynumber出差天數(shù)出差年份出差月份出差補助numbernumbernot nullnot nullReward-獎勵信息表約束字段名數(shù)據(jù)類型名稱說.s.明rewardnoprimary key外鍵 employee(empno)not null獎勵編號員工編號獎勵年份獎勵月份獎勵金額獎勵原由empnorewardyearrewardmonth numberrewardpayreasonnumbervarchar(60)說明penaltynoempnoprimary key外鍵 employ
8、ee(empno)not null罰金編號員工編號罰金年份罰金月份罰金額度罰金原由reasonvarchar(60)Salary-職工工資信息表約束說明.s.salnoempno外鍵 employee(empno)between 1 and 12numbernumbernumbernumbernumbernumberpenaltynum numbertotalpay number工資總額4.1.2 程序數(shù)據(jù)結(jié)構(gòu)設(shè)計(1)ADT DepartmentBeanD=deptNo,deptName,empNum,tel|deptNo,empNumt 和 tel均為整數(shù),deptName 為字符串:R1
9、=|deptNo 為部門號,tel 為部門R2=|deptNo 為部門編號,empNum 為部門人數(shù):setDeptNo(int no):設(shè)置部門的部門號為no.s.getDeptNo ():返回部門的部門號。setDeptName(String name):設(shè)置部門的部門名為 name.getDeptName():返回部門的部門號.setEmpNum(int num):設(shè)置部門的員工人數(shù)為 num.getEmpNum():返回部門的人數(shù).setTel(int telephone):設(shè)置部門的為 telephone.getTel():返回部門的。ADT DepartmentBean(2)ADT
10、 Jdbc:D=dbUrl,theUser,thePsw,c,stmt,rs|dbUrl 提供數(shù)據(jù)庫對象,theUser,thePsw 指定用戶名和密碼,c 與數(shù)據(jù)庫建立一個連接,stmt 聲明一條 SQL 語句,rs 保存執(zhí)行 SQL 語句的結(jié)果集.:R1:用戶登陸的驗證信息用戶名和密碼.R2:rs 為語句 stmt執(zhí)行的結(jié)果集.:Jdbc():加載數(shù)據(jù)庫驅(qū)動,建立數(shù)據(jù)庫連接.executeUpdate(String sql):執(zhí)行SQL 更新語句,成功返回 TRUE,失敗則返回 FALSE.executeQuery(String sql):執(zhí)行 SQL 查詢語句,返回結(jié)果集 rs.clos
11、e():關(guān)閉與數(shù)據(jù)庫的連接.ADT Jdbc4.2 模塊功能詳細設(shè)計4.2.1 部門信息刪除模塊設(shè)計(1)類圖設(shè)計.s.圖 部門信息刪除模塊類圖DepartmentDelete 類:方法名稱功能說明判斷輸入的部門號是否存在判斷輸入的部門號是否為空執(zhí)行刪除操作public class DepartmentDeletepublic DepartmentDelete().private boolean isDeptExist(int deptno)ResultSet rs;Jdbc conn=null;boolean flag = false;try conn = new Jdbc(
12、);rs = conn.executeQuery(select deptno from department);while(rs.next()if( deptno = rs.getInt(deptno)flag = true; break; catch (InstantiationException e1) e1.printStackTrace(); catch (IllegalAccessException e1) e1.printStackTrace(); catch (ClassNotFoundException e1) e1.printStackTrace(); catch (SQLE
13、xception e1) e1.printStackTrace();return flag;public boolean isDeptEmpty(int deptno)ResultSet rs;.s.Jdbc conn=null;boolean flag = false;try conn = new Jdbc();rs = conn.executeQuery(select count(*) fromemployee where deptno=+deptno);while(rs.next()if( rs.getInt(1) = 0)flag = true; break; catch (Insta
14、ntiationException e1) e1.printStackTrace(); catch (IllegalAccessException e1) e1.printStackTrace(); catch (ClassNotFoundException e1) e1.printStackTrace(); catch (SQLException e1) e1.printStackTrace();return flag;private void executeDelete() String deptnoStr = JOptionPane.showInputDialog(null,請輸入待刪除
15、部門編號!);int deptno=0;boolean flag =true;trydeptno = Integer.parseInt(deptnoStr);.s.catch(Exception e) flag=false; if( isDeptExist(deptno) = true )if( isDeptEmpty(deptno) = false )JOptionPane.showMessageDialog(null,部門中有員工存在,無法刪除!);elseJdbc conn = null;int res=0;try conn = new Jdbc();PreparedStatement
16、pstmt =conn.c.prepareStatement(delete from department where deptno=?);pstmt.setInt(1, deptno);res = pstmt.executeUpdate();if( res !=0 )JOptionPane.showMessageDialog(null, 成功刪除部門+deptno);elseJOptionPane.showMessageDialog(null, 刪除失敗); catch (InstantiationException e) e.printStackTrace(); catch (Illega
17、lAccessException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();.s.elseif(flag) JOptionPane.showMessageDialog(null, 您輸入的部門號不存在!); /executeDelete4.2.2 部門信息增加模塊設(shè)計(1)類圖設(shè)計根據(jù)系統(tǒng)的需求,我們需要使得系統(tǒng)能夠通過圖形化的界面來增添一個部門,并將輸入的部門信息長久得保存在數(shù)據(jù)庫文件中,為此我
18、們需要一個從界面類到與數(shù)據(jù)庫連接的底層類的一系列類的組合來實現(xiàn)這樣的需要. 圖所示的類圖就是一個增加新員工的實現(xiàn)過程,DepartmentAdd 類是一個繼承自javax.swing.JFrame 類的界面類,它提供了一個供錄入員工信息的操作界面,所有錄入的信息,則通過 DepartmentBean類生成一個實例對象來保存,departmentAdd 類的構(gòu)造函數(shù)負責(zé)調(diào)用 createAddInterface()私有方法來構(gòu)造出界面,以及初始化各控件中的數(shù)值,如 generateDeptNo()是生成部門編號,部編號并不能由用戶或者管理員確定,而是由系統(tǒng)查詢數(shù)據(jù)庫后,遵循唯一性原
19、則生成出來的編號.這樣做不僅避免用戶管理編號的繁瑣性,而且也增強了系統(tǒng)的安全性.s.圖 部門信息的增加功能模塊類圖說明: 當(dāng)點擊各菜單項時,會彈出相應(yīng)的操作界面。Load Department 方法是用來加載 Departmentmenu 類 。DepartmentAdd 類:deptNoTextdeptNameTextdeptTelText取消按鈕DepartmentBean參數(shù)傳遞是Departmentadd類的構(gòu)造函數(shù)voidvoid創(chuàng)建增加信息界面將新的信息保存到數(shù)據(jù)庫中.圖 增加部門信息界面界面說明:以上文本框都是單行文本框,可以輸入部門編號,部門名稱
20、,部門,當(dāng)系統(tǒng)監(jiān)聽到文本框中的容被確定,將會新的部門信息保存到數(shù)據(jù)庫中。(3)核心代碼public class DepartmentAdd extends JFramethis.setTitle(Add a new Department!);this.setSize(WIDTH,HEIGHT);this.setLayout(null);this.setResizable(false);vDimensionscr=Toolkit.getDefaultToolkit().getScreenSize();Dimension frm=this.getSize();this.setLocation(in
21、t)(scr.getWidth()-frm.getWidth()/2,(int)(scr.getHeight()-frm.getHeight()/2-50);createAddInterface();generateDeptNo();initDeptInfo();private void initDeptInfo() dept.setDeptName(某部門);dept.setTel(1000000);dept.setEmpNum(0);.s.private void generateDeptNo() ResultSet rs;Jdbc conn=null;int no = 102001;tr
22、y conn = new Jdbc();rs = conn.executeQuery(select deptno fromdepartment order by deptno);while(rs.next()if( no = rs.getInt(deptno) +no;elsebreak;dept.setDeptNo(no);deptNoText.setText( + no); catch (InstantiationException e1) e1.printStackTrace(); catch (IllegalAccessException e1) e1.printStackTrace(
23、); catch (ClassNotFoundException e1) e1.printStackTrace(); catch (SQLException e1) e1.printStackTrace();private void createAddInterface()Container contentPane = getContentPane();.s.JLabel label1 = new JLabel(部門編號:);JPanel panel1 = new JPanel();deptNoText = new JTextField(10);deptNoText.setEditable(f
24、alse);panel1.add(label1);panel1.add(deptNoText);JLabel label2 = new JLabel(部門名稱);JPanel panel2 = new JPanel();deptNameText = new JTextField(10);panel2.add(label2);panel2.add(deptNameText);JLabel label3 = new JLabel(部門);JPanel panel3 = new JPanel();deptTelText = new JTextField(10);panel3.add(label3);
25、panel3.add(deptTelText);confirmButton = new JButton(保存);cancelButton = new JButton(重置);JPanel panel4 = new JPanel();panel4.add(confirmButton);panel4.add(cancelButton);confirmButton.addActionListener(newConfirmAction();CancelAction();cancelButton.addActionListener(newpanel1.setSize(WIDTH,50);.s.panel
26、1.setLocation(0, 0);panel2.setSize(WIDTH,50);panel2.setLocation(0,50);panel3.setSize(WIDTH,50);panel3.setLocation(0,100);panel4.setSize(WIDTH,50);panel4.setLocation(0,150);contentPane.add(panel1);contentPane.add(panel2);contentPane.add(panel3);contentPane.add(panel4);private void storeDepartment()int rs;Jdbc
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年的苗木購銷合同范本
- 2025梨子購銷合同書范文
- 2025版權(quán)轉(zhuǎn)讓合同協(xié)議書范本
- 全民國家安全教育日十周年P(guān)T增強安全意識維護國家安全課件下載
- 2025員工勞動合同續(xù)簽申請書范文
- 2025保險公司外匯借款合同借款合同
- 2025水泥買賣合同范本水泥買賣合同樣本
- 2025標(biāo)準(zhǔn)商品交易合同范本
- 8.2《做中華傳統(tǒng)美德的踐行者》 課件 2024-2025學(xué)年統(tǒng)編版道德與法治七年級下冊
- 2025貸款合同模板
- YY-T 0954-2015 無源外科植入物-I型膠原蛋白植入劑
- 12-2017-2021年陜西中考數(shù)學(xué)真題分類匯編之統(tǒng)計與概率
- 膿毒血癥課件
- 2024年時事政治熱點題庫200道含完整答案(必刷)
- 2024年北京亦莊國際投資發(fā)展有限公司招聘筆試沖刺題(帶答案解析)
- 對方當(dāng)事人送達地址及相關(guān)信息確認書
- 屈光性白內(nèi)障手術(shù)發(fā)展
- 基于物聯(lián)網(wǎng)的智能衣柜
- 醫(yī)院政工查房
- 緩和醫(yī)療-以死觀生的生活智慧智慧樹知到期末考試答案2024年
- 拔河比賽技巧知識講座
評論
0/150
提交評論