实验设备管理系统Word格式.docx
《实验设备管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《实验设备管理系统Word格式.docx(24页珍藏版)》请在冰豆网上搜索。
![实验设备管理系统Word格式.docx](https://file1.bdocx.com/fileroot1/2022-12/18/cf27f44a-fd81-47c5-9021-a85f6b7d01a3/cf27f44a-fd81-47c5-9021-a85f6b7d01a31.gif)
1.2
背景
开发软件名称:
实验室设备管理系统。
项目任务提出者:
太原理工大学工程实验室
项目开发者:
任丽媛、高彩凤、曹紫媛、崔妍雯、谢一轩
用户:
太原理工大学实验室
1.3
参考资料
《软件工程》
李爱萍
人民邮电出版社
2
实验室设备管理系统可行性研究报告
任务概述
2.1
目标
2.1.1
开发意图
使教学办公室对实验室的管理更方便。
减轻管理人员的工作负担。
2.1.2
应用目标
通过本系统软件,能帮助管理人员利用计算机,快速方便的对实验室
设备进行更新和管理。
2.1.3
作用及范围
本软件适用于各个中小型实验室,是比较完善的系统管理软件。
2.2
运行环境
Windows
2000
以上
2.3
假定与约束
建议软件寿命:
5
年
硬件条件:
pc
机
数据库:
SQL
Server
2000
3
数据描述
3.1
系统数据流图:
顶层数据流图:
管理人员
领导
查询修理/报废设备
申请购买设备
实验室管理系统
修理情况输入
维修人员
新设备录入
数据库
0
层数据流图:
修理处理
查询处理
报表
报废处理
4
申请报告
申请领导
数据字典
名字:
维修报表
别名:
维修信息
描述:
每天一次送给管理员的需要维修的设备的信息表
定义:
购置报表=设备编号+设备名称+维修师+次要维修师
位置:
输出到打印机
设备信息
设备编号
唯一的标识实验室中一种设备的关键域
设备信息=设备编号+设备名称+型号+类别/设备编号
购置报表
购置信息
维修报表
购置数量
每一种设备一次购买的数量
购置数量={数字}
购置信息
损坏数量
每一种设备都会出现损坏无法修好
损坏数量={数字}
损坏报表
损坏信息
数据流条目:
1.查询信息
输入:
合法人员对设备的查询操作
输出:
查询信息=设备号+修理记录+报废记录+申请购买记录
2.维修信息
所需维修设备的信息
确定维修设备的记录
维修信息=设备名+编号+修理日期+修理人员+修理费用+修理厂家
3.新设备
购置设备的信息
确定购置的新设备的记录
维修数量
每一种设备一次要维修的台数
维修数量={数字}
新设备=类别+编号+设备名+型号+规格+单价+数量+购买日期+生产厂家+
保质期+经办人
4.损坏设备
已损坏的设备的信息
已损坏的设备记录
损坏设备=损坏日期+设备编号+设备名+型号
文件条目
设备基本信息表
统计查询
数据结构:
类别+设备名称+设备编号+型号等
维修记录表
统计查询,维修
设备名称+维修师傅+维修日期+维修费用等
新设备表
统计查询,购置
设备名称+设备编号+型号+价格+数量等
申请表
统计查询,产成报表
统计查询,生成报表,购置/维修
设备名称+设备编号+型号+数量等
损坏记录表
统计查询,已损坏
设备名称+设备编号+型号等
三、主要仪器设备
硬件:
Thinkpad
s420
处理器:
core
i5
软件:
windows
以上操作系统版本
Sql
server
Eclipse
开发工具
四、操作方法与实验步骤
概要设计
系统整体功能层次图
实验室设备管理系统
系统管理员
仓库管理员
实验室管理员
购买登记员
上级领导
用户管理数据库管理
用
户
添
加
删
除
数
据
库
备
份
还
原
设
入
出
购
买
申
请
存
量
统
计
报
废
维
修
登
记
表
查
询
审
核
管理系统中模块的详细设计
主函数流程图
显示一系列功能选项
输入
n,判断
n
是
否
是
0~6
Y
根据
的值调用各功能模块函数
结束
N
各功能模块
输入模块
追加模块
修改模块
统计模块
搜索模块
详细设计
设备入库模块
java
代码设计
package
com.niit.gui_event;
import
java.awt.BorderLayout;
java.awt.Cursor;
javax.swing.*;
java.awt.*;
com.niit.logical.*;
java.awt.event.*;
java.sql.Date;
com.niit.data.*;
public
class
EquipIn
extends
JPanel
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L;
JLabel
leId,
lsId,
liNum,
lPara;
JTextField
tfiNum;
JComboBox
cbeId,
cbsId;
JButton
bIn,
bAgain,
bDelete;
pUp,
pDown;
JScrollPane
jsp;
JTable
t;
StoreManager
sma;
InData
inInfo;
EquipIn()
super(new
BorderLayout());
//
设置布局管理器
控件初始化
leId
new
JLabel("
设备编号"
);
lsId
仓库编号"
liNum
入库数量"
lPara
参数设置"
lPara.setForeground(Color.RED);
tfiNum
JTextField();
tfiNum.setColumns(10);
bIn
JButton("
入库"
bAgain
重置"
bDelete
删除"
pUp
JPanel();
pDown
sma
StoreManager();
inInfo
InData();
String[]
eId
sma.geteId();
sId
sma.getsIdAll();
cbeId
JComboBox(eId);
cbsId
JComboBox(sId);
head
{
"
库时间"
};
Object[][]
data
sma.getInAll();
t
JTable(data,
head);
t.setRowHeight(25);
jsp
JScrollPane(t);
添加控件
pUp.add(leId);
pUp.add(cbeId);
pUp.add(lsId);
pUp.add(cbsId);
pUp.add(liNum);
pUp.add(tfiNum);
pUp.add(bIn);
pUp.add(bAgain);
pUp.add(lPara);
pDown.add(bDelete);
add(pUp,
BorderLayout.NORTH);
add(jsp,
BorderLayout.CENTER);
add(pDown,
BorderLayout.SOUTH);
添加监听器
bIn.addActionListener(new
ListenButton());
bAgain.addActionListener(new
bDelete.addActionListener(new
lPara.addMouseListener(new
ListenMouse());
}
定义按钮处理器
ListenButton
implements
ActionListener
void
actionPerformed(ActionEvent
e)
if
(e.getSource()
==
bIn)
{//
点击入库按钮
inInfo.seteId(cbeId.getSelectedItem().toString());
inInfo.setsId(cbsId.getSelectedItem().toString());
inInfo.setDate(new
Date(System.currentTimeMillis()));
inInfo.setNum(new
Integer(tfiNum.getText()));
sma.add(inInfo);
bAgain.doClick();
}
else
bAgain)
点击重置按钮
tfiNum.setText(null);
bDelete)
点击删除按钮
int
selectedIndex
-1;
for
(int
i
0;
<
t.getRowCount();
i++)
(t.isRowSelected(i)
true)
i;
(selectedIndex
-1)
JOptionPane.showMessageDialog(null,
请先选择某
一项!
return;
option
JOptionPane.showConfirmDialog(null,
是否确定删除?
提示"
JOptionPane.YES_NO_CANCEL_OPTION);
(option
JOptionPane.YES_OPTION)
inInfo.seteId((String)
t.getValueAt(selectedIndex,
0));
inInfo.setsId((String)
1));
inInfo.setDate((Date)
2));
sma.delete(inInfo);
刷新数据表
remove(jsp);
入库时间"
t.validate();
validate();
定义鼠标处理器
ListenMouse
MouseAdapter
mouseEntered(MouseEvent
lPara.setCursor(new
Cursor(Cursor.HAND_CURSOR));
mousePressed(MouseEvent
ParameterSet();
6、实验结果与分析
利用所编代码,编出实验设备管理系统的设备入库模块,查询有关数据库的
知识,得出以下界面。
系统测试
系统测试是项目开发过程中必不可少的环节,通过测试我们能发现系统的
各功能模块的正确性,并对存在错误的模块进行修改,从而使系统更加完善。
测试方案
考虑到各种因素和条件的限制,我们决定采用黑盒测试方案。
即我们不考
虑所编写程序的具体结构,而是根据软件所需要的输入数据的格式以及应该完
成的功能,设计一些合法的测试用例和不合法的测试用例,特别是根据边界条
件设计一些边界测试用例,以检查系统是否能正确的完成入库功能,得到希望
的输出。
并对不合法的输入和操作能够正确地识别和防御。
在开发过程中对系统进行了如下测试:
1.安全性测试:
对管理员进行测试。
2.功能及正确性测试:
添加,修改,删除,等操作测试。
3.及时全面地处理各种错误异常。
若出现输入错误或信息为空的现象,系
统就会及时给予用户出错提示。
测试的原则
1.应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。
2.测试用例应由测试输入数据和与之对应的预期输出结果两部分组成。
3.程序员应避免检查自己的程序。
(注意不是指对程序的调试)
4.在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
不
合理的输入条件是指异常的,临界的,可能引起问题异变的输入条件。
5.充分注意测试中的群集现象。
经验表明,测试后程序残存的错误数目与
该程序中以发现的错误数目或检错率成正比。
应该对错误群集的程序段进行重
点测试。
6.严格执行测试计划,排除测试的随意性。
7.应当对每一个测试结果做全面的检查。
8.妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供
方便。
编号
描述
测试结果
备注
1
添加:
在新增设备表中,如果
不输入物品名称。
系统将会提示:
“设备名
称不能为空”。
如果输入正确,系统将
提示添加成功。
2
修改:
在设备管理表中对添加
的数据进行修改,必须选中一
行进行修改。
“修改成
功!
因为即使不修改也不
影响”。
如果修改成功,系统将
提示你:
“修改成功”。
3
删除:
在设备管理表中对已添
加的数据进行删除,如果不选
中一行。
系统将会无法修改并且没
有提示。
如果删除成功,系统将
“删除成功”。
4
查询,在信息表中对已存在的
数据进行查询,在名称文本框
中不输入任何字段。
系统将会自动出现设备管
理中已经增添的所有设备
信息。
如果输入查询项目的名
称,则查询结果为输入
名称的设备出现。
测试结果说明
登录测试
系统已存在一个登录用户名,分别是用户名
admin,密码是
123。
1.账号密码为空时,提示:
“填写用户名!
”。
2.用户名
admin,密码为空时,提示:
“请填写密码!
3.用户名
admin,密码为
时,提示:
“用户名或密码错误”。
4.输入用户名
admin,输入密码
123
时,可直接进入程序。
信息测试
先进行信息数据添加,进行数据修改,再进行数据删除,最后进行数据查
询。
详细测试如表
5-1
所示:
七、讨论、心得
本次实验要求我们自己动手设计完成一个实验室设备管理系统,实验开始
先对该管理系统进行需求分析,得出本次实验管理系统需要设备管理员以及上
级领导这两个角色,画出系统的顶层数据流图配备相应的数据字典。
进入软件
设计阶段,将管理系统分成三个模块:
系统功能模块,设备管理员操作模块和
上级领导模块,每个模块再细分成具体的操作模块。
设计系统
E-R
图建立关系
数据表。
软件编码阶段设计系统功能界面,并添加相应的代码,与数据库相连
接,实现系统功能。
软件测试与调试时,将要测试的数据输入到相应的功能界
面,测试本系统能否正常实现相应的功能,并及时进行相应的改进。
这一系列
过程让我了解了一个软件开发的过程,也更加了解了软件工程课程学习中学到
知识的实践意义。
更容易将所学应用于实践。
在制作设备入库模块时,遇到了处理数据库的问题,我们查询了有关网络
和
教科书的内容将数据库和
程序连接起来,在此过程中,我们对数据
库和
语言的了解更加深入,同时也更加了解了
这门语言的便捷性。
Java
相对于
c
语言更加实用,更便于开发软件,在制作过程中,分别对于
语言和
的实用,我更充分的理解了面向对象与面向过程的区别。
作为面
向对象的
语言,与我们的生活更接近,也更为实用。