姓名:董建伟 学号:3080702239 实验题目:实验室设备管理系统
1、系统简介:
在进行计算机管理之前的实验室设备管理,完全依靠人工完成,没有统一的管理利用率低下,浪费了许多人力,找造成许多不必要的损失,计算机管理急需进行。
我校的实验设备管理还处于较原始的人工管理阶段,随着计算机技术的发展利用计算机管理我校的实验室设备势在必行。实验室设备管理系统的目的是对学校的设备进行全面的管理,以便于对设备的使用情况进行统计,更新,同时节省开支,实现对资源的合理利用。
此系统利用计算机实现,节约了大量物力,人力,财力。合理分配资源,提高了工作效率,对设备的管理,维修,报废等都有了进一步的提高。 2、技术要求及限定条件:
应用了简单的开发软件,结合数据库实现对设备的管理,系统技术要求不高,一般的学校都可以实现。
一:可行性分析
1、技术可行性分析
当前的科技水平完全可以支持此系统的开发,系统可以投入到生产中。系统要求的技术
水平并不是太高,开发的算法简单易行。开发所需的技术存在的风险较低。开发人员可以比较容易的实现系统,工作可以运用到实际中。
2、经济可行性分析
系统所需的成本较低,开发简单,开发工具和所需设备都比较简单,对经济的要求不高。
系统的维护也比较简单,对开发人员的要求也不是太高,相对而言开发可以实现,并且节约了许多资源。
3、系统可选择的开发方案
开发方案A:基于Microsoft Visual Studio 2008及SQL Server 2000数据库平台开发
开发方案B:基于Eclipse及MySQL 5.0平台开发 方案A以小型数据库管理系统为后台数据库,该前台与数据分离,能实现多层应用系统,系统对硬件设备的要求剧中,特别适合在网络环境下使用,操作方便。而且此方案中用户界面可以直接通过拖动,无需通过代码实现,从而提高了效率。
方案B 以数据库管理系统为后台数据库,同样能实现多层应用系统,虽然用户界面需通过代码来实现,但快捷键的提示大大减轻我们的工作负担。 二种方案都可实现系统目标,但实现的方式、成本、工期不同。通过比较从技术可行性,,经济可行性,操作可行性,社会因素可行性分析方案A更高效,简捷,选择方案A。
第 1 页 共 13 页
二:软件需求分析
1.软件系统需求基本描述:
1.背景描述
实验室设备管理系统主要用于实验室设备的管理,通过利用计算机提高管理的效率,
节约成本,合理充分的利用资源。
本管理系统通过计算机对实验设备进行自动管理,设备管理员可以直接在计算机实现实验设备的信息管理,并在一定程度上实现自动化,改善了工作运行效率和效果。
2.功能分析
(1)、对于已彻底损坏的作报废处理,同时详细记录有关信息。
(2)、对于有严重问题(故障)的要即使修理,并记录修理日期、设备名、修理厂家、修理费、责任人等。
(3)、对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等),同时更新申请表的内容。
(4)、设备管理员可以查询信息,对设备进行管理。
(5)、随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段查询。
2.软件系统数据流图(由加工、数据流、文件、源点和终点四种元素组成):
(1)第0层数据流图
登陆信息实验室管理员查询/申请/维修/报废处理结果实验室设备管理系统审核信息审核结果上级领导 (2)第1层数据流图
第 2 页 共 13 页
统计查询设备信息表登陆表查询信息维修维修设备维修记录表上级领导设备管理员登陆信息身份验证购买设备购买申请表报废设备新设备表报废报废记录表 (3)第2层数据流图
统计查询设备信息表登陆表查询信息合法信息维修设备维修维修记录表设备管理员登陆信息无效信息身份验证购买设备购买申请表申请信息生成报表报表批准报废设备新设备表审核审核信息审核信息报废报废记录表上级领导
3.软件系统数据字典:
1、 数据流条目
(1)登陆信息
输入:设备管理员 输出:身份验证
描述:登陆信息=用户名+密码+登陆权限
(2)查询信息
第 3 页 共 13 页
输入:合法人员对设备的查询操作 输出:设备信息表
描述:查询信息=设备名/型号/类别/购置日期
(3)维修信息
输入:所需维修设备的信息 输出:确定维修设备的记录
描述:维修信息=设备名+修理日期+修理厂家+修理费+负责人
(4)购买设备
输入:购买设备的信息
输出:确定购买的新设备的记录
描述:新设备=类别+设备名+型号+规格+单价+数量等
(5)报废设备
输入:所需报废的设备的信息 输出:报废的设备记录
描述:报废设备=类别+设备名+型号等
(6)审核信息 输入:审核 输出:上级领导
描述:审核信息=报废设备信息/新设备购买记录
2、 加工条目
身份验证,统计查询,维修,购买,报废,生产报表,审核 3、 文件条目
(1)登陆表
输入:身份验证 输出:身份验证
数据结构:用户名+密码+登陆权限
(2)设备信息表 输入:统计查询
数据结构:类别+设备名+型号+规格等
(3)维修记录表
输入:统计查询,维修 输出:统计查询
数据结构:设备名+修理日期+修理厂家+修理费+责任人等
(4)新设备表
输入:统计查询,购买
第 4 页 共 13 页
输出:统计查询
数据结构:类别+设备名+型号+规格+单价+数量+生产厂家+购买人等
(5)报废记录表
输入:报废,统计查询,生产报表 输出:统计查询,生产报表
数据结构:类别+设备名+型号等
(6)申请表
输入:统计查询,生产报表
输出:统计查询,生产报表,购买
数据结构:设备名+型号+规格+数量+负责人
4.E-R图
设备设备型号设备名规格单价购买日期生产厂家购买人数量 设备管理员用户名密码登陆权限 第 5 页 共 13 页
上级领导姓名编号权限
三:软件设计
1.软件系统模块结构图
实验室设备管理系统身份信息验证信息身份验证选择处理统计查询维修购买报废申请表申请表购买单购买单申请购买领导审核采购 2.软件系统数据设计(数据库的表)
登陆表 列名 用户名 密码 登陆权限
设备信息表 列名 设备型号 设备名 规格 单价 购买日期 数据类型 varchar varchar varchar float datetime 长度 10 20 10 8 8 允许空 not null not null not null null null 数据类型 varchar varchar char 长度 50 50 10 允许空 not null not null not null 第 6 页 共 13 页
生产厂家 购买人 数量
维修记录表
列名 设备型号 设备名 维修日期 维修厂家 维修费用 责任人 报废记录表 列名 设备型号 设备名 报废日期 责任人 申请表
列名 设备名 日期 规格 数量 申请人
新设备表 列名 设备型号 设备名 规格 单价 购买日期 生产厂家 购买人 数量 varchar varchar Int 20 10 4 null null null 数据类型 varchar varchar datetime varchar float varchar 长度 10 20 8 30 8 10 允许空列名 not null not null null null null null 数据类型 varchar varchar datetime varchar 长度 10 20 8 10 允许空 not null not null null null 数据类型 varchar Datatime varchar int Varchar 长度 10 8 10 4 10 允许空 not null not null not null null Null 数据类型 varchar varchar varchar float datetime varchar varchar Int 长度 10 20 10 8 8 20 10 4 允许空 not null not null not null null null null null null
3.软件系统其中的3个模块的详细设计:
第 7 页 共 13 页
1.上级领导操作功能
2.设备管理员操作
开始操作界面Y操作要求?选择操作类型设备操作管理N退出3.系统功能
开始进入操作界面查询审核信息等待审核?Y审核操作N退出
第 8 页 共 13 页
开始操作界面Y操作要求?选择操作类型设备操作管理N退出
四:软件编码
1.软件系统的编码:
namespace WindowsApplication1 {
public partial class 登录页面 : Form {
public 登录页面() {
InitializeComponent(); }
private void button2_Click(object sender, EventArgs e) {
textBox2.Text = \"\"; textBox1.Text = \"\"; }
private void button1_Click(object sender, EventArgs e) {
if (textBox2.Text != null && textBox1.Text != null && textBox2.Text.Equals(\"admin\")) {
SqlConnection sqlcn = new SqlConnection(); sqlcn.ConnectionString = connectionString;
SqlCommand objcmd = new SqlCommand(\"login\", sqlcn); objcmd.CommandType = CommandType.StoredProcedure;
SqlParameter parname = new SqlParameter(\"@name\", SqlDbType.VarChar, 50);
第 9 页 共 13 页
parname.Value = textBox2.Text; objcmd.Parameters.Add(parname);
SqlParameter parmima = new SqlParameter(\"@pass\", SqlDbType.VarChar, 50); parmima.Value = textBox1.Text; objcmd.Parameters.Add(parmima); objcmd.Connection.Open();
SqlDataReader dr = objcmd.ExecuteReader(); if (dr.Read()) {
Hide(); f.Show(); } else {
MessageBox.Show(\"用户名或密码输入错误!\"); }
dr.Close();
objcmd.Connection.Close(); }
else if (textBox2.Text != null && textBox1.Text != null) {
SqlConnection sqlcn = new SqlConnection(); sqlcn.ConnectionString = connectionString;
SqlCommand objcmd = new SqlCommand(\"login\", sqlcn); objcmd.CommandType = CommandType.StoredProcedure;
SqlParameter parname = new SqlParameter(\"@name\", SqlDbType.VarChar, 50); parname.Value = textBox2.Text; //Console.WriteLine(name1); objcmd.Parameters.Add(parname);
SqlParameter parmima = new SqlParameter(\"@pass\", SqlDbType.VarChar, 50); parmima.Value = textBox1.Text; objcmd.Parameters.Add(parmima); objcmd.Connection.Open();
SqlDataReader dr = objcmd.ExecuteReader(); if (dr.Read()) {
Hide();
主菜单图 f = new 主菜单图(); f.Show(); }
dr.Close();
objcmd.Connection.Close(); }
第 10 页 共 13 页
else {
MessageBox.Show(\"用户名或密码不能为空!\"); } } } }
namespace WindowsApplication1 {
public partial class 主菜单图 : Form {
public 主菜单图() {
InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) {
this.Hide();
设备查询 a = new 设备查询(); a.Show(); }
private void button2_Click(object sender, EventArgs e) {
this.Hide();
设备申请 a = new 设备申请(); a.Show(); }
private void button6_Click(object sender, EventArgs e) {
this.Hide();
维修记录 a = new 维修记录(); a.Show(); } } }
namespace WindowsApplication1 {
public partial class 维修查询 : Form {
public 维修查询()
第 11 页 共 13 页
{
InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) {
SqlParameter parkcmc = new SqlParameter(\"@kcmc\", SqlDbType.VarChar, 50); parkcmc.Value = t1.Text; objcmd.Parameters.Add(parkcmc);
SqlParameter parcbs= new SqlParameter(\"@cbs\", SqlDbType.VarChar, 50); parcbs.Value = t2.Text; objcmd.Parameters.Add(parcbs);
SqlParameter parjcdm = new SqlParameter(\"@jcdm\", SqlDbType.VarChar, 50); parjcdm.Value = t3.Text; } } } }
objcmd1.Parameters.Add(parzy);
SqlDataReader sd = objcmd1.ExecuteReader(); sd.Close();
objcmd1.Connection.Close(); MessageBox.Show(\"录入成功!\"); t1.Text = \"\"; t2.Text = \"\";
t3.Text = \"\";
this.Hide();
主菜单图 a = new 主菜单图(); a.Show(); } } }
2. 主要功能运行界面
五: 实验小结
1、实验内容总结
实验开发的是一个实验室设备管理系统,系统开发用到了数据库和Microsoft Visual Studio 2008开发工具。要求实现对设备的查询。维修,报废,申请购买的功能。同时用户可以进行一定的操作。上级领导对申请可以进行批准等操作。
经过几周的开发,实现了几大功能,同时 也具有许多的不足,在数据库的应用上有待提高。系统分成三个模块:系统功能模块,设备管理员操作模块和上级领导模块,每个模块再细分成具体的操作模块。设计系统E-R图建立关系数据表。软件编码阶段设计系统功能界面,并添加相应的代码,与数据库相连接,实现系统功能。软件测试与调试时,将要测试
第 12 页 共 13 页
的数据输入到相应的功能界面,测试本系统能否正常实现相应的功能,并及时进行相应的改进。
2、心得体会
通过实验对软件工程真门课有了更深入的了解,对软件开发的流程更加的熟悉。本系统是一个管理实验室设备的系统,比较简单,对开发水平要求不高。通过对本实验室设备管理系统的设计,使我认识到软件开发的过程实际上就是描述现实世界的过程。而由现实世界向软件模型的转化过程是其中最核心的过程。在课程设计的过程中我们遇到了许多问题,如在需求分析阶段不能完全正确的把握住系统的功能描述,设计数据流图时出现了很大的问题,在与同学讨论过程中,解决了这些问题。
本次实验是一个很好的实践过程,不仅熟悉了软件开发的流程,也对自己的开发水平有一个了解,找到了自己的不足,为以后的提高打下了基础。让我从整体的程序开发到具体软件的设计都有了一个全面的掌握,为我即将从事的工作打下了一个坚实的基础!该系统还有许多不尽人意的地方,用户界面设计不够美观,在真正实现数据库时候为了读取与写入方便将类型全部设为varchar型等等,由于时间的仓促和能力限制这些都有待进一步改善。但本次实验提高了我实际操作能力,从以前的理论上升到实践,从感性认识上升到理性认识,真正做到学有所用。
实验让我知道只有通过自己的实践才能找到自己的不足,才能更好的提高自己,开发不是一朝一夕的事情,是一个积累的过程,只有不断的努力实践,才能真正的提高自己。
第 13 页 共 13 页
因篇幅问题不能全部显示,请点此查看更多更全内容