实验室设备管理系统(课程设计报告)
实验室设备管理系统设计

2、借还管理模块:该模块主要实现设备的借用和归还功能,可以记录设备 借用人员的姓名、借用时间、预计归还时间等信息,并能够提醒管理人员及时归 还设备。
3、维修管理模块:该模块跟踪设备的维修过程,记录设备的维修历史,包 括维修人员、维修时间、维修内容等信息,并能够根据维修历史对设备进行维护 和保养。
系统设计
在系统设计阶段,我们主要考虑以下几个方面:
1、架构设计:我们采用Java Web框架,如Spring Boot,以实现前后端分 离的架构模式。
2、模块划分:系统主要包括设备信息管理、设备预约、设备维护、报表统 计等模块。
3、流程设计:用户可以通过系统进行设备预约、归还、报修等操作,管理 员则可以对设备信息、用户信息等进行管理。
系统测试
1、单元测试:对每个模块的单元功能进行测试,确保各模块的功能完备和 正确性。
2、集成测试:对所有模块进行集成测试,验证模块之间的接口通信和数据 交互的正确性。
3、性能测试:对系统进行压力测试和负载测试,确保系统在高并发情况下 的稳定性和响应性能。
4、用户验收测试:邀请用户参与测试,并对系统的各项功能进行实际操作, 以验证系统是否满足用户需求和期望。
完成系统设计后,我们需要对系统进行测试与部署,以保证系统的稳定性和 可靠性。
1、测试方案:制定详细的测试计划,包括测试目的、测试环境、测试用例 等。测试用例需覆盖所有功能模块,以确保系统在各种不同场景下都能正常运行。
2、测试计划:按照测试方案进行测试计划的安排与实施。包括测试时间、 测试人员、测试进度等详细计划。
4、设备巡检管理:设定设备巡检计划,定期对设备进行检查,确保设备状 态良好。
5、统计分析:对设备使用情况、维护情况进行分析,为管理层提供决策依 据。
软件工程课程设计实验室设备管理系统

