設備管理_實驗室設備管理系統(tǒng)培訓課程_第1頁
設備管理_實驗室設備管理系統(tǒng)培訓課程_第2頁
設備管理_實驗室設備管理系統(tǒng)培訓課程_第3頁
設備管理_實驗室設備管理系統(tǒng)培訓課程_第4頁
設備管理_實驗室設備管理系統(tǒng)培訓課程_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗項目:實驗室設備管理系統(tǒng)一、 項目管理:階段時間及實驗任務參與人員產生文檔項目管理2009.10.27 實驗一確定課題,組織組員,合理分工。分工明細及項目進程表需求分析2009.10.27 實驗一確定軟件的功能和需求、性能需求和運行環(huán)境約束,編制軟件需求規(guī)格說明、軟件系統(tǒng)的確認測試準則需求規(guī)格說明書確認測試準則概要設計2009.10.27 驗一建立軟件系統(tǒng)的總體結構和模塊間的關系,定義各功能模塊的接口,涉及全局數據庫,規(guī)定涉及約束,制定組裝測試計劃。概要設計說明書組裝測試計劃數據庫設計2009.10.28實驗二根據概要設計對本軟件所必須的數據庫進行分析及設計數據庫設計說明書詳細設計2009.10.28實驗二對概要設計產生的功能模塊逐步細化,形成若干個可編程的程序模塊模塊測試方案編碼2009.10.282009.10.29實驗三根據詳細設計文檔將詳細設計轉化為所要求的編程語言或數據庫語言的程序,并對這些程序進行調試和程序單元測試,驗證程序模塊與詳細設計文檔的一致性源程序清單測試單元測試2009.10.282009.10.29實驗三采用白盒測試技術進行如下測試:1. 模塊接口測試;2. 模塊局部數據結構測試;3. 模塊邊界條件測試;4. 模塊中所有獨立執(zhí)行通路測試;5. 模塊的各條錯誤處理通路測試。單元測試報告綜合測試2009.10.29實驗三發(fā)現與接口有關的各種錯誤綜合測試報告確認測試2009.10.29實驗三檢查軟件是否滿足軟件需求說明書中的確認標準確認測試報告項目實施2009.10.292009.10.30實驗四完善程序流圖書寫軟件使用說明書和用戶手冊項目開發(fā)總結報告最終用戶手冊二、軟件需求分析1 軟件系統(tǒng)需求描述:實驗室設備管理系統(tǒng)是利用Eclipse作為開發(fā)工具、SQL Server2000作為數據庫的系統(tǒng)。要求實現如下功能:所有工作由專門人員負責完成,其他人不得任意使用;對于已徹底損壞的作報廢處理,同時詳細記錄有關信息;對于有嚴重問題(故障)的要即使修理,并記錄修理日期、設備名、修理廠家、修理費、責任人等;對于急需但又缺少的設備需以“申請表”的形式送交上級領導請求批準購買。新設備購入后要立即進行設備登記(包括類別、設備名、型號、規(guī)格、單價、數量、購置日期、生產廠家、購買人等),同時更新申請表的內容;隨時對現有設備及其修理、報廢情況進行統(tǒng)計、查詢,要求能夠按類別和時間段(某日期之前)查詢。本管理系統(tǒng)通過計算機對實驗設備進行自動管理,設備管理員可以直接在計算機實現實驗設備的信息管理,并在一定程度上實現自動化,改善了工作運行效率和效果。2 軟件系統(tǒng)數據流圖1) 頂層數據流圖2) 0層數據流圖3) 一層數據流圖4)總數據流圖3軟件系統(tǒng)數據字典:1、 數據流條目 登陸信息輸入:設備管理員輸出:身份驗證1描述:登陸信息=用戶名+密碼+登陸權限 查詢信息輸入:合法人員對設備的查詢操作輸出:設備信息表描述:查詢信息=設備名/型號/類別/購置日期 維修信息輸入:所需維修設備的信息輸出:確定維修設備的記錄描述:維修信息=設備名+修理日期+修理廠家+修理費+負責人 新設備輸入:購買設備的信息輸出:確定購買的新設備的記錄描述:新設備=類別+設備名+型號+規(guī)格+單價+數量等 報廢設備輸入:所需報廢的設備的信息輸出:報廢的設備記錄描述:報廢設備=類別+設備名+型號等 審核信息輸入:審核3輸出:上級領導描述:審核信息=報廢設備信息/新設備購買記錄2、 加工條目身份驗證1,統(tǒng)計查詢2.1,維修2.2,購買2.3,報廢2.4,生產報表3.1,審核3.23、 文件條目 登陸表輸入:身份驗證1輸出:身份驗證1數據結構:用戶名+密碼+登陸權限 設備基本信息表輸入:統(tǒng)計查詢2.1數據結構:類別+設備名+型號+規(guī)格等 維修記錄表輸入:統(tǒng)計查詢2.1,維修2.2輸出:統(tǒng)計查詢2.1數據結構:設備名+修理日期+修理廠家+修理費+責任人等 新設備表輸入:統(tǒng)計查詢2.1,購買2.2輸出:統(tǒng)計查詢2.1數據結構:類別+設備名+型號+規(guī)格+單價+數量+生產廠家+購買人等 報廢記錄表輸入:報廢2.4,統(tǒng)計查詢2.1,生產報表3.1輸出:統(tǒng)計查詢2.1,生產報表3.1數據結構:類別+設備名+型號等 申請表輸入:統(tǒng)計查詢2.1,生產報表3.1輸出:統(tǒng)計查詢2.1,生產報表3.1,購買2.3數據結構:設備名+型號+規(guī)格+數量+負責人三:軟件設計1實驗室設備管理系統(tǒng)模塊結構圖實驗室設備管理系統(tǒng)上級領導操作設備管理員操作系統(tǒng)功能操作審核管理設備報廢管理設備購買管理設備維修管理設備查詢管理系統(tǒng)維護管理用戶登陸管理2界面設計3實驗室設備管理系統(tǒng)數據設計4管理系統(tǒng)其中的3個模塊的詳細設計 上級領導操作模塊設備管理員操作模塊 統(tǒng)功能操作模塊5數據庫設計 登陸表列名數據類型長度允許空用戶名varchar50not null密碼varchar50not null登陸權限char10not null 設備基本信息表列名數據類型長度允許空設備型號varchar10not null設備名varchar20not null規(guī)格varchar10not null單價float8null購買日期datetime8null生產廠家varchar20null購買人varchar10null數量Int4null 維修記錄表列名數據類型長度允許空列名設備型號varchar10not null設備名varchar20not null維修日期datetime8null維修廠家varchar30null維修費用float8null責任人varchar10null 報廢記錄表列名數據類型長度允許空設備型號varchar10not null設備名varchar20not null報廢日期datetime8null責任人varchar10null 申請表列名數據類型長度允許空設備名varchar10not null日期Datatime8not null規(guī)格varchar10not null數量int4null申請人Varchar10Null四、編碼與單元測試1、各模塊示意圖2、用戶登錄界面:package shebeiguanli;import java.applet.*;import java.sql.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import com.borland.jbcl.layout.*;/* * Title:實驗室設備管理系統(tǒng)登錄界面 * author gengdexin * version 1.0 */public class Log extends JFrame /* * 構建顯示對象 */ JPanel contentPane; XYLayout xYLayout1 = new XYLayout(); JPasswordField password = new JPasswordField(); JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JLabel jLabel4 = new JLabel(); JTextField jTextField1 = new JTextField(); JLabel jLabel3 = new JLabel(); JLabel jLabel5 = new JLabel(); JLabel jLabel6 = new JLabel(); public Log() enableEvents(AWTEvent.WINDOW_EVENT_MASK); try jbInit(); catch(Exception e) e.printStackTrace(); private void jbInit() throws Exception contentPane = (JPanel) this.getContentPane(); password.addActionListener(new Log_password_actionAdapter(this); contentPane.setLayout(xYLayout1); this.setSize(new Dimension(500, 400); this.setTitle(實驗室設備管理系統(tǒng)); jLabel1.setFont(new java.awt.Font(SansSerif, 0, 25); jLabel1.setForeground(Color.red); jLabel1.setText(歡迎進入實驗室設備管理系統(tǒng)); jLabel2.setFont(new java.awt.Font(SansSerif, 0, 20); jLabel2.setText(姓名); jTextField1.setText(); jLabel3.setFont(new java.awt.Font(SansSerif, 0, 20); jLabel3.setText(密碼); jLabel4.setFont(new java.awt.Font(SansSerif, 0, 20); jLabel4.setText(開發(fā)人員:耿德新 藺明亮 毛冬冬); jLabel5.setFont(new java.awt.Font(SansSerif, 0, 20); jLabel5.setText(李章華 呂文強 顧海駒); jLabel6.setFont(new java.awt.Font(SansSerif, 0, 15); jLabel6.setForeground(Color.red); jLabel6.setText(交流:); contentPane.add(jLabel1, new XYConstraints(80, 10, 350, 34); contentPane.add(jLabel2, new XYConstraints(92, 142, -1, -1); contentPane.add(jTextField1, new XYConstraints(130, 145, 91, 26); contentPane.add(jLabel3, new XYConstraints(222, 144, -1, -1); contentPane.add(password, new XYConstraints(263, 144, 105, 28); contentPane.add(jLabel4, new XYConstraints(50, 250, -1, -1); contentPane.add(jLabel5, new XYConstraints(150, 280, -1, -1); contentPane.add(jLabel6, new XYConstraints(100, 340, -1, -1); protected void processWindowEvent(WindowEvent e) cessWindowEvent(e); if (e.getID() = WindowEvent.WINDOW_CLOSING) System.exit(0); void password_actionPerformed(ActionEvent e) try Frame1 Frame= new Frame1(); Frame.show(); validID(); catch (Exception ew) System.out.println(ew.getMessage(); this.setVisible(false); /連接sql void validID() try String str1, str2; str1 = jTextField1.getText(); str2 = password.getText(); Connection con = null; String url = jdbc:odbc:shebeiguanli; String user = ; String password = ;Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);con = DriverManager.getConnection(url,user,password);Statement stmt =con.createStatement(); /執(zhí)行動態(tài)的sql語句 PreparedStatement pstmt = con.prepareStatement( /依據讀者的名字查詢讀者的信息的sql語句 use shebeiguanli select * from 登錄 where username=?); /將讀者的名字添加到具體的sql語句中 pstmt.setString(1, str1); /使用ResultSet中的方法executeQuery()來完成sql語句的執(zhí)行 ResultSet res = pstmt.executeQuery(); /使用getString()來獲取sql查詢的結果 if (!res.next() | res.getString(password) = null) JOptionPane.showMessageDialog(this, 查無此人, 錯誤, JOptionPane.ERROR_MESSAGE); else / if ( !res.getString(2).equals(str2) if ( !res.getString(2).equals(str2) JOptionPane.showMessageDialog(this, 密碼錯誤, 錯誤, JOptionPane.ERROR_MESSAGE); else System.out.println(正確); do System.out.println(res.getString(1)+: + res.getString(2); while (res.next(); loader(); pstmt.close(); con.close(); catch (ClassNotFoundException e) System.out.println(e.getMessage(); catch (SQLException edd) edd.printStackTrace() ; System.out.println(edd.getMessage(); void loader() try Frame9 Frame= new Frame9(); Frame.show(); catch (Exception ew) System.out.println(ew.getMessage(); class Log_password_actionAdapter implements java.awt.event.ActionListener Log adaptee; Log_password_actionAdapter(Log adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.password_actionPerformed(e); 3、主界面:package shebeiguanli;import java.awt.*;import java.awt.event.*;import javax.swing.*;import com.borland.jbcl.layout.*;/系統(tǒng)主界面public class Frame9 extends JFrame JPanel contentPane; JMenuBar jMenuBar1 = new JMenuBar(); JMenu 設備查詢 = new JMenu(); JMenuItem 設備信息 = new JMenuItem(); JMenu 設備申請 = new JMenu(); JMenuItem 申請登記 = new JMenuItem(); XYLayout xYLayout1 = new XYLayout(); JLabel jLabel1 = new JLabel(); JMenu jMenu2 = new JMenu(); JMenuItem jMenuItem7 = new JMenuItem(); JMenu jMenu3 = new JMenu(); JMenuItem jMenuItem8 = new JMenuItem(); JMenuItem jMenuItem1 = new JMenuItem(); JMenuItem jMenuItem3 = new JMenuItem(); JLabel jLabel2 = new JLabel(); JLabel jLabel3 = new JLabel(); JLabel jLabel4 = new JLabel(); JMenu jMenu5 = new JMenu(); JMenuItem jMenuItem2 = new JMenuItem(); public Frame9() enableEvents(AWTEvent.WINDOW_EVENT_MASK); try jbInit(); catch(Exception e) e.printStackTrace(); private void jbInit() throws Exception contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(xYLayout1); this.setSize(new Dimension(600, 500); this.setTitle(實驗室管理系統(tǒng)); 設備查詢.setFont(new java.awt.Font(SansSerif, 0, 20); 設備查詢.setText(設備查詢); 設備信息.setFont(new java.awt.Font(SansSerif, 0, 20); 設備信息.setText(設備信息查詢); 設備信息.addActionListener(new Frame9_設備信息_ActionAdapter(this); 設備申請.setFont(new java.awt.Font(SansSerif, 0, 20); 設備申請.setText(設備申請); 設備申請.addActionListener(new Frame9_設備申請_actionAdapter(this); 申請登記.setFont(new java.awt.Font(SansSerif, 0, 20); 申請登記.setText(申請登記); 申請登記.addActionListener(new Frame9_申請登記_ActionAdapter(this); jLabel1.setFont(new java.awt.Font(SansSerif, 0, 40); jLabel1.setForeground(new Color(210, 0, 0); jLabel1.setHorizontalAlignment(SwingConstants.LEADING); jLabel1.setText(實驗室管理系統(tǒng)); contentPane.setFont(new java.awt.Font(Dialog, 0, 11); contentPane.setForeground(Color.darkGray); jMenu2.setFont(new java.awt.Font(SansSerif, 0, 20); jMenu2.setFocusPainted(false); jMenu2.setText(維修記錄); jMenuItem7.setFont(new java.awt.Font(SansSerif, 0, 20); jMenuItem7.setText(維修記錄登記); jMenuItem7.addActionListener(new Frame9_jMenuItem7_actionAdapter(this); jMenu3.setFont(new java.awt.Font(SansSerif, 0, 20); jMenu3.setText(報廢記錄); jMenuItem8.setFont(new java.awt.Font(SansSerif, 0, 20); jMenuItem8.setText(設備報廢登記); jMenuItem8.addActionListener(new Frame9_jMenuItem8_actionAdapter(this); 設備查詢.addSeparator(); jMenuItem1.setFont(new java.awt.Font(SansSerif, 0, 20); jMenuItem1.setText(維修記錄查詢); jMenuItem1.addActionListener(new Frame9_jMenuItem1_actionAdapter(this); jMenuItem3.setFont(new java.awt.Font(SansSerif, 0, 20); jMenuItem3.setText(設備報廢查詢); jMenuItem3.addActionListener(new Frame9_jMenuItem3_actionAdapter(this); jLabel2.setFont(new java.awt.Font(SansSerif, 0, 40); jLabel2.setForeground(Color.red); jLabel2.setText(歡迎進入); jLabel3.setFont(new java.awt.Font(SansSerif, 0, 40); jLabel3.setForeground(Color.red); jLabel3.setText(實驗室設備管理系統(tǒng)); jLabel4.setFont(new java.awt.Font(SansSerif, 0, 15); jLabel4.setForeground(Color.red); jLabel4.setText(交流:); jMenu5.setFont(new java.awt.Font(SansSerif, 0, 20); jMenu5.setText(退出系統(tǒng)); jMenuItem2.setFont(new java.awt.Font(SansSerif, 0, 20); jMenuItem2.setText(退出); jMenuItem2.addActionListener(new Frame9_jMenuItem2_actionAdapter(this); jMenuItem2.addItemListener(new Frame9_jMenuItem2_itemAdapter(this); 設備查詢.add(設備信息); 設備查詢.addSeparator(); 設備申請.addSeparator(); 設備申請.add(申請登記); 設備申請.addSeparator(); jMenuBar1.add(設備查詢); jMenuBar1.add(設備申請); jMenuBar1.add(jMenu2); jMenuBar1.add(jMenu3); jMenuBar1.add(jMenu5); jMenu2.addSeparator(); jMenu2.add(jMenuItem7); jMenu2.addSeparator(); jMenu2.add(jMenuItem1); jMenu2.addSeparator(); jMenu3.addSeparator(); jMenu3.add(jMenuItem8); jMenu3.addSeparator(); jMenu3.add(jMenuItem3); jMenu3.addSeparator(); contentPane.add(jLabel1, new XYConstraints(175, 1, -1, -1); contentPane.add(jLabel3, new XYConstraints(150, 200, -1, -1); contentPane.add(jLabel2, new XYConstraints(50, 100, 163, 45); contentPane.add(jLabel4, new XYConstraints(180, 350, -1,-1); jMenu5.addSeparator(); jMenu5.add(jMenuItem2); jMenu5.addSeparator(); this.setJMenuBar(jMenuBar1); public void 設備信息_actionPerformed(ActionEvent e) try Frame2 Frame= new Frame2(); Frame.show(); catch (Exception ew) System.out.println(ew.getMessage(); public void 申請登記_actionPerformed(ActionEvent e) try Frame7 Frame= new Frame7(); Frame.show(); catch (Exception ew) System.out.println(ew.getMessage(); protected void processWindowEvent(WindowEvent e) cessWindowEvent(e); if (e.getID() = WindowEvent.WINDOW_CLOSING) 設備信息_actionPerformed(null); void shebei_actionPerformed(ActionEvent e) try catch (Exception ew) System.out.println(ew.getMessage(); void jMenuItem1_actionPerformed(ActionEvent e) try Frame4 Frame= new Frame4(); Frame.show(); catch (Exception ew) System.out.println(ew.getMessage(); void jMenuItem3_actionPerformed(ActionEvent e) try Frame6 Frame= new Frame6(); Frame.show(); catch (Exception ew) System.out.println(ew.getMessage(); void jMenuItem4_actionPerformed(ActionEvent e) try Frame3 Frame= new Frame3(); Frame.show(); catch (Exception ew) System.out.println(ew.getMessage(); void jMenuItem5_actionPerformed(ActionEvent e) try Frame6 Frame= new Frame6(); Frame.show(); catch (Exception ew) System.out.println(ew.getMessage(); void jMenuItem6_actionPerformed(ActionEvent e) try retur Frame= new retur(); Frame.show(); catch (Exception ew) System.out.println(ew.getMessage(); void jMenuItem7_actionPerformed(ActionEvent e) try Frame3 Frame= new Frame3(); Frame.show(); catch (Exception ew) System.out.println(ew.getMessage(); void jMenuItem8_actionPerformed(ActionEvent e) try Frame5 Frame= new Frame5(); Frame.show(); catch (Exception ew) System.out.println(ew.getMessage(); void jMenuItem2_itemStateChanged(ItemEvent e) System.exit(0); void jMenuItem2_actionPerformed(ActionEvent e) System.exit(0); void 設備申請_actionPerformed(ActionEvent e) class Frame9_設備信息_ActionAdapter implements ActionListener Frame9 adaptee; Frame9_設備信息_ActionAdapter(Frame9 adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.設備信息_actionPerformed(e); class Frame9_申請登記_ActionAdapter implements ActionListener Frame9 adaptee; Frame9_申請登記_ActionAdapter(Frame9 adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.申請登記_actionPerformed(e); class Frame9_jMenuItem5_actionAdapter implements java.awt.event.ActionListener Frame9 adaptee; Frame9_jMenuItem5_actionAdapter(Frame9 adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.jMenuItem5_actionPerformed(e); class Frame9_jMenuItem7_actionAdapter implements java.awt.event.ActionListener Frame9 adaptee; Frame9_jMenuItem7_actionAdapter(Frame9 adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.jMenuItem7_actionPerformed(e); class Frame9_jMenuItem8_actionAdapter implements java.awt.event.ActionListener Frame9 adaptee; Frame9_jMenuItem8_actionAdapter(Frame9 adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.jMenuItem8_actionPerformed(e); class Frame9_jMenuItem1_actionAdapter implements java.awt.event.ActionListener Frame9 adaptee; Frame9_jMenuItem1_actionAdapter(Frame9 adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.jMenuItem1_actionPerformed(e); class Frame9_jMenuItem3_actionAdapter implements java.awt.event.ActionListener Frame9 adaptee; Frame9_jMenuItem3_actionAdapter(Frame9 adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.jMenuItem3_actionPerformed(e); class Frame9_jMenuItem2_itemAdapter implements java.awt.event.ItemListener Frame9 adaptee; Frame9_jMenuItem2_itemAdapter(Frame9 adaptee) this.adaptee = adaptee; public void itemStateChanged(ItemEvent e) adaptee.jMenuItem2_itemStateChanged(e); class Frame9_jMenuItem2_actionAdapter implements java.awt.event.ActionListener Frame9 adaptee; Frame9_jMenuItem2_actionAdapter(Frame9 adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.jMenuItem2_actio

溫馨提示

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

評論

0/150

提交評論