实验室开放管理平台的设计与开发.docx
《实验室开放管理平台的设计与开发.docx》由会员分享,可在线阅读,更多相关《实验室开放管理平台的设计与开发.docx(15页珍藏版)》请在冰豆网上搜索。
实验室开放管理平台的设计与开发
创新性实验设计报告
题目:
实验室开放管理平台的设计与开发
院别:
数学与计算科学学院
专业:
信息与计算科学
日期:
摘要
实验室管理系统为实验室管理员提供方便可靠的平台和快捷的管理工具,其开发内容主要包括后台数据库的建立和维护以及前端实验室平台的管理两个方面。
利用Delphi7.0软件及其提供的各种面向对象的开发工具,建立使用简单、方便、易于管理、功能完备,易使用的实验室平台。
本报告介绍该系统的管理模块,实验室各类信息的管理模块。
该系统界面友好、程序设计风格简单,使用起来美观大方、方便易用。
尤其是系统中组件的应用,使得系统简单化,让管理员通过输入自己想要了解信息来了解情况,极大的减轻工作人员的工作量,并且快速、准确等优点取代人工操作,提高了实验室管理工作效率。
关键词:
Delphi7.0;数据库;实验室管理系统
实验室管理系统
一、实验目的
(1)了解外部设备在程序开发过程中的应用;
(2)学习用高级程序语言实现实验室的开放管理。
二、实验内容
(1)掌握一种高级计算机程序语言;
(2)研究该程序语言的编程接口;
(3)研究在计算机语言中如何结合第三方外设进行程序设计;
(4)画出相关程序设计与开发的应用效果图。
三、实验仪器
微型计算机,其配置为:
CPU:
intelcore2DuoT6670,2.2GHZ
内存:
1G
硬盘:
320G
操作系统为:
MicrosoftWindowsXPProfessional,其上所安装的相关软件有:
BorlandDelphi7.0,MicrosoftSQLserver2005
实验用编程语言:
T_SQL
编程软件:
Dellphi7.0
四、实验原理
通过扫描器、扫描仪等输入设备扫描到的信息自动录入并保存到数据库中并且扫描时自动获取主机的系统时间,并自动存入数据库中。
开发一个实验室开发管理平台连接到数据库,通过扫描器自动登记学生实验信息,还可以对学生信息进行查询、修改、删除、录入等功能。
五、实验步骤
1、数据库设计
E-R图
图1系统E-R图
2、实验室管理系统功能模块结构图(图2)
图2功能结构图
3、设计表
根据E-R图得出,在数据库中创建的表格如下:
表1:
课程安排表
列名
数据类型
长度
描述
课号
char
15
机房号
char
10
周次
char
10
星期
char
15
节次
char
15
表2:
登记表
列名
数据类型
长度
描述
学号
char
16
非空
机房号
char
14
课号
char
14
登记时间
char
20
周次
char
15
星期
char
15
节次
char
15
表3:
课程表
列名
数据类型
长度
描述
课号
char
15
主键
课名
char
30
教师
char
15
表4:
学生信息表
列名
数据类型
长度
描述
学号
char
15
主键
姓名
char
14
非空
性别
char
6
非空
学院
char
28
班级
char
13
联系电话
char
15
六、功能模块设计
1、实验课学生登记模块
图3学生登记图
(1)、把系统时间显示在程序面板上
用now函数来获取系统时间,并用TTimer组件
来将系统时间显示在面板上,程序如下:
procedureTForm1.Timer1Timer(Sender:
TObject);//利用TTimer来控制定时输出
begin
label4.Caption:
=datetostr(now)+''+week+''+timetostr(now)+'';
//以指定的时间格式把时间输出在label4上
end;
(2)利用当前系统时间来计算出当前的星期:
定义一个函数,使用获取的当前系统时间来计算出当前的星期,程序如下:
functionweek:
string;
var
mytime:
SYSTEMTIME;
begin
GetLocalTime(mytime);//获取当前系统时间
casemytime.wDayOfWeekof//转换成星期几的格式
0:
Result:
='星期日';
1:
Result:
='星期一';
2:
Result:
='星期二';
3:
Result:
='星期三';
4:
Result:
='星期四';
5:
Result:
='星期五';
6:
Result:
='星期六';
end;
end;
(3)、自动安排当前时间的课程节次
定义一个函数来自动安排当前时间所处在第几节课,一天安排六节课,程序如下:
functionjie:
string;
var
t:
string;
m:
integer;
begin
t:
=formatdateTime('hh',Now());//获取当前时间的小时
m:
=strtoint(t);//把时间转换为整形
casemof//以当前的时间值来获得节次
8,9:
Result:
='第一节';
10,11:
Result:
='第二节';
12,13:
Result:
='中午';
14,15:
Result:
='第三节';
16,17:
Result:
='第四节';
18,19,20,21:
Result:
='晚上';
end;
end;
(4)、自动把登记数据录入数据库
利用edit组件的OnKeyPress属性来实现,因为扫描枪扫描到的数据中自动带有一个回车键的作用,所以利用edit组件的OnKeyPress属性来实现当获得一个回车键是就执行程序,并把当前记录的信息和本节课记录的所有信息分别显示出来,部分程序如下:
begin
iford(key)=13then//回车键的键号为13
begin
if(edit1.Text<>'')and(combobox1.Text<>'')and(combobox2.Text<>'')then
begin
time:
=timetostr(now);
withadoquery1do
Begin
close;
sql.clear;
sql.Add('select课号from课程安排表where机房号='''+trim(combobox1.text)+'''and周次='''+trim(combobox2.text)+'''and星期='''+trim(week)+'''and节次='''+trim(jie)+'''');
open;
str1:
=trim(fieldbyname('课号').asstring);//查询获取当前的实验课课号
end;
ifstr1=''then
begin
str1:
='NULL';//如果本节课没有安排有实验课就记录为NULL
end;
withadoquery1do
Begin
close;
sql.clear;
sql.Add('insertinto登记表values('''+trim(edit1.Text)+''','''+trim(combobox1.text)+''','''+trim(str1)+''','''+trim(time)+''','''+trim(combobox2.Text)+''','''+trim(week)+''','''+trim(jie)+''')');
execsql;
close;
sql.Clear;
sql.Add('select学号,课号,机房号,星期,登记时间from登记表where学号='''+trim(edit1.Text)+'''and机房号='''+trim(combobox1.Text)+'''and周次='''+trim(combobox2.Text)+'''and星期='''+trim(week)+'''and登记时间='''+trim(time)+'''');
open;
end;
edit1.Text:
='';
edit1.SetFocus;
2、登记信息管理模块
图4登记信息管理图
本模块是查询和清除登录信息的,程序如下:
if(combobox1.Text<>'')and(combobox2.Text<>'')and(combobox3.Text<>'')and(combobox4.Text<>'')then
begin
close;
sql.Clear;
sql.Add('select学号,机房号,课号,周次,星期,节次from登记表where机房号='''+trim(combobox1.Text)+'''and周次='''+trim(combobox2.Text)+'''and星期='''+trim(combobox3.Text)+'''and节次='''+trim(combobox4.Text)+'''');
open;
if(trim(fieldbyname('学号').asstring)<>'')then
begin
ifApplication.MessageBox('是否要删除这些记录?
','删除提示框',MB_OKCANCEL)=IDOKthen
begin
close;
sql.Clear;
sql.Add('deletefrom登记表where机房号='''+trim(combobox1.Text)+'''and周次='''+trim(combobox2.Text)+'''and星期='''+trim(combobox3.Text)+'''and节次='''+trim(combobox4.Text)+'''');
execsql;
close;
sql.Clear;
sql.Add('select学号,机房号,课号,周次,星期,节次from登记表where机房号='''+trim(combobox1.Text)+'''and周次='''+trim(combobox2.Text)+'''and星期='''+trim(combobox3.Text)+'''and节次='''+trim(combobox4.Text)+'''');
open;
showmessage('删除成功');
end;
end;
end
else
3、学生信息管理模块
图5学生信息管理图
查询语句如下:
ifedit1.Text<>''then
begin
withadoquery1do
begin
close;
sql.Clear;
sql.Add('select*from学生信息表where学号='''+trim(edit1.Text)+'''');
open;
end;
end
4、课程信息管理模块
图6课程信息管理图
七、测试
1、初始界面模块测试
测试数据
机房号=06406,周次=第三周,学号=0900710309
操作步骤
操作描述
数据
期望结果
1
输入机房号,周次,学号
机房号=06406,周次=第三周,学号=0900710309
顺利出入
表5:
初始界面模块测试
页面如图7、图8所示:
图7测试效果图
图8测试效果图
2、登录信息管理测试
测试数据
学号=0900710310,周次=第三周,机房号=06406
操作步骤
操作描述
数据
期望结果
实际结果
1
点击登录信息管理,输入“学号=0900710310”
学号=0900710310
查询数据库中已有登记的学生
符合
2
在清除登录信息,输入“机房号=06406,周次=第三周”
机房号=06406,周次=第三周
删除数据库中相对应记录
符合
表6信息管理测试表
页面如图9、图10、图11所示:
图9测试效果图
图10测试效果图
图11测试效果图
3、学生信息管理测试
测试数据
学号=0900710310,姓名=郑宇霄……
操作步骤
操作描述
数据
期望结果
实际结果
1
点击学生信息管理,输入“学号=0900710310,姓名=郑宇霄……”
学号=0900710310,姓名=郑宇霄
录入、查询、删除信息
符合
表7:
学生信息管理测试表
测试页面如图12所示:
图12测试效果图
课程信息管理、实验课安排与学生信息管理类适,了其他信息的使用通过测试并没有出现问题。
在这里就不在一一列举。
八、实验总结
通过本次创新性实验,建立了同学间团队合作的意识,认识到团队合作的重要性,并且动手能力得到了锻炼,有了很大的提高,巩固了自己的知识,做到了学有所用。
通过本次创新性实验,解决了很多困难,在解决困难的同时,我们的编程能力以及解决实际问题的能力都有了很大的提高,为以后的开发项目积累了很多的经验。
而且使我们意识到我们的项目开发水平还不够,需要提高。
要做好一个实验项目确实不容易,不仅需要掌握编程语言,而且还要完成项目的测试、实施、运行、维护以保证其安全性与可用性。
在开发项目的过程中,体验到了学习的乐趣,增强了我们学习的积极性。
希望在以后的学习生活中可以学到更多更好的知识,掌握更多的技能!
九、参考文献
[1]童爱红,张琦,胡光兵.Delphi7应用教程[M].北京:
清华大学出版社,2004.
[2]王珊,萨师煊.数据库系统概论[M].北京:
高等教育出版社,2006.
[3]宋坤,邹天思.Delphi数据库系统开发完全手册[M].北京:
人民邮电出版社,2003.