实验室设备管理系统目录一、系统的开发背景与目标…………………………………………………1、开发背景…………………………………………………………………2、开发目标…………………………………………………………………二、可行性分析与初步开发计划……………………………………………1、技术可行性………………………………………………………………2、经济可行性………………………………………………………………3、法律可行性………………………………………………………………4、初步开发计划……………………………………………………………三、需求分析……………………………………………………………………1、系统功能列表……………………………………………………………2、数据流图…………………………………………………………………3、数据字典…………………………………………………………………4、数据加工的描述…………………………………………………………5、性能需求…………………………………………………………………四、系统设计……………………………………………………………………1、系统结构图………………………………………………………………2、输出设计…………………………………………………………………3、数据库结构设计…………………………………………………………4、模块详细设计……………………………………………………………五、课程设计总结………………………………………………………………六、代码…………………………………………………………………………七、参考文献……………………………………………………………………一、系统的开发背景与开发目标1、系统的开发背景现代社会的校园网络环境,已经大大发生了变化,除了个人笔记本电脑,各种计算机、语音实验室机房也成为了使用频率颇高的场所,我们不能仅仅把它理解为提供上机的环境,而是应该完善此处的各种相关工作,如考勤,收费等,同时最大限度的降低机房的运营成本,提高使用率;通过建设“实验室设备管理系统”,运用先进的技术手段和设备,满足以上应用需求;实验室设备管理系统是一个功能比较完善的数据管理软件,具有数据操作方便高效迅速等优点,具有很好的可移植性,可在WINDOWS系列等操作系统上使用;2、系统的开发目标a 提高人员的工作效率,提高设备的利用率b实验室的设备管理更加便捷有效c减少设备管理的费用,节省开支d提高决策效率e能够准确的控制生产二、可行性分析与初步开发计划1技术可行性对系统的简要描述在原来的手工系统之上创建,利用计算机实现对实验室设备的管理,包括借出、购入、修理仪器、归还仪器等各种功能采用建议系统可能带来的影响在建立所建议系统时,预期会带来的影响包括以下几个方面;1对设备的影响由于所建议系统是基于WINDOWS操作系统和互联网的,所以需要配备足够符合以上列出的各种软硬件条件的计算机和通信线路;系统失效后,服务器端需要利用备份的数据库恢复数据信息,要求要有足够的数据备份空间;2对软件的影响需要落实是否有符合本报告所列出的正版的软件环境,如果没有则需要购买;3对用户单位机构的影响投入使用前还需改进现有的管理模式;4对开发的影响管理员只要输入简单的数据就可以完成设备管理;5对经费开支的影响除了需要支付开发单位的有关费用外,每年还需要一定的运行维护费用见经济可行性分析;技术可行性评价本系统是一个基于局域网、互联网和WINDOWS操作的系统,现有技术已较为成熟,利用现有技术完全可以实现系统开发目标;同时,开发期限较为宽裕,预计可以在规定期限内完成开发任务;2经济可行性支出1一次性支出1系统开发、建立费用万元;其中:本系统开发期为3个月,需要开发人员3人不一定都是参加满3个月;根据软件系统的规模估算,开发工作量月为3人2个月即6人月,每人月的人工费按5000员计算,开发费用为3万元;实验室设备等基本信息建立需要2人1个月即2人月,每人月的人工费用按2000员计算,需万元;2硬件设备费共万元,其中:微机1台约万元;服务器1台及网络等设备费4万元;3外购开发工具、软件环境费用共4万元;4其他费用共2万元;一次性支出总费用:14万元;2经常性费用主要是系统的运行费用,假设本系统运行期10年,每年的运行费用包括系统维修、设备维护等5万元,按年利率5%计算运行费用见表A-1系统投资成本总额为:14+= 万元效益假设投入本系统,效率可以提高50%,以现有的工作人员10人计算,可减少5人,每人每月平均工资按2500元计算,每年节约人员工资5×12×=15万元/年;按年利率5%计算,效益计算如下表;系统收益总额为:万元;收益/投资比在10年期内,系统总成本万元,系统总收益万元;投资回报率:×%即为=15 /1+j+15/1+j2+…+15/1+j10的方程解i×100纯收益:-=万元从经济上考虑,开发本系统完全可行的;投资回收周期投资回收期:3+-/=年敏感性分析生命周期为10年,需要30人左右;3法律可行性法律因素侵犯专利权:有侵犯版权:有为了能够解决在使用实验设备出现的一些问题,需要建立一个安全完善的管理平台,能够使设备信息能够快速完整地自动记录在案,并自动更新用户使用可行性适用于实验室设备管理,系统操作简单,便于管理人员使用;4初步开发计划三、需求分析1、系统功能列表Function List2、数据流图0层数据流图:1层数据流图:2层数据流图:3、数据字典1.数据流条目登陆信息输入:设备管理员输出:身份验证描述:登陆信息=用户名+密码+登陆权限查询信息输入:合法人员对设备的查询操作输出:设备信息表描述:查询信息=设备名|型号|类别|购置日期维修信息输入:所需维修设备的信息输出:确定维修设备的记录描述:维修信息=修理日期+设备名+编号+修理厂家+修理费用+责任人购买设备输入:购买设备的信息输出:确定购买的新设备的记录描述:新设备=类别+设备名+编号+型号+规格+单价+数量+购置日期+生产厂家+保质期+经办人等报废设备输入:所需报废的设备的信息输出:报废的设备记录描述:报废设备=类别+设备+型号等审核信息输入:审核输出:上级领导描述:审核信息=报废设备信息/新设备购买信息2.加工条目身份验证,统计查询,维修,购买,报废,生产报表,审核;3.文件条目登陆表输入:身份验证输出:身份验证数据结构:用户名+密码+登陆权限设备基本信息表输入:统计查询数据结构:类别+设备名+型号+规格等维修记录表输入:统计查询,维修输出:统计查询数据结构:修理日期+设备名+编号+修理厂家+修理费用+责任人购买设备表输入:统计查询,购买输出:统计查询数据结构:类别+设备名+编号+型号+规格+单价+数量+购置日期+生产厂家+保质期+经办人等报废记录表输入:报废,统计查询,生产报表输出:统计查询,生产报表数据结构:类别+设备名+型号等申请表输入:统计查询,生产报表输出:统计查询,生产报表,购买数据结构:类别+设备名+型号+规格+数量4.数据加工处理的描述登陆用例简要说明:本用例说明用户如何登录到系统;角色:管理员、实验员、学生前置条件:启动程序,进入登录界面基本事件流:1.用户输入基本信息登录名和密码,点击确定按钮2.系统查找数据库,看该用户是否在数据库中;若存在则进入主页面;备选事件流:1.输入无效的用户名或密码,提示用户名或密码不能为空或者提示用户名或密码不正确;后置条件:登录成功特殊需求:没有和本用例有关的特殊需求;扩展点:没有和本用例有关的扩展点;购买设备用例简要说明:本用例说明管理员如何购买设备并记录进入系统;角色:管理员前置条件:已经成功登陆到系统;基本事件流:1.管理员填写设备各种信息,确定添加;2.系统把对应信息写入数据库,更新数据库;备选事件流:输入了已存在的设备编号,系统提示编号中已存在;后置条件:购买成功;特殊需求:没有和本用例有关的特殊需求;扩展点:没有和本用例有关的扩展点;报废设备用例简要说明:本用例说明管理员如何从入系统中删除报废的设备记录;角色:管理员前置条件:已经成功登陆到系统;基本事件流:1.管理员根据设备编号,找到需要删除的设备记录,确定删除;2.系统把从数据库中删除对应信息,更新数据库;备选事件流:输入了不存在的设备编号,系统提示未找到记录;后置条件:删除成功;特殊需求:没有和本用例有关的特殊需求;扩展点:没有和本用例有关的扩展点;设备查询用例简要说明:本用例说明管理员如何查询系统中已记录的实验设备;角色:管理员前置条件:已经成功登陆到系统;基本事件流:1.管理员选择设备查询功能,根据名称、编号、添加时间等方式,填写信息并查询;2.系统查找数据库,找到符合条件的信息;3.返回找到的信息;备选事件流:输入不存在的设备信息,系统提示未找到该设备信息;后置条件:查询成功;特殊需求:没有和本用例有关的特殊需求;扩展点:没有和本用例有关的扩展点;5.性能需求数据精确度该软件计算设备时以“台”、“件”等为实物计件单位,报表输出中的金额保证到的精度;时间特性查询在3秒内完成,表项输出在8秒内完成适应性考虑到工作人员有时候办公地点的移动性,在设计时应该注意软件的适应性,对于查询功能应尽可能独立方便地将其移植到笔记本、掌上电脑等硬件平台6.运行需求用户界面采用Windows的通用图形界,对用户友好,且必须对鼠标和键盘提供支持;硬件接口支持一般x86系列微机和Windows CE,即一般的PC机;四、系统设计1.状态图2.输出设计输入:a.输入数据数字信息符合输入精度要求b.输入可选信息完全使用下拉框完成输出:a.输出数据符合输出精度要求输出数据格式字体大小统一3.数据库结构设计(1)实体表4.模块详细设计设备管理员操作模块设备管理员五、课程设计总结六、代码1、用户登录界面:packageimportimport .;importimport .;public class Login extends JFrame {//private static final long serialVersionUID = 1L;dd lPosition;pCon0.add cbPosition;pCon1.add lName;pCon1.add cbName;pCon2.add lPasswd;pCon2.add pfPasswd;pCon3.add bConfirm;pCon3.add bCancel;pCon4.add lTitle;add pCon4;for int i = 0; i < - 1; i++pCon i;oString;new String;.toString;if info {new Main unch;setVisible false;null;} else {new Login, "用户名,密码或身份错误";null;}} else if == cbPosition {;importimportpublic class Main extends JFrame {//private static final long serialVersionUID = 1L;private JTabbedPane tp;private JPanel p;private User info;public Main {super"实验室设备管理系统";tp = new JTabbedPane;p = new JPanel8;}public MainUser info{this;=info;p0 = new UserManage;p1 = new EquipIn;p2 = new EquipOut;p3 = new Registerinfo;p4 = new Applyinfo;p5 = new Checksinfo;p6= new Search;p7=new PasswdModyfyinfo;}public void launch {"用户管理", p0;"设备入库", p1;"设备出库", p2;"设备登记", p3;"设备申请", p4;"审核申请", p5;"统计查询", p6;"个人信息维护", p7;if info instanceof Administration{1, false;2, false;3, false;4, false;5, false;6, false;}else if info instanceof StoreManager{ 0, false;3, false;5, false;1;}else if info instanceof LabManager{0, false;1, false;2, false;5, false;3;}else if info instanceof BuyManager{0, false;1, false;2, false;4, false;5, false;3;}else if info instanceof OverLeader{0, false;1, false;2, false;3, false;4, false;5;}getContentPane.add tp;setSize1280, 780;setVisible true;addWindowListener new WindowAdapter{public void windowClosingWindowEvent e{0;}};}}3、购买设备:packageimport .;importimport .;importimportimport .;public class MaintainApply extends JPanel {//private static final long serialVersionUID = 1L;private JLabel lpId;private JTextField tf;private JButton bApply, bAgain, bDelete;private JPanel pUp, pDown;private JTable t;private JScrollPane jsp;private User user;private LabManager lm;private MaintainApplyData maInfo;public MaintainApplyUser user {supernew BorderLayout;= user;lpId = new JLabel"固定资产编号";tf = new JTextField;15;bApply = new JButton"申请";bAgain = new JButton"重置";bDelete = new JButton"取消申请";pUp = new JPanel;pDown = new JPanel;lm = new LabManager;maInfo = new MaintainApplyData;String head = new String { "序列号", "固定资产编号", "申请人", "申请时间" };Object data = ;t = new JTabledata, head;25;jsp = new JScrollPane t;lpId;tf;bApply;bAgain;bDelete;add pUp, ;add jsp, ;add pDown, ;oString;maInfo;}}};import .;importimportimportimportpublic class EquipIn extends JPanel {//private static final long serialVersionUID = 1L;private JLabel leId, lsId, liNum, lPara;private JTextField tfiNum;private JComboBox cbeId, cbsId;private JButton bIn, bAgain, bDelete;private JPanel pUp, pDown;private JScrollPane jsp;private JTable t;private StoreManager sma;private InData inInfo;public EquipIn {supernew BorderLayout;oString;.toString;new Date;new Integer;inInfo;;} else if == bAgain {;import .;importpublic class UserManage extends JPanel {//private static final long serialVersionUID = 1L;private JLabel lArray = new JLabel7;private JButton bArray = new JButton3;private JTextField tfArray = new JTextField2;private JPasswordField pfArray = new JPasswordField2;private JPanel pArray = new JPanel4;private JComboBox cbPosition, cbSL;private JScrollPane jsp;private JTable t;private Administration Admin;private StoreManager sma;private LabManager lm;public UserManage {supernew BorderLayout;etColumns10;pfArray i = new JPasswordField;pfArray i.setColumns10;pArray i = new JPanel;}pArray2 = new JPanel;pArray3 = new JPanel new GridLayout2, 1;String position = new String { "系统管理员", "仓库管理员", "实验室管理员", "购买登记员","上级领导" };cbPosition = new JComboBoxposition;cbSL = new JComboBox;Admin = new Administration;sma = new StoreManager;lm = new LabManager;String head = new String { "用户名", "姓名", "身份" };Object data = ;t = new JTabledata, head;25;jsp = new JScrollPane t;etVisible false;false;lArray6.setForeground;dd lArray0;pArray0.add cbPosition;pArray0.add lArray1;pArray0.add tfArray0;pArray0.add lArray2;pArray0.add tfArray1;pArray1.add lArray3;pArray1.add pfArray0;pArray1.add lArray4;pArray1.add pfArray1;pArray1.add lArray5;pArray1.add cbSL;pArray1.add bArray0;pArray1.add bArray1;pArray1.add lArray6;pArray2.add bArray2;pArray3.add pArray0;pArray3.add pArray1;add pArray3, ;add jsp, ;add pArray2, ;ddActionListener new ListenAction;bArray1.addActionListener new ListenAction;bArray2.addActionListener new ListenAction;new ListenAction;lArray6.addMouseListener new ListenMouse;}etText;tfArray1.getText;new String pfArray0.getPassword;.toString;if == bArray0 {etText.equals""|| new String pfArray0.getPassword.toString.equals"" {null, "用户名或密码不可为空";bArray1.doClick;return;}String strKey = new String { ,};if .containsstrKey {null, "用户已存在";bArray1.doClick;return;}if new String pfArray0.getPassword.equals new String pfArray1.getPassword {null, "密码不一致";bArray1.doClick;return;}Admin;if .equals"仓库管理员" {tfArray0.getText;.toString;sma;} else if .equals"实验室管理员" {tfArray0.getText;.toString;lm;}bArray1.doClick;} else if == bArray1 {etText null;tfArray1.setText null;pfArray0.setText null;pfArray1.setText null;} else if == bArray2 {quals"仓库管理员" {lArray5.setText"仓库编号";lArray5.setVisible true;true;;String sId = ;for int i = 0; i < ; i++sIdi;} else if .equals"实验室管理员" {lArray5.setText"实验室编号";lArray5.setVisible true;true;;String sId = ;for int i = 0; i < ; i++sIdi;} else {lArray5.setVisible false;false;}}etCursor new Cursor;}public void mousePressedMouseEvent e {new ParameterSet;}}}6、设备统计查询:packageimport .;importimportimport .;importimportimportimportpublic class Search extends JPanel {//private static final long serialVersionUID = 1L;private JRadioButton rbStore, rbLab, rbeId, rbSingleeId;private JComboBox cbStore, cbLab, cbeId;private JLabel lStore, lLab, leId;private JTable t;private JScrollPane jsp;private JPanel pUp, pDown, p;private StoreManager sma;private InData inInfo;public Search {supernew BorderLayout;rbStore = new JRadioButton"仓库库存统计", true;rbLab = new JRadioButton"实验室库存统计";rbeId = new JRadioButton"所有设备", true;rbSingleeId = new JRadioButton"单个设备";sma = new StoreManager;inInfo = new InData;cbStore = new JComboBox;cbLab = new JComboBox;cbeId = new JComboBox;lStore = new JLabel"仓库编号";lLab = new JLabel"实验室编号";leId = new JLabel"设备编号";false;false;false;false;pUp = new JPanel;pDown = new JPanel;p = new JPanel;rbStore;lStore;cbStore;rbLab;lLab;cbLab;rbeId;rbSingleeId;leId;cbeId;new GridLayout2, 1;pUp;pDown;.toString;String head = new String { "设备编号", "仓库编号", "库存量" }; Object data = inInfo;t = new JTabledata, head;25;jsp = new JScrollPane t;add p, ;add jsp, ;oString;.toString;.toString;.toString;if {true;true;false;false;false;head = new String { "设备编号", "仓库编号", "库存量" };if {false;false;false;data = idInfo;} else {true;true;false;data = idInfo;}} else {false;false;true;true;false;head = new String { "设备编号", "实验室编号", "库存量" };if {false;false;false;data = odInfo;} else {true;true;false;data = odInfo;}};import .;import .;import .;import .;import .;importimport .;importimportpublic class Frame6 extends JFrame {JPanel contentPane;JLabel jLabel1 = new JLabel;XYLayout xYLayout1 = new XYLayout;JLabel jLabel2 = new JLabel;JLabel jLabel3 = new JLabel;JTextField jTextField1 = new JTextField;JLabel jLabel4 = new JLabel;JTextField jTextField2 = new JTextField;JPanel jPanel1 = new JPanel;XYLayout xYLayout2 = new XYLayout;JScrollPane jScrollPane1 = new JScrollPane;JLabel jLabel5 = new JLabel;JTextField jTextField3 = new JTextField;public Frame6 {enableEvents;try {jbInit;}catch Exception e {;}}private void jbInit throws Exception {contentPane = JPanel ;xYLayout1;new Dimension600, 500;"实验室设备管理系统";new Frame6_this_hierarchyBoundsAdapter this;new"SansSerif", 0, 25;;"实验室设备管理系统";;new"SansSerif", 0, 30;"设备报废记录查询";new"SansSerif", 0, 20;"设备名称";"";true;new"SansSerif", 0, 20;"设备型号";"";new Frame6_jTextField2_actionAdapter this;xYLayout2;new"SansSerif", 0, 25;;"该报废设备详细信息";"";jLabel1, new XYConstraints200, 0, 300,50;jLabel2, new XYConstraints200, 47, 300, 58;jLabel3, new XYConstraints47, 102, 101, 42;jTextField1, new XYConstraints128, 108, 112, 34;jTextField2, new XYConstraints361, 107, 109, 36;jPanel1, new XYConstraints75, 166, 453, 277;jScrollPane1, new XYConstraints14, 8, 433, 221; .add jTextField3, null;jLabel5, new XYConstraints112, 240, -1, -1;jLabel4, new XYConstraints278, 111, -1, -1;}protected void processWindowEventWindowEvent e {e;if == {0;}}void Select {try {String str1, str2;str1 = ;str2 = ;Connection con = null;String url = "jdbc:odbc:shebeiguanli";String user = "";String password = "";;con = url,user,password;Statement stmt =;PreparedStatement pstmt ="use shebeiguanli select from 报废记录 where 设备型号= and 设备名= ";2, str1;1, str2;ResultSet res = ;String id;String name;String guige,danjia,day,changjia,peo,num;String outputarea=" 设备型号 " +" 设备名称 "+" 报废记录 "+" 责任人"+'\n';if{do{id = 1;name = 2;day=5;peo=7;outputarea+=" "+id+" "+name+" "+day+" "+peo+" "+"\n";outputarea;}while;}else{"不存在";}}catch ClassNotFoundException e {}catch SQLException edd {;}}void this_ancestorMovedHierarchyEvent e {}void jTextField2_actionPerformedActionEvent e {Select;}}class Frame6_this_hierarchyBoundsAdapter extendsFrame6 adaptee;Frame6_this_hierarchyBoundsAdapterFrame6 adaptee { = adaptee;}public void ancestorMovedHierarchyEvent e {e;}}class Frame6_jTextField2_actionAdapter implementsFrame6 adaptee;Frame6_jTextField2_actionAdapterFrame6 adaptee {= adaptee;}public void actionPerformedActionEvent e {e;}}7、报废设备:packageimport .;importimport .;importimportimportpublic class BuyApply extends JPanel {//private static final long serialVersionUID = 1L;private JLabel leId, lNum;private JPanel pUp, pDown;private JButton bApply, bAgain, bDelete;private JTable t;private JScrollPane jsp;private JComboBox cbeId;private JTextField tfNum;private User user;private StoreManager sma;private BuyApplyData baInfo;public BuyApplyUser user {supernew BorderLayout;oString;;new Date;new Integer;baInfo;;} else if == bAgain {oString;baInfo;}}};importimportimport .;importimportclass MaintainCheck extends JPanel{//private static final long serialVersionUID = 1L;private JLabel lLeft,lRight;private JPanel pLeft,pRight,pCenter,pCUp,pCDown;private JButton bUp,bDown;private JTable tLeft,tRight;private JScrollPane jspLeft,jspRight;private User user;public MaintainCheckUser user{=user;l Left=new JLabel"未审核列表";l Right=new JLabel"已审核列表";b Up=new JButton"通过";b Down=new JButton"不通过";p Left=new JPanel;p Right=new JPanel;p Center=new JPanel;p CUp=new JPanel;b Up;p CDown=new JPanel;bDown;new GridLayout2,1;pCUp;pCDown;OverLeader ol=new OverLeader;String headRight=new String{"审核表序列号","申请表序列号","审核人","审核时间","审核结果"};Object dataRight=;tRight=new JTabledataRight,headRight;25;jspRight=new JScrollPane tRight;String headLeft=new String{"序列号","固定资产编号","申请人","申请时间"};Object dataLeft=;tLeft=new JTabledataLeft,headLeft;25;jspLeft=new JScrollPane tLeft;new BorderLayout;new BorderLayout;lLeft,;jspLeft,;lRight,;jspRight,;setLayout new GridLayout1,3;add pLeft;add pCenter;add pRight;new ListenButton;new ListenButton;}class ListenButton implements ActionListener{p ublic void actionPerformedActionEvent e{int selectedIndex = -1;for int i = 0; i < ; i++ {if i == trueselectedIndex = i;}if selectedIndex == -1 {null, "请先选择某一项";return;} else {int option = null,"是否确定审核此申请", "提示", ;if option == {MaintainCheckData info = new MaintainCheckData;new IntegerselectedIndex, 0.toString;;new Date;if==bUp{"通过";}else if==bDown{"不通过";}OverLeader ol=new OverLeader;info;}}//刷新remove jspLeft;remove jspRight;OverLeader ol=new OverLeader;String headRight=new String{"审核表序列号","申请表序列号","审核人","审核时间","审核结果"};Object dataRight=;tRight=new JTabledataRight,headRight;25;;jspRight=new JScrollPane tRight;String headLeft=new String{"序列号","固定资产编号","申请人","申请时间"};Object dataLeft=;tLeft=new JTabledataLeft,headLeft;25;;jspLeft=new JScrollPane tLeft;new BorderLayout;new BorderLayout;lLeft,;jspLeft,;lRight,;jspRight,;setLayout new GridLayout1,3;validate;}}}七、参考文献软件工程王忠群中国科学技术大学出版社Java程序设计胡平电子科技大学出版社。
实验室设备管理系统设计

实验室设备管理系统设计实验室设备管理系统是一种用于帮助实验室管理人员有效管理和监控实验室设备的软件系统。
它可以提供设备的登记、借还、维修、报废等功能,从而提高实验室设备的利用率和管理效率。
下面是一个关于实验室设备管理系统的设计,总共超过1200字。
一、系统需求分析1.系统目标:设计一个实验室设备管理系统,实现设备的登记、借还、维修和报废等功能,提高设备的利用率和管理效率。
2.功能需求:b)设备借还功能:实验室人员可以通过系统进行设备的借还操作,管理人员可以查看设备的借出情况和借用人员。
c)设备维修功能:实验室人员可以通过系统进行设备的维修申请,并记录维修的过程和结果。
d)设备报废功能:实验室人员可以通过系统申请设备报废,并记录报废的原因和日期。
e)设备查询功能:实验室管理人员可以通过系统查询设备的基本信息、借还情况、维修记录和报废记录等。
3.性能需求:a)系统响应时间:系统应能在合理的时间内响应用户的请求,并保持系统的稳定性。
b)数据安全性:系统应具备数据加密和访问控制的功能,保障数据的安全性。
c)系统容错性:系统应具备容错和故障恢复功能,确保系统的正常运行和数据的完整性。
二、系统设计1.技术选型:选择使用Web开发框架进行系统的开发,如Python的Django框架或Ruby的Ruby on Rails框架,以便快速构建系统。
数据库可选用关系型数据库,如MySQL或PostgreSQL。
2.系统模块设计:a)用户模块:负责用户的注册、登录、权限管理等功能。
b)设备管理模块:负责设备的登记、借还、维修和报废等功能。
c)设备查询模块:负责设备的查询功能。
d)报表统计模块:负责生成设备的统计报表,如设备的借还记录、维修记录和报废记录等。
3.数据库设计:设计设备、用户、设备借还记录、设备维修记录和设备报废记录等表,使用外键关联各表。
4.系统界面设计:设计符合用户习惯的用户界面,界面简洁明了,易于操作。
高校实验室设备管理系统_课程设计

