资源描述
实验室设备管理系统的设计与实现123
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
课程设计报告
实验室设备管理系统的设计与实现
课 程 《数据库原理及应用》
班 级
姓 名
学 号
指导教师
时间:2012年5月21日 至2012年5月25日
指导教师对课程设计(论文)的评语(工作态度、任务完成情况、能力水平、设计说明书(论文)的撰写和图纸质量等):
成绩
指导教师签字 年 月 日
目 录
第一章 开发背景 4
第二章 功能描述 5
第三章 业务流程分析 6
第四章 数据流程分析 7
4。1数据流程图 7
4。2数据字典 7
第五章 概念模型设计 9
第六章 逻辑模型设计和优化 11
第七章 物理设计和实施 12
第八章 系统测试 14
第九章 课程设计心得体会 21
参考文献 22
25
第一章 开发背景
现今实验室管理一般都以办公人员进行批次记录,其的繁索给具有强烈时间观念的办公人员带来了诸多不便,实验室设备管理缺少一种完善的设备管理软件,为了对设备基本情况管理方便,开发人员完成了全面的调查与分析,同时与目标用户进行了多次深入沟通,并在次基础上着手开发《实验室管理系统》软件。
通过课程设计,让学生能够全面了解数据库应用系统的整个开发过程,验证课堂教学中的理论,掌握数据库系统的基本概念,基本原理及应用技术,掌握SQL语言,真正实现实践检真理。
信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。实验室设备管理迫切需要与计算机联系,不仅可以减轻办公人员的工作同时更能让实验室设备系统管理。计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。为了适应现代社会人们高度强烈的时间观念,实验室设备管理系统软件将会为实验室设备管理带来了极大的方便.
第二章 功能描述
经过调研及分析,实验室设备管理系统主要完成以下功能:
(1)设备入库信息管理
主要是管理员对新增加的设备进行登记,包括编号、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等。
(2)设备运行状况统计
可按照设备名称、机房名称以及日期等统计实验室设备运行状况。该功能主要是为了使用户能够实时掌握实验室设备的运行状况,所做的主要操作就是查询和统计,所以数据以只读形式出现。
(3)报修设备管理
对于有严重问题(故障)的需要修理的设备,记录修理日期、设备名、修理厂家、修理费、责任人等,随时对设备修理情况进行统计,并能够按类别、修理厂家和修理日期查询修理情况。
(4)报废设备管理
对已经彻底损坏的设备作报废处理,详细记录报废设备的有关信息,并随时对设备报废情况进行统计和查询,要求能够按类别和时间段(年、月或季度)查询。
第三章 业务流程分析
业务流程图是为了让我们一目了然的看清数据库的运行过程,让设计管理员知道数据库的结构,加以分析已熟悉它的工作过程。并快速建立数据库,数据库设计人员在设计数据库时的模型图.学校门诊管理系统业务流程图如图3-1:
报废信息
设备信息
类别/时间段
反馈
管理员
P 2.1
用户登录
P 2.2
设备查询
P 2.5
设备审核
P 2.6
报废设备处理
用户
采购部
设备使用状况
图3-1 实验设备管理系统业务流程图
四章 数据流程分析
4.1数据流程图
数据流程图是为了让我们一目了然的看清数据库中的数据的运行过程,让设计管理员知道数据库的数据流向,加以分析已熟悉它的工作过程。并快速建立数据库,数据库设计人员在设计数据库时的模型图.
实验室设备管理系统
设备查询管理
现有设备管理
设备购进管理
设备使用管理
按类别查询
按时间段查询
图4—1 实验设备管理数据流程图
4.2数据字典
(1)数据流的描述
数据流编号: D001
数据流名称: 设备入库信息
简述:所要入库设备的信息
数据流来源:管理员
数据流去向:设备入库管理
数据流组成:编号+设备名+型号+规格等
数据流量:1000/天
高峰流量:3000/天
数据流编号: D002
数据流名称: 设备运行信息
简述:管理员登记设备是否良好运行管理员发现设备受损的信息
数据流来源:设备入库信息
数据流去向:管理员
数据流组成:编号+设备名+机房名等
数据流量:100/天
高峰流量:500/天
数据流编号: D003
数据流名称: 设备彻底受损
简述:管理员发现设备受损的信息
数据流来源:管理员
数据流去向:报修设备管理
数据流组成:编号+日期+设备名+机房名等
数据流量:100/天
高峰流量:400/天
数据流编号: D004
数据流名称: 设备运行状况
简述:管理员发现设备彻底受损的信息
数据流来源:报修设备管理
数据流去向:设备报废信息
数据流组成:日期+设备名+机房名+报废情况等
数据流量:100/天
高峰流量:400/天
(2)处理逻辑的描述
处理逻辑编号:P001
处理逻辑名称:设备入库管理
简述:管理设备入库
输入的数据流:D001设备入库信息
处理描述:根据编号,设备名,型号,规格等信息,进行设备入库管理,管理出设备入库后所要进入的机房名
输出的数据流: D002设备运行信息
处理频率: 500次/天
处理逻辑编号:P002
处理逻辑名称:设备运行状况
简述:记录设备是否良好运行
输入的数据流:D002 设备运行信息
处理描述:根据实验室设备的是否良好运行,将此情况记录下来,管理员进行处理
处理频率: 1000次/天
处理逻辑编号: P003
处理逻辑名称:保修设备管理
简述:设备受损情况
输入的数据流:D003 设备受损
处理描述:管理员检查设备是否受损,若受损则进行报修处理,若彻底受损则进行报废处理
处理频率:100次/天
(3)数据存储的描述
数据存储编号:F001
数据存储名称:设备信息
简述:入库设备的基本信息
数据存储组成: 编号+设备名+型号+规格+单价+数量+购置日期+生产日期+生产家+购买人
关键字:编号,设备名,型号
相关联的处理:P001
数据存储编号:F002
数据存储名称:报修设备信息
简述:受损设备信息登录
数据存储组成:编号+修理日期+设备名+型号+修理厂家+修理费+负责人
关键字:编号,修理日期,修理厂家
相关联的处理:P002,P003
数据存储编号:F003
数据存储名称:报废设备信息
简述:报废设备信息登录
数据存储组成:编号+报废日期+设备名+型号+报废情况+生产厂家
关键字:编号,报废日期
相关联的处理:P002,P003
数据存储编号:F004
数据存储名称:设备运行状况信息
简述:设备某天的运行状况登陆
数据存储组成:设备名+机房号+日期+型号+规格+生产厂家
关键字:设备名,机房号,日期
相关联的处理:P002
(4)外部实体的描述
外部实体编号:S001
外部实体名称:管理员
简 述:管理实验室设备的人
输出的数据流:D001,D003
第五章 概念模型设计
用户的需求具体体现在对各种信息的提供、保存、更新和查询,这就要求数据库能充分满足各种数据的输出和输入。通过对上述系统功能的分析,针对实验室设备管理要求,设计如下所示的数据项:
(1)实验室设备信息
包括类别、型号、单价、数量、购买日期、责任人、生产厂家、生产厂商、购买人保修时间.
图5-1实验设备实体E-R图
(2)设备运行状况
包括机房名称、日期、运行。
设备名
机房名
日期
是否运行行
图5-2设备运行实体E—R图
(3)设备保修状况
保修日期、修理厂家、保修费、责任人、日期。
设备名
修理厂家
保修费
保修日期
责任人
日期
图5—3 设备保修实体E—R图
(4)设备报废状况
包括设备、生产厂家、报废日期、责任人、生产日期。
设备名
生产厂家
报废日期
责任人
生产日期
图5—4 设备报废E—R图
第六章 逻辑模型设计和优化
根据实验设备管理系统各实体E-R图写出各信息的情况并根据的需求分析学校门诊管理系统数据库中各个表中的数据结果如下列表所示,每个表格表示在数据库中的一个表的信息。
表—1设备管理表
编号
设备名
型号
规格
单价
数量
购置日期
生产日期
生产厂家
购买人
表—2运行状况表
编号
设备名
型号
修理日期
修理厂家
修理费
负责人
表-3报废信息表
设备名
机房号
日期
型号
规格
生产厂家
运行状况
表-4保修信息表
编号
报废日期
设备号
型号
报废情况
生产厂家
第七章 物理设计和实施
得到系统逻辑模型后,就该进行数据库的物理设计和实施数据库了,物理设计主要是要确定数据库的存储路径、存储结构以及如何建立索引等,可以采用系统的默认设置。数据库实施主要包括在具体的DBMS中创建数据库和表的过程,本设计所选用的DBMS为SQL SERVER2005,有关创建数据库和关系表的SQL语句如下所示:
(1)创建数据库
/*==============================================================*/
/*database Exp */
/*==============================================================*/
create database Exp
(2)创建表
/*==============================================================*/
/* Table: ExpId */
/*==============================================================*/
create table ExpId
(
Expname char(100) not null, /*登录名*/
Exppwd int not null, /*密码*/
)
EXEC sp_addlogin ’1', '123';
EXEC sp_adduser ’1’; /*登录名*/
/*==============================================================*/
/* Table: ExpMg, 设备管理信息表*/
/*==============================================================*/
create table ExpMg (
Exid int not null, /*编号*/
Exname char(100) not null, /*设备名*/
Exmodel char(100) not null, /*型号*/
Exsize int null, /*规格*/
Exprice int null, /*单价*/
Exquantity int null, /*数量*/
Exdate int null, /*生产日期*/
ExsellDate int null, /*购置日期*/
Exseller char(100) null, /*生产厂家*/
Exbuyer char(100) null, /*购买人*/
constraint PK_ExpMg primary key (Exid, EXname, Exmodel) /*主键约束*/
)
/*==============================================================*/
/* Table: ExpSt,运行状况表*/
/*==============================================================*/
create table ExpSt(
Exname char(100) not null, /*设备名*/
Exhouse char(100) not null, /*机房名*/
Extime int not null, /*日期*/
Exmodel char(100) null, /*型号*/
Exsize int null, /*规格*/
Exseller char(100) null, /*生产厂家*/
Excon char(100) null, /*运行情况*/
constraint PK_ExpSt primary key ( EXname,Exhouse, Extime) /*主键约束*/
)
/*==============================================================*/
/* Table: ExpRe,报修信息表*/
/*==============================================================*/
create table ExpRe (
Exid int not null, /*编号*/
Exname char(100) null, /*设备名*/
Exmodel char(100) null, /*型号*/
Exredate int not null, /*修理日期*/
Exreer char(100) not null, /*修理厂家*/
Exrefee int null, /*修理费*/
Expri char(100) null, /*负责人*/
constraint PK_Expre primary key (Exid, Exredate,Exreer) /*主键约束*/
)
/*==============================================================*/
/* Table: ExpSc,报废信息表*/
/*==============================================================*/
create table ExpSc (
Exid int not null, /*编号*/
Exname char(100) null, /*设备名*/
Exmodel char(100) null, /*型号*/
Exscdate int not null, /*报废时间*/
Exsccon char(100) null, /*报废情况*/
Exseller char(100) null, /*生产厂家*/
constraint PK_Expsc primary key (Exid,Exscdate) /*主键约束*/
第八章 系统测试
(1)登录界面
8—1登陆界面
主要代码
private void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text == "”) //判断用户是否输入了用户名
{
MessageBox。Show("用户名不能为空");
}
if (TextBox2。Text == ””)
{
MessageBox。Show(”密码不能为空”); //判断用户是否输入了密码
}
else
{
// if (TextBox1.Text.Trim().ToString() == ”登录名")
//{
string ConStr = "server=。;integrated security=SSPI;database=exp”;
SqlConnection con = new SqlConnection(ConStr);
string SqlStr = "select * from ExpId where Expname='" + TextBox1.Text。Trim () + "' and Exppwd=’” +TextBox2 。Text。Trim () + ”'";
SqlDataAdapter ada = new SqlDataAdapter(SqlStr, con);
DataTable dt = new DataTable();
ada.Fill(dt);
int i = dt.Rows。Count;
if (i > 0)
{
基本查询 = new 基本查询();
。Show();
}
else
{
MessageBox.Show(”用户名或密码不正确,请重新输入!", "信息提示", MessageBoxButtons。OK, MessageBoxIcon.Information);
}
}
}
private void Button2_Click(object sender, EventArgs e)
{
this.Close();
}
(2)查询设备基本信息查询
8-2设备信息查询界面
主要代码
private void 设备报修信息ToolStripMenuItem_Click(object sender, EventArgs e)
{
设备报修信息 = new 设备报修信息();
.Show();
}
private void 设备运行状况ToolStripMenuItem_Click(object sender, EventArgs e)
{
设备运行状况 = new 设备运行状况();
.Show();
}
private void 设备报废信息ToolStripMenuItem_Click(object sender, EventArgs e)
{
设备报废信息= new 设备报废信息();
。Show();
}
private void 添加设备信息ToolStripMenuItem_Click(object sender, EventArgs e)
{
添加设备信息 = new 添加设备信息();
.Show();
}
private void 设备管理ToolStripMenuItem1_Click(object sender, EventArgs e)
{
设备管理 = new 设备管理();
。Show();
}
(3)设备运行状况
8-3设备运行界面
主要代码
private void Button4_Click(object sender, EventArgs e)
{
string ConStr = "server=。;integrated security=SSPI;database=exp";
SqlConnection con = new SqlConnection(ConStr);
string Sqlstr = "select * from ExpSt where Exname like '%” + TextBox1.Text。Trim () + "%’ and Exhouse like '%” + TextBox2.Text。Trim () + ”%’ and Extime like '%” + TextBox9.Text。Trim () + "%'”;
SqlDataAdapter ada = new SqlDataAdapter(Sqlstr, con);
DataSet ds = new DataSet();
ada.Fill(ds, "table");
this。dataGridView1.DataSource = ds.Tables[0]。DefaultView;
Show();
}
(4)设备管理界面
8—4设备管理界面
主要代码
private void 设备管理_Load(object sender, EventArgs e)
{
try
{
string ConStr = "server=.;integrated security=SSPI;database=exp";
SqlConnection con = new SqlConnection(ConStr);
string SqlStr = "select * from ExpMg";
SqlDataAdapter ada = new SqlDataAdapter(SqlStr, con);
DataSet ds = new DataSet();
ada。Fill(ds);
this.dataGridView1。DataSource = ds.Tables[0]。DefaultView;
}
catch
{
return;
}
}
(5)报废信息界面
8-5设备报废界面
主要代码
private void 设备报废信息_Load(object sender, EventArgs e)
{
}
private void Button1_Click(object sender, EventArgs e)
{
string ConStr = "server=.;integrated security=SSPI;database=exp";
SqlConnection con = new SqlConnection(ConStr);
string Sqlstr = ”select * from ExpSc where Exmodel like ’%” + TextBox1。Text.Trim () + "%' and Exscdate like ’%” + TextBox2。Text。Trim () + ”%'";
SqlDataAdapter ada = new SqlDataAdapter(Sqlstr, con);
DataSet ds = new DataSet();
ada。Fill(ds, "table”);
this.dataGridView1.DataSource = ds。Tables[0]。DefaultView;
Show();
}
(6)报修信息界面
8-6设备保修界面
主要代码
private void 设备报修信息_Load(object sender, EventArgs e)
{
}
private void Button1_Click(object sender, EventArgs e)
{
string ConStr = "server=.;integrated security=SSPI;database=exp";
SqlConnection con = new SqlConnection(ConStr);
string Sqlstr = "select * from ExpRe where Exmodel like '%" + TextBox1.Text。Trim () + ”%’"; //and Exredate like ’";// + TextBox2.Text + "%'and Exreer like '” + TextBox3.Text + ” %’”;
SqlDataAdapter ada = new SqlDataAdapter(Sqlstr, con);
DataSet ds = new DataSet();
ada.Fill(ds, "table");
this。dataGridView1.DataSource = ds。Tables[0].DefaultView;
Show();
}
第九章 课程设计心得体会
在这学期的实验中,在杨慧老师的带领下,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅.要面对社会的挑战,只有不断的学习、实践,再学习、再实践。通过此次课程设计,使我更加扎实的掌握了有关数据库方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!
课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识.
在这里要感谢学校学院领导和老师们给我们实际操作的机会和为创造了良好的学习条件。在本次课程设计中,指导老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助。在系统开发过程中牛荣老师给予我们很大的帮助,帮助解决了不少的难点,使得系统能够及时开发完成,还有许多同学同样给与了我不少的帮助,衷心的感谢牛荣老师和同学们的精心指导和帮助。实践是巩固所学知识最好的方法。这次的系统设计使我学到了很多知识和编程技巧.也使我自己的水平提升到了一个新的台阶。再次感谢给予我帮助的老师和同学们。
参考文献
[1]郭江.SQL Server 2005数据库技术与应用。北京:人民邮电出版社 2002
[2] 应宏.数据库原理。重庆:西南师范大学出版社 2001
[3] 黄健全、丁宝康.数据库实用教程.北京:清华大学出版社 2001
[4] 高金兰。数据库原理与SQL Server应用。北京:科学出版社 2002
[5]郑阿奇.SQL Server使用教程[M].第二版.北京:电子工业出版社,2005
[6] 钱学忠。数据库原理及应用。北京:北京邮电大学出版社,2007
[7] 蔡奎春等。Delphi数据库开发实例解析[M].北京:机械工业出版社,2004
[8] 刘斌等。Delphi7数据库高级教程[M].北京:清华大学出版社,2004
[9]谭浩强主编。Visual Basic程序设计(二)教程.清华大学出版社,2002年
[10]柳青等编。 Visual Basic程序设计教程.高等教育出版社,2002年
[11]范立南。SQL Server2000实用教程.北京:清华大学出版社,2004年
[12]孙燕等编。 Visual Basic程序设计。高等教育出版社,2000年
[13]萨师烜.王珊编.数据库系统概论。北京:高等教育出版社,2003年
[14]杨志强。 Visual Basic程序设计教程。北京:高等教育出版社,2003年
展开阅读全文