(一)单代号搭接网络时间参数的计算与关键线路的确定
一、 上机目的:
1、 理解、掌握单代号搭接网络在计算机中的存贮方法;
2、 掌握计算单代号搭接网络时间参数的算法思想;
3、 学会编制与调试较复杂的应用程序。
二、上机内容与步骤:
长永高速公路第九标段某装配式砼板桥网络图
其中:D1=0;D2=17;D3=18;D4=1;D5=3;D6=4;D7=1;D8=3;D9=2;D10=2;D11=18;D12=17;D13=28;D14=2;D15=3;D16=0。
网络图另给
上机步骤:
1、建立工作关系数据(D1KN.DBF)、工作资源消耗数据库(D2KN.DBF)及工作时间参数输出结果数据库文件(D3KN.DBF);
2、编制最早开始时间与最早完成时间计算程序;
3、编制最迟开始时间与最迟完成时间计算程序;
4、编制确定关键线路的程序。
三、上机要求:
1、认真复习工程进度管理相关知识;
2、在理解网络图的存贮方法及时间参数计算的算法思想的前提下编制好程序步骤,准备好数据;
3、按步骤建立数据库、输入程序、调试通过并与手算结果比较,直至得到正确结果;
最早开始与最早结束时间的计算
算法步骤:
step1:输入已建立的相关数据库文件名称(D1KN、D2KN、D3KN);
step2:为每个数据库开辟工作区;
step3:输入开始工作的最早开始时间,并存入变量ES中;
step4:第一个节点,最早开始时间=最早结束时间=ES;
step5:令N1=2;
step6:对于第N1个节点,判断N1是否超过终节点号?是,则转step12;否,则从D2KN中提取节点
N1的持续时间,存入变量D2中;
step7:使D1KN数据库的记录指针指向其首记录;
step8:判断D1KN的记录指针是否指向其结束标志?是,则转step10;否,再判断当前记录的终点号是否等于N1?否,则转step9;是,则找到N1的紧前节点,并从D3KN中提取N1的紧前节点的最早开始时间和最早结束时间,存于ES、EF中,计算ES3=max{ES+STS,EF+FTS},并将ES3与前一次计算的结果相比较,大者存入ES4中;
step9:下移D1KN库中的记录指针,转step8;
step10:N1号节点的最早开始时间ES=ES4,而最早结束时间EF=ES+D2,将ES、EF的值存入D3KN数据库中N1
节点对应的“最早开始”、“最早结束”字段中;
step11:N1加1(处理下一个节点),转step6;
step12:结束。
程序设计:
SET TALK OFF
ACCEPT \"请输入工作约束关系数据库文件名称:\" to K1
ACCEPT \"请输入工作资源消耗数据库文件名称:\" to K2
ACCEPT \"请输入工作时间参数输出数据库文件名称:\" to K3
INPUT \"请输入开始工作的最早开始时间:\" to ES
EF=ES
SELE 1
USE &K1
SELE 3
USE &K3
REPL FOR 节点号=1 最早开始 WITH ES,最早结束 WITH EF
SELE 2
USE &K2
GO BOTTOM
I1=节点号
N1=2
DO WHILE N1<=I1
SELE 2
GO N1
D2=持续时间
SELE 1
GO TOP
I2=0
DO WHILE .NOT.EOF()
IF 终点号=N1
IF N1>=3
N2=起点号
SELE 3
GO N2
ES=最早开始
EF=最早结束
SELE 1
ENDIF
ES1=ES+STS
ES2=EF+FTS
I2=I2+1
ES3=MAX(ES1,ES2)
IF I2=1
ES4=ES3
ELSE
IF ES3>ES4
ES4=ES3
ENDIF
ENDIF
ENDIF
SKIP
ENDDO
ES=ES4
EF=ES+D2
SELE 3
GO N1
REPLACE 最早开始 WITH ES,最早结束 WITH EF
N1=N1+1
ENDDO
SET TALK ON
最迟开始与最迟结束时间的计算
算法步骤:
step1:是否规定网络图的最迟结束时间(即是否规定工期);是,则输入数据,且存入变量LF中,同时有LS=LF;否,则LF=EF,LS=ES;
step2:将终节点的LS、LF值存入D3KN数据库中对应节点的“最迟开始”、“最迟结束”字段中;
step3:令N1=终节点号-1;
step4:对于第N1个节点,判断N1是否大于、等于1?否,则转step10;是,则从D2KN中提取节点N1的持续时间,存入变量D2中;
step5:使D1KN数据库的记录指针指向其首记录;
step6:判断D1KN的记录指针是否指向其结束标志?是,则转step8;否,再判断当前记录的起点号是否等于N1?否,则转step7;是,则找到N1的紧后节点,并从D3KN中提取N1的紧后节点的最迟开始时间和最迟结束时间,存于LS、LF中,计算LF3=min{LS-FTS,LS-STS+D2},并将LF3与前一次计算的结果相比较,小者存入LF4中;
step7:下移D1KN库中的记录指针,转step6;
step8:N1号节点的最迟结束时间LF=LF4,而最迟开始时间LS=LF-D2,将LS、LF的值存入D3KN数据库中N1节点
对应的“最迟开始”、“最迟结束”字段中;
step9:N1减1(处理下一个节点),转step4;
step10:结束;
step11:总时差=最迟结束-最早结束。
关键线路确定
根据关键线路的定义:网络图中总时差为零的工作连起来所形成的线路就是关键线路,同时根据网络图中节点编号的规则及D3KN数据库的结果,对于网络图中仅有一条关键线路的情况,可以利用数组来存放关键线路上的节点号,再依次输出即可。
因篇幅问题不能全部显示,请点此查看更多更全内容