实验室管理系统.docx
《实验室管理系统.docx》由会员分享,可在线阅读,更多相关《实验室管理系统.docx(12页珍藏版)》请在冰豆网上搜索。
实验室管理系统
《信息系统开发与实践》
课程结课实践作业
项目名称:
实验室管理系统
完成人:
二零一二年十一月十日
一、需求分析
1.1现行数据分析
从实验室管理系统来说,主要是实现实验室的管理人员使用。
该系统的项目主要包括:
实验室管理,设备管理,系统管理,以及课程管理。
实验室管理主要是是实现实验室申请、实验室的开放时间管理、实验室的查询;设备管理主要是实现设备的借出、归还、报废、维修、添加等的管理;系统管理主要是设置用户权限,系统初始化,以及密码的修改等;课程管理包括添加、删除、更新上课班级。
为了系统的安全性,要设置密码和用户权限。
用户凭密码登录,系统查找用户登录表根据设定的相应权限规定用户的操作。
普通用户只可以对现有数据进行查询,管理员可以对系统中的数据进行增、删、查、改操作,从而实现管理流程的电子化。
1.2功能模块设计
根据以上分析可知应设置如下应用管理模块
图1-1功能模块图
二、数据库设计
概念模型设计
实验数据最终需要持久化,记录到数据库系统中,为此,需要专门对数据库进行分析设计。
通过对上述的数据分析结果进一步分析。
首先,给出系统数据库的概念模型,即绘制实体关系图(E-R模型):
图2-1用户实体E-R图
图2-1课程实体E-R图
图2-3实验室设备实体E-R图
图2-4实验室实体E-R图
图2-5总体E-R模型图
依据以上E-R模型图,可转换为以下关系模式(主键用下划线标出)
用户表(用户名,密码,权限)
课程表(课程号,课程名,实验室,班级,教师,时间)
实验室表(实验室编号,实验室名称,负责人,开放时间)
实验设备表(设备编号,设备名称,设备状态,所属实验室)
2.4逻辑模型设计
实验室管理系统采用的是access数据库,建立数据库表,本系统共使用了四张表,分别是用户信息表、课程安排表、实验室开放表和设备表,具体如下:
表2-1用户信息表
字段
数据类型
长度
主键
描述
用户名
文本
8
√
密码
文本
20
权限
文本
4
表2-2课程安排表
字段
数据类型
长度
主键
描述
课程号
文本
10
√
课程名
文本
20
实验室
文本
20
班级
文本
20
时间
文本
20
教师
文本
20
表2-3实验室表
字段
数据类型
长度
主键
描述
实验室编号
文本
10
√
实验室名
文本
20
负责人
文本
20
开放时间
文本
20
表2-8设备表
字段
数据类型
长度
主键
描述
设备编号
文本
10
√
设备名称
文本
20
设备状态
文本
4
所属实验室
文本
20
二、系统设计、关键代码分析
系统页面分析
系统的登录界面如图所示,用户可以凭用户名和密码登陆(数据库中的测试数据位:
用户名123,密码123),若输入的用户名或密码不正确,则不能登录。
登录后,根据数据库表设置的权限,用户做相应的操作。
图3-1登录图
下图为系统的主页面,展示了实验室管理系统所包含的模块和实现的基本功能,用户通过点击不同的功能按钮进入下一级功能,在下一级功能中用户实现基本操作
图3-2主页面功能图
另外系统还设计了系统管理功能页面,实验室管理功能,课程管理功能、设备管理功能等页面。
用户在实验室管理功能界面可实现按实验室名称的查询和按开放时间的查询
图3-2实验室管理功能页面
在设备管界面主要使用户可实现设备的借出、归还、维修(即修改设备状态),设备的报废(即删除此设备的数据),设备添加(及插入设备数据)
图3-2设备管理功能图
3.2相关代码
登录页面代码设计
procedureTForm1.Button1Click(Sender:
TObject);
begin
ifADOTable1.Locate('用户名;密码',VarArrayOf([edit2.Text,edit3.Text]),[])then
begin
form1.Visible:
=false;
messagedlg('登录成功',mtinformation,[mbOK],0);
form2.Show;
form2.Label1.Caption:
=edit2.Text+',欢迎登录实验室管理系统'
end
else
begin
iflogcs>2then
begin
messagedlg('登录失败',mtError,[mbOK],0);
close;
end
else
begin
messagedlg('用户名或密码错误',mtError,[mbOK],0);
logcs:
=logcs+1;
end;
end;
end;
procedureTForm1.FormClick(Sender:
TObject);
begin
logcs:
=1;
edit2.Clear;
edit3.Clear;
end;
procedureTForm1.Button2Click(Sender:
TObject);
begin
edit2.Clear;
edit3.Clear;
end;
procedureTForm1.FormCreate(Sender:
TObject);
begin
edit2.Clear;
edit3.Clear;
end;
主窗体设计代码
procedureTForm2.Button5Click(Sender:
TObject);
begin
form2.Close;
form1.Visible:
=true;
end;
procedureTForm2.Timer1Timer(Sender:
TObject);
begin
StatusBar1.Panels[0].Text:
='当前用户:
'+form1.Edit2.Text;
StatusBar1.Panels[1].Text:
='当前日期:
'+Formatdatetime('YYYY年MM月DD日',Now());
StatusBar1.Panels[2].Text:
='当前时间:
'+Formatdatetime('HH:
MM:
SS',Now());
end;
procedureTForm2.N7Click(Sender:
TObject);
begin
form1.Close;
form2.Close;
end;
procedureTForm2.N5Click(Sender:
TObject);
begin
form7.Show;
end;
procedureTForm2.ToolButton5Click(Sender:
TObject);
begin
form1.Close;
form2.Close;
end;
procedureTForm2.ToolButton4Click(Sender:
TObject);
begin
form7.Show;
end;
procedureTForm2.ToolButton3Click(Sender:
TObject);
begin
form4.Show;
end;
procedureTForm2.ToolButton1Click(Sender:
TObject);
begin
form3.Show;
end;
procedureTForm2.ToolButton2Click(Sender:
TObject);
begin
form5.Show;
end;
总结
转眼之间大学生活已经过了两年多,这两年我们学习了很多计算机方面的理论知识,这学期,学习了Delphi为我提供了一次实践的机会,使得我们把所学的理论知识和实践结合起来。
在实验室管理系统的开发过程中,我对本系统的整体进行了设计,确定了系统应该具备的主要特性和基本功能,明确了系统总体的设计思路。
之后就是对系统进行有效的可行性分析。
在确定了本系统具有较高的可行性后,通过对系统数据库的分析和总体的功能模块的设计,基本明确了本系统要做什么,怎么做。
然后着手于软件代码的实现。
本系统的开发环境主要选择了Delphi。
最后,经测试后本系统具有相对较高的稳定性和实用性,可以满足系上日常实验室管理的基本需求。
对于我一个初学者来说已经是比较的困难了,我几乎每天都带着电脑在自习室边学边做,但由于自己理论知识水平有限,实践知识和设计经验不足,在设计过程中,也存在很多问题。
由于之前的知识掌握的不扎实,虽然很用心的去听同学的讲解,但是还是有很多代码看不懂,在编写过程中也存在许多不细心的地方,犯了一些语言上的小错误。
在模块实现中,课程表的查询是比较简单的一个模块,通过学习相关资料和同学们的指导我很快就能做出来,但在最后实现的时候,程序代码中还是存在一些错误,不过在同学们的帮助下很快就能解决。
在程序设计过程中,也存在比较复杂的模块,例如添加课表模块,更新课表等。
但最后都顺利的完成了。
通过此次课程设计,我分析问题跟解决问题的能力都得到了提高。
对我而言,知识上的收获固然重要,精神上的丰收更加可喜。
相信这必将会给我平淡的人生添上精彩的一笔。
不管辛苦也好,无助也好,这个系统已经完成了,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
很感谢这次带领我的老师和帮助我的同学们,这两周收获的东西真的很多很多。
相信这些知识在以后的学习和工作中对我都有很大的帮助。