To.nochar(20) not null,
A.datedatetime not null
)
3.5.2
随着高等教育改革的不断发展,素质教育与创新人才的培养对高校实验室提出了越来越高的要求,特别是对高校实验室的管理水平提出了较高的要求。由于历史和客观的原因,实验室结构单一,管理方式落后,查询设备信息复杂,资源利用率低,设备维修的信息传送的渠道不畅。这些问题的存在严重制约了实验室的利用率,成为制约素质教育与创新人才培养的瓶颈问题。这一问题若得不到及时有效的解决,素质教育、创新人才培养就难以落到实处。
(2)高校设备的管理存在着轻视管理和维护的弊端。长期以来由于管理不善,大量的设备长期闲置,设备故障无人修理,直接影响仪器设备使用的效率,造成教育资源的严重浪费。
(3)一些设备管理系统虽然能够实现联网工作,但是功能单一,缺少信息互动和网络优化办公的优势。虽然能实现联网工作,但是涉及面很小,管理效率低,缺乏系统性、广泛性和协同性的管理。
M.no
Char
20
不能为空,不能重复
维修人员工号
R.num
Char
10
不能为空,不能重复
数量
R.date
Datetime
报修日期
De.no
Char
20
不能为空,不能重复
设备编号
D.no
Char
20
不能为空,不能重复
部门号
11.分发关系(hand out)
属性名
字符类型
长度
约束
说明
D.no
Char
20
生产日期
De.bdate
Datetime
实验设备管理系统c语言版

