实验室设备管理系统(软件工程试验完整版).docx

上传人:时光煮雨 文档编号:15030969 上传时间:2022-03-06 格式:DOCX 页数:54 大小:1.12MB
返回 下载 相关 举报
实验室设备管理系统(软件工程试验完整版).docx_第1页
第1页 / 共54页
实验室设备管理系统(软件工程试验完整版).docx_第2页
第2页 / 共54页
实验室设备管理系统(软件工程试验完整版).docx_第3页
第3页 / 共54页
实验室设备管理系统(软件工程试验完整版).docx_第4页
第4页 / 共54页
实验室设备管理系统(软件工程试验完整版).docx_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《实验室设备管理系统(软件工程试验完整版).docx》由会员分享,可在线阅读,更多相关《实验室设备管理系统(软件工程试验完整版).docx(54页珍藏版)》请在三一文库上搜索。

1、 实验项目:实验室设备管理系统一、 项目管理:阶段时间及实验任务参与人员产生文档项目管理2009.10.27 实验一确定课题,组织组员,合理分工。分工明细及项目进程表需求分析2009.10.27 实验一确定软件的功能和需求、性能需求和运行环境约束,编制软件需求规格说明、软件系统的确认测试准则需求规格说明书确认测试准则概要设计2009.10.27 验一建立软件系统的总体结构和模块间的关系,定义各功能模块的接口,涉及全局数据库,规定涉及约束,制定组装测试计划。概要设计说明书组装测试计划数据库设计2009.10.28实验二根据概要设计对本软件所必须的数据库进行分析及设计数据库设计说明书详细设计200

2、9.10.28实验二对概要设计产生的功能模块逐步细化,形成若干个可编程的程序模块模块测试方案编码2009.10.282009.10.29实验三根据详细设计文档将详细设计转化为所要求的编程语言或数据库语言的程序,并对这些程序进行调试和程序单元测试,验证程序模块与详细设计文档的一致性源程序清单测试单元测试2009.10.282009.10.29实验三采用白盒测试技术进行如下测试:1. 模块接口测试;2. 模块局部数据结构测试;3. 模块边界条件测试;4. 模块中所有独立执行通路测试;5. 模块的各条错误处理通路测试。单元测试报告综合测试2009.10.29实验三发现与接口有关的各种错误综合测试报告

3、确认测试2009.10.29实验三检查软件是否满足软件需求说明书中的确认标准确认测试报告项目实施2009.10.292009.10.30实验四完善程序流图书写软件使用说明书和用户手册项目开发总结报告最终用户手册二、软件需求分析1 软件系统需求描述:实验室设备管理系统是利用Eclipse作为开发工具、sqlsetver作为数据库的系统。要求实现如下功能:所有工作由专门人员负责完成,其他人不得任意使用;对于已彻底损坏的作报废处理,同时详细记录有关信息;对于有严重问题(故障)的要即使修理,并记录修理日期、设备名、修理厂家、修理费、责任人等;对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批

4、准购买。新设备购入后要立即进行设备登记(包括类别、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等),同时更新申请表的内容;随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段(某日期之前)查询。本管理系统通过计算机对实验设备进行自动管理,设备管理员可以直接在计算机实现实验设备的信息管理,并在一定程度上实现自动化,改善了工作运行效率和效果。2 软件系统数据流图1) 顶层数据流图2) 0层数据流图3) 一层数据流图4)总数据流图3软件系统数据字典:1、 数据流条目 登陆信息输入:设备管理员输出:身份验证1描述:登陆信息=用户名+密码+登陆权限 查询信息输入:合法人员

5、对设备的查询操作输出:设备信息表描述:查询信息=设备名/型号/类别/购置日期 维修信息输入:所需维修设备的信息输出:确定维修设备的记录描述:维修信息=设备名+修理日期+修理厂家+修理费+负责人 新设备输入:购买设备的信息输出:确定购买的新设备的记录描述:新设备=类别+设备名+型号+规格+单价+数量等 报废设备输入:所需报废的设备的信息输出:报废的设备记录描述:报废设备=类别+设备名+型号等 审核信息输入:审核3输出:上级领导描述:审核信息=报废设备信息/新设备购买记录2、 加工条目身份验证1,统计查询2.1,维修2.2,购买2.3,报废2.4,生产报表3.1,审核3.23、 文件条目 登陆表输

6、入:身份验证1输出:身份验证1数据结构:用户名+密码+登陆权限 设备基本信息表输入:统计查询2.1数据结构:类别+设备名+型号+规格等 维修记录表输入:统计查询2.1,维修2.2输出:统计查询2.1数据结构:设备名+修理日期+修理厂家+修理费+责任人等 新设备表输入:统计查询2.1,购买2.2输出:统计查询2.1数据结构:类别+设备名+型号+规格+单价+数量+生产厂家+购买人等 报废记录表输入:报废2.4,统计查询2.1,生产报表3.1输出:统计查询2.1,生产报表3.1数据结构:类别+设备名+型号等 申请表输入:统计查询2.1,生产报表3.1输出:统计查询2.1,生产报表3.1,购买2.3数

