详细设计说明书
核心计算模块:
该模块共使用2个Ttimer控件,4个TtrackBar控件,8个Tedit控件,7个Tlabel控件,其详细属性设置及说明如下表:
类名
属性
属性值
说明
Ttimer
Name
stakeout
定时调用车辆计算函数和红灯时间推测函数来不断更新车辆数和计算下一次时间
Interval
100
Enabled
False
Ttimer
Name
cross
控制红绿灯时间的显示,定时调用交通灯转换函数,对交通灯红绿灯的亮灭进行控制
Interval
1000
每1秒发生一次操作
Enabled
False
TtrackBar
Name
north
控制北面来车的车流量
Max
50
车流量范围为0-5,划分为50等份
TtrackBar
Name
south
控制南面来车的车流量
Max
50
TtrackBar
Name
West
控制西面来车的车流量
Max
50
TtrackBar
Name
East
控制东面来车的车流量
Max
50
Tlabel
Caption
北
Tlabel
Caption
南
Tlabel
Caption
西
Tlabel
Caption
东
Tlabel
Caption
单位:辆/秒
Tlabel
Name
tiemRemain
Caption
(置空)
置空Caption属性,用于动态显示红灯时间
Tlabel
Name
warning
Caption
(置空)
置空Caption属性,用于在交通运行中显示道路交通状态
Tedit
Name
showNorth
显示北面的车流量
Text
0
初始车流量为零
Tedit
Name
showSouth
显示南面的车流量
Text
0
Tedit
Name
showWest
显示西面的车流量
Text
0
Tedit
Name
showEast
显示东面的车流量
Text
0
Tedit
Name
NNum
显示北面路口的车辆数
Text
0
初始车辆数为零
Tedit
Name
SNum
显示南面路口的车辆数
Text
0
Tedit
Name
WNum
显示西面路口的车辆数
Text
0
Tedit
Name
ENum
显示东面路口的车辆数
Text
0
TImage
Picture
(TIcon)
TImage
Picture
(TIcon)
态
该模块又可大致细分为四个小模块:增加车辆数模块、减少车辆数模块、红灯时间推测模块、交通灯状态转换模块。
增加车辆数模块:根据当前车流量来分别计算各方向在十字路口前有多少辆车停留。该模块主要是通过一个for循环和两个case语句来不断计算车辆数,并同时更新NSum,SSum,WSum,ESum这四个变量和NNum,SNum,WNum,ENum这四个Tedit控件的Text属性中的值,其中NSum,SSum,WSum,ESum这四个变量为全局变量,在其他的模块中也有被调用。
Times=4
Times=3
Times=2
Times=1
计算WSum和
计算SSum和
计算NSum和
计算ESum和
for times:=1 to 4 do
其代码段如下:
procedure AddCar();
var
times:integer;
x,sum,number:real; //x为车流量,sum为车辆数
begin
for times:=1 to 4 do //循环四次,分别计算四个路口的车辆数
begin
case times of //根据tiems值的不同,分别为x,sum赋值
1: begin
x:=strtofloat();
sum:=NSum;
end;
2: begin
x:=strtofloat();
sum:=SSum;
end;
3: begin
x:=strtofloat();
sum:=WSum;
end;
4: begin
x:=strtofloat(
详细设计说明书 来自淘豆网m.daumloan.com转载请标明出处.