printf("**********************************************************\n");
printf("请输入要修改的设备编号:\n");
scanf("%s",code); /*输入要修改的设备编号*/
printf("------------------------------------\n");
}
fclose(fp);
printf("\n-----------------------\n");
printf("返回主菜单 \n");
printf("1.是\n");
printf("2.不,退出\n");
scanf("%d",&c);
if(c==1)return(-1);
if(c==2)return(0); /*任务结束选择是返回主菜单还是跳出*/
实验室设备信息用文件存储,故要提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的查询需要提供查找操作;另外还要提供键盘式选择菜单以实现功能选择总体设计
整个系统被设计为实验设备信息输入模块、实验设备信息添加模块、实验设备信息修改模块、实验设备分类统计模块和实验设备查询模块。
{
if((fp=fopen("","r"))==NULL)
{printf("\n不能打开文件!\n");}
实验室管理系统课程设计

实验室管理系统课程设计一、教学目标本课程旨在通过学习实验室管理系统,使学生掌握实验室管理的基本知识和技能,能够熟练使用实验室管理系统,进行实验室的日常管理工作。
在知识目标方面,要求学生掌握实验室管理系统的功能、操作方法和维护技巧。
在技能目标方面,要求学生能够独立完成实验室管理系统的安装、配置和维护工作,能够编写简单的实验室管理程序。
在情感态度价值观目标方面,要求学生认识到实验室管理的重要性,培养学生的责任感和使命感。
二、教学内容本课程的教学内容主要包括实验室管理系统的功能、操作方法、维护技巧以及实验室管理的相关理论知识。
具体包括:实验室管理系统的概述,实验室管理系统的安装与配置,实验室管理系统的使用与维护,实验室管理的相关理论知识。
三、教学方法本课程将采用讲授法、操作演示法、实验法等多种教学方法。
在讲授基本理论知识时,将结合操作演示,使学生能够直观地理解理论知识。
在实际操作环节,将安排实验室管理系统的安装与维护实验,使学生能够亲手操作,提高实际操作能力。
四、教学资源教学资源包括教材、实验设备、多媒体资料等。
教材将选用权威、实用的实验室管理系统教材,为学生提供全面、系统的理论知识学习。
实验设备包括实验室管理系统软件和相应的硬件设备,以供学生进行实际操作。
多媒体资料包括教学PPT、视频教程等,以丰富教学手段,提高学生的学习兴趣。
五、教学评估本课程的评估方式包括平时表现、作业、考试等多种形式,以全面客观地评估学生的学习成果。
平时表现主要评估学生在课堂上的参与程度、提问回答等情况,占总评的20%。
作业主要包括课堂练习和课后作业,占总评的30%。
考试包括期中和期末考试,占总评的50%。
此外,还将定期进行实验室管理实践操作评估,以检验学生的实际操作能力。
六、教学安排本课程的教学安排将根据课程内容和学生的实际情况进行合理规划。
教学进度将按照教材的章节顺序进行,确保在有限的时间内完成教学任务。
教学时间将分配在每周的固定课时,地点将在教室和实验室进行。
C++课程设计---实验室设备管理系统

计算机科学与技术系课程设计报告2010~2011学年第二学期课程C++课程设计课程设计名称实验室设备管理系统学生姓名学号目录1 课程设计的目的 (2)2 课程设计名称及内容 (2)3 任务要求 (2)4 课程设计报告内容 (3)流程图显示 (3)4.2程序实现思路 (6)5 程序演示 (9)6 总结 (14)参考文献 (14)附录(源代码) (15)实验室设备管理系统1、课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。
通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《C++程序设计语言》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
(5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。
(6)熟练掌握C++语言的基本语法,灵活运用各种数据类型。
(7)进一步掌握在集成环境下如何调试程序和修改程序。
2、课程设计名称及内容课程设计名称:实验室设备管理系统设计内容:编写一个简单的实验室设备管理程序,帮助管理实验室设备信息。
要求具有设备信息管理的功能。
其中包括设备信息的录入、删除、查询和修改等功能。
还应包括对实验室信息管理的功能。
其中包括对实验室信息的录入、删除、修改和查询等功能。
3、任务和要求运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文件进行读写操作。
本题程序应提供的基本管理功能有:1)添加:即增加一条信息到设备信息中,或增加一条信息到实验室信息中;2)显示:即在屏幕上显示所有设备或实验室信息;3)存储:即将设备信息和实验室信息分别保存在文件中;4)装入:即将文件中的信息读入程序;5)查询:可根据设备名称查找具体情况,若找到,显示在屏幕上;6)修改:可修改设备信息,或对实验室信息进行修改。
高校实验室设备管理系统_课程设计