7、据结构:设备名+型号+规格+数量+负责人三:软件设计1实验室设备管理系统模块结构图实验室设备管理系统上级领导操作设备管理员操作系统功能操作审核管理设备报废管理设备购买管理设备维修管理设备查询管理系统维护管理用户登陆管理2界面设计3实验室设备管理系统数据设计4管理系统其中的3个模块的详细设计 上级领导操作模块设备管理员操作模块 统功能操作模块5数据库设计 登陆表列名数据类型长度允许空用户名varchar50not null密码varchar50not null登陆权限char10not null 设备基本信息表列名数据类型长度允许空设备型号varchar10not null设备名varchar2

8、0not null规格varchar10not null单价float8null购买日期datetime8null生产厂家varchar20null购买人varchar10null数量Int4null 维修记录表列名数据类型长度允许空列名设备型号varchar10not null设备名varchar20not null维修日期datetime8null维修厂家varchar30null维修费用float8null责任人varchar10null 报废记录表列名数据类型长度允许空设备型号varchar10not null设备名varchar20not null报废日期datetime8null责

9、任人varchar10null 申请表列名数据类型长度允许空设备名varchar10not null日期Datatime8not null规格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.*;/* *

10、 Title:实验室设备管理系统登录界面 * 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();

11、 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 = (

12、JPanel) this.getContentPane(); password.addActionListener(new Log_password_actionAdapter(this); contentPane.setLayout(xYLayout1); this.setSize(new Dimension(500, 400); this.setTitle(实验室设备管理系统); jLabel1.setFont(new java.awt.Font(SansSerif, 0, 25); jLabel1.setForeground(Color.red); jLabel1.setText(欢迎进

13、入实验室设备管理系统); 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(开发人员:耿德新 蔺明亮 毛冬冬); jLabel5.setFont(new java.awt

14、.Font(SansSerif, 0, 20); jLabel5.setText(李章华 吕文强 顾海驹); jLabel6.setFont(new java.awt.Font(SansSerif, 0, 15); jLabel6.setForeground(Color.red); jLabel6.setText(交流:gengdxin); contentPane.add(jLabel1, new XYConstraints(80, 10, 350, 34); contentPane.add(jLabel2, new XYConstraints(92, 142, -1, -1); conten

15、tPane.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,

16、-1, -1); contentPane.add(jLabel6, new XYConstraints(100, 340, -1, -1); protected void processWindowEvent(WindowEvent e) super.processWindowEvent(e); if (e.getID() = WindowEvent.WINDOW_CLOSING) System.exit(0); void password_actionPerformed(ActionEvent e) try Frame1 Frame= new Frame1(); Frame.show();

17、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.forNa

18、me(sun.jdbc.odbc.JdbcOdbcDriver);con = DriverManager.getConnection(url,user,password);Statement stmt =con.createStatement(); /执行动态的sql语句 PreparedStatement pstmt = con.prepareStatement( /依据读者的名字查询读者的信息的sql语句 use shebeiguanli select * from 登录 where username=?); /将读者的名字添加到具体的sql语句中 pstmt.setString(1, s

19、tr1); /使用ResultSet中的方法executeQuery()来完成sql语句的执行 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

20、).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

21、(); 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_pa

22、ssword_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.*;/系统主界面public class Frame9 extends JFram

23、e 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 = ne

24、w 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 jMenuI

25、tem2 = 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.se

26、tTitle(实验室管理系统); 设备查询.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(设备申请); 设备申请.addAct

27、ionListener(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.setHorizontalAli

28、gnment(SwingConstants.LEADING); jLabel1.setText(实验室管理系统); 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(San

29、sSerif, 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.addActionListen

30、er(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(设备

31、报废查询); 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(实验室设备管理系

32、统); jLabel4.setFont(new java.awt.Font(SansSerif, 0, 15); jLabel4.setForeground(Color.red); jLabel4.setText(交流:gengdxin); jMenu5.setFont(new java.awt.Font(SansSerif, 0, 20); jMenu5.setText(退出系统); jMenuItem2.setFont(new java.awt.Font(SansSerif, 0, 20); jMenuItem2.setText(退出); jMenuItem2.addActionListe

33、ner(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); jM

34、enuBar1.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(17

35、5, 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); p

36、ublic 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();

37、 protected void processWindowEvent(WindowEvent e) super.processWindowEvent(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

38、) 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

39、) 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 F

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1