实验室开放管理平台的设计与开发Word文档下载推荐.doc
《实验室开放管理平台的设计与开发Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《实验室开放管理平台的设计与开发Word文档下载推荐.doc(12页珍藏版)》请在冰豆网上搜索。
(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
机房号
10
周次
星期
节次
表2:
登记表
学号
16
非空
14
登记时间
20
表3:
课程表
主键
课名
30
教师
表4:
学生信息表
姓名
性别
6
学院
28
班级
13
联系电话
六、功能模块设计
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;
GetLocalTime(mytime);
//获取当前系统时间
casemytime.wDayOfWeekof//转换成星期几的格式
0:
Result:
='
星期日'
1:
星期一'
2:
星期二'
3:
星期三'
4:
星期四'
5:
星期五'
6:
星期六'
(3)、自动安排当前时间的课程节次
定义一个函数来自动安排当前时间所处在第几节课,一天安排六节课,程序如下:
functionjie:
t:
string;
m:
integer;
=formatdateTime('
hh'
Now());
//获取当前时间的小时
=strtoint(t);
//把时间转换为整形
casemof //以当前的时间值来获得节次
8,9:
第一节'
10,11:
第二节'
12,13:
中午'
14,15:
第三节'
16,17:
第四节'
18,19,20,21:
晚上'
(4)、自动把登记数据录入数据库
利用edit组件的OnKeyPress属性来实现,因为扫描枪扫描到的数据中自动带有一个回车键的作用,所以利用edit组件的OnKeyPress属性来实现当获得一个回车键是就执行程序,并把当前记录的信息和本节课记录的所有信息分别显示出来,部分程序如下:
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
NULL'
//如果本节课没有安排有实验课就记录为NULL
insertinto登记表values('
+trim(edit1.Text)+'
'
+trim(str1)+'
+trim(time)+'
+trim(combobox2.Text)+'
)'
execsql;
sql.Clear;
select学号,课号,机房号,星期,登记时间from登记表where学号='
and机房号='
+trim(combobox1.Text)+'
and周次='
and登记时间='
edit1.Text:
edit1.SetFocus;
2、登记信息管理模块
图4登记信息管理图
本模块是查询和清除登录信息的,程序如下:
if(combobox1.Text<
)and(combobox2.Text<
)and(combobox3.Text<
)and(combobox4.Text<
)then
select学号,机房号,课号,周次,星期,节次from登记表where机房号='
and周次='
and星期='
+trim(combobox3.Text)+'
+trim(combobox4.Text)+'
if(trim(fieldbyname('
学号'
).asstring)<
)then
begin
ifApplication.MessageBox('
是否要删除这些记录?
删除提示框'
MB_OKCANCEL)=IDOKthen
begin
close;
sql.Clear;
sql.Add('
deletefrom登记表where机房号='
execsql;