鉴于高校设备管理的现状以及设备管理信息化的要求,开展计算机辅助设备管理,并在此基础上为上级部门进行决策分析提供帮助,极大地提高了设备管理的工作水平和信息化水平。
2.1
系统分析阶段开展的主要工作包括:收集和分析系统需求、提供系统说明书等。系统需求分析就是通过系统调查,了解用户实际需求,进行系统分析,提炼出系统需求。业务流程是系统设计的关键,要开发一个系统,必须确定系统的功能需求,这就必须先了解实际的业务流程,从业务流程中分析系统的需求。设备信息是系统进行管理的主线,它描述了设备的基本情况,主要包括:设备名称、设备编号、分类号、型号、规格等;编码设计应完全符合国家信息标准。系统工作流程主要是用户进行设备信息的入库以及维护处理。不同权限的用户进行不同的工作操作,具有不同的工作流程。
3.4
采购员(工号,姓名,年龄,性别,联系方式,入厂日期)
设备(设备编号,型号,设备名称,生产日期,购买日期,设备处号)
设备管理员(工号,姓名,年龄,性别,联系方式,工作日期)
员工(工号,姓名,年龄,性别,联系方式,工作日期)
部门(部门号,名称,联系方式,设备处号)
维修人员(工号,姓名,年龄,性别,联系方式,工作日期)
随着高等教育改革的不断发展,素质教育与创新人才的培养对高校实验室提出了越来越高的要求,特别是对高校实验室的管理水平提出了较高的要求。由于历史和客观的原因,实验设备维修的信息传送的渠道不畅。这些问题的存在严重制约了实验室的利用率,成为制约素质教育与创新人才培养的瓶颈问题。这一问题若得不到及时有效的解决,素质教育、创新人才培养就难以落到实处。
(4)设备的损坏管理:对设置的使用过程中遇到的设备损坏进行记录,并且修改相关联的数据信息。
(5)设备损坏信息浏览查询:实现对损坏设备信息的准确查询。查询可以是不同字段的联合查询。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2 软件系统数据字典
3.21 数据流条目
3. 需求规定 3.1 功能性需求规定
3.1.1 系统整体功能层次图
3.1.2 业务流程分析 数据流图:
流程详细说明: (1) 仓库管理员统计仓库中设备的库存量,找出库存量不足的设备,填写购买 申请表,领导对此申请表进行审核,审核通过后,产生购买报表交给购买 员。 (2) 购买员将购买的设备及购买信息交给购买登记员,由他进行购买登记。购 买登记员查询申请审核表,将设备分配到各仓库。 (3) 仓库管理员对购买的设备进行入库登记,出库登记。 (4) 实验室管理员负责对报废的设备进行报废登记并处理,找出要维修的设备 填写维修申请表,领导对维修申请表进行审核,通过后产生维修报表交给 维修员,维修员将设备送交某一修理厂家进行维修。 (5) 设备维修完后,交还原实验室,由实验室管理员进行维修登记。
求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、型号、
规格、单价、数量、购置日期、生产厂家、购买人等),同时更新申请表的
内容。
(4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够
按类别和时间段(某日期之前)查询。 文献资料:
《Java 面向对象程序设计》,耿祥义、张跃平编著,清华大学出版社
运行该软件所需要的硬设备,包括: 【1】 处理器型号:Intel Core2; 【2】 内存容量:1.00G; 【3】 硬盘:120G
4.2 支持软件
【1】 操作系统:windows2000 操作系统以及以上版本; 【2】 数据库:Sql Server 2008 R2 版数据库 【3】 MyEclipse 开发工具
3.3.2 时间特性需求
对于该软件的时间特性要求为: a.响应时间:小于 7 秒钟; b.更新处理时间:小于 6 秒钟;
3.3.3 灵活性 该软件的灵活性的要求(即当需求发生某些变化时,该软件对这些变化的适 应能力): a.运行环境的变化:可以实现跨平台操作; b.同其他软件的接口的变化:设计多元化接口,以实现与其他软件接口之间 的通信; c.精度和有效时限的变化:统一修改数据精度、以及有效时限的数据库内容;
1 登陆信息 输入:设备管理员 输出:身份验证 1 描述:登陆信息=用户名+密码+登陆权限
2 查询信息 输入:合法人员对设备的查询操作 输出:设备信息表 描述:查询信息=设备名/型号/类别/购置日期
3 维修信息 输入:所需维修设备的信息 输出:确定维修设备的记录 描述:维修信息=设备名+修理日期+修理厂家+修理费+负责人
此需求说明书的预期读者为项目经理、设计人员、开发人员、用户等。
1.2 背景
说明: a.待开发的软件系统的名称:实验设备管理系统; b.本项目的任务提出者:西安文理学院; c.本项目的开发者:张兴华 陈琛 任小艳; d.本项目的用户:西安文理学院相关管理人员; e.该软件系统同其他系统或其他机构的基本的相互来往关系:与西安文理学 院财务管理软件系统有相应接口。
2.查询领导的购买申请审核信息; 3.根据审核信息将购买的设备分配到相应的仓库,将有关详单提交仓库管理员, 4.本人信息维护。 【3】仓库管理员 1. 根据购买登记员提交的详单进行入库登记; 2. 根据实验室管理员提交的详单进行出库登记; 3. 查询统计本仓库中的所有设备的库存量,统计出库存量不足的设备; 4. 根据统计信息进行购买申请。 5. 本人信息维护; 【4】实验室管理员 1. 管理本实验室中各设备,找出需要维修的设备,进行维修申请; 2. 对于不能维修的设备,要进行报废记录; 3. 查询统计本实验室设备拥有量,统计出数量不足的设备,产生详单提交仓库
12 申请表 输入:统计查询 2.1,生产报表 3.1 输出:统计查询 2.1,生产报表 3.1,购买 2.3 数据结构:设备名+型号+规格+数量+负责人
3.3 非功能新需求规定
3.3.1 精度
软件的输入精度: a.输入的数字信息,精度保留到小数点后两位。 b.输入的公司或单位名称,必须是全称,不可以是简称或者是简写。 e.输入的可选信息时,以下拉框内容为备选选择,不可以自行输入。
4 新设备 输入:购买设备的信息 输出:确定购买的新设备的记录 描述:新设备=类别+设备名+型号+规格+单价+数量等
5 报废设备
输入:所需报废的设备的信息 输出:报废的设备记录 描述:报废设备=类别+设备名+型号等
6 审核信息 输入:审核 3 输出:上级领导 描述:审核信息=报废设备信息/新设备购买记录
3.3.4 可靠性 本系统的可靠性是指:系 统 在 规 定 的 条 件 下 、在 规 定 的 时 间 内 完 成 规 定 的 功能的能力。
影响可靠性的操作流程有: 1. 新增用户时可能出现信息无法提交的情况。 2. 设备购买登记阶段,可能出现设备信息无法写入,购买信息登记错误。
由于本系统是 LEM 系统,故对于可靠性的要求较高。具体要求: 1. 全部录入信息以各纸质详单,如购买详单,维修详单等为准; 2. 数据的正确性需经过多方核查。 3. 自动对于各种信息数据进行备份。 4. 报表生成与纸质、电子报表相一致。
二、 软件需求分析
确认测试报告
项目开发总结报告 最终用户手册
1. 引言
1.1 编写目的
此需求说明书详细陈述了“实验设备管理系统”的所提供各项功能。其中包括 用户的功能性需求以及非功能性需求,为用户提供完整且较详尽的系统功能运作 蓝图。同时为设计人员提供一个完整的、可靠的设计约束,以便高质量地设计、 编写代码,完成系项目预期目标。还给开发人员提供了参考。
购买申请。
(4)本系统的输入项至少包含:新设备信息、修理信息、申请购买信
息、报废信息、具体查询统计要求。
(5)本系统的输出项至少包含:设备购买申请表、修理/报废注销/设
备资金统计表。
工作期限: 设计工作自 2013 年 12 月 20 日至 2014 年 01 月 08 日止。
指导教师: 甘田
院主任: 日 期:2014 年 01 月 06 日
2.2 用户的特点
此软件的使用用户为: 西安文理学院相关管理人员。 因此,我们通常可以认为:用户具有较高的文化水平和学习能力,并且具有 一定的计算机使用水平和经验,可以了解整个 LEM 系统的工作流程及注意事项, 与此同时对于 LEM 系统的基本操作,可以无困难执行。在参考用户手册的情况 下可以无需进行专业培训,即可顺利使用本系统。
2013.12.23
建立软件系统的总体结构和 模块间的关系,定义各功能 模块的接口,涉及全局数据 库,规定涉及约束,制定组 装测试计划。
概要设计说明书 组装测试计划
ห้องสมุดไป่ตู้
2013.12.24 根据概要设计对本软件所必 须的数据库进行分析及设计
数据库设计说明书
2013.12.25
2013.12.26 2014.01.01
9 维修记录表 输入:统计查询 2.1,维修 2.2 输出:统计查询 2.1 数据结构:设备名+修理日期+修理厂家+修理费+责任人等
10 新设备表 输入:统计查询 2.1,购买 2.2 输出:统计查询 2.1 数据结构:类别+设备名+型号+规格+单价+数量+生产厂家+购买人等
11 报废记录表 输入:报废 2.4,统计查询 2.1,生产报表 3.1 输出:统计查询 2.1,生产报表 3.1 数据结构:类别+设备名+型号等
试; 3. 模块边界条件测试; 4. 模块中所有独立执行通
路测试; 5. 模块的各条错误处理通
路测试。
单元测试报告
综合测试 2014.01.04 发现与接口有关的各种错误
综合测试报告
确认测试 项目实施
2014.01.04
2014.01.04 2014.01.04
检查软件是否满足软件需求 说明书中的确认标准 完善程序流图 书写软件使用说明书和用户 手册
3.1.2 系统用户列表
高校 LEM 面向五类用户:系统管理员,购买登记员,仓库管理员,实验室管 理员,上级领导,这几类用户通过高校 LEM 系统进行设备管理上的交流,而该 系统为用户提供不同的功能。
【1】系统管理员 1.注册本系统用户; 2.注销本系统用户; 3.数据库的维护; 4.本人信息维护; 【2】购买登记员 1. 将购买员提交的购买信息进行登记,记录有关设备基本信息,设备的购买信 息如价格,数量等;
1.3 定义
LEM:实验室设备管理系统(Laboratory Equipment Management);
2. 任务概述 2.1 目标
随着高校规模的扩大,实验室及仓库的增多,人工管理实验设备已变得过于 低效,为了解决这一问题,高校实验室设备管理系统将实现设备管理的自动化。
实验室设备管理系统将贯穿于设备从购进到报废的整个流程的管理过程,帮 助管理员高效地管理整个高校的所有设备,并给上级领导提供一个审核监督管理 的平台。
《SQL Server 数据库教程(2008 版)》, 郑阿奇,刘启芬,顾韵华主编,
人民邮电出版社
设计要求:
(1)所有工作由专门人员负责完成,其他人不得任意使用。
(2)每件设备在作入库登记时均由系统按类别自动顺序编号,形成设
备号;设备报废时要及时修改相应的设备记录,且有领导认可。
(3)本系统的数据存储至少应包含:设备记录、修理记录、报废记录、