436集装箱装运系统仿真源程序.docVIP

  • 7
  • 0
  • 约3.1千字
  • 约 4页
  • 2017-06-08 发布于重庆
  • 举报
436集装箱装运系统仿真源程序

4.3.6 集装箱装运系统仿真源程序 1.变量说明 TS[I]—拖车状态变量,如上所述,拖车共有四种活动,相应地规定拖车状态变量TS[I],I 1,2,3,…,M,它可以取如下值: TS[I] 1,表示装车活动; TS[I] 2,表示重载运行; TS[I] 3,表示卸车装船; TS[I] 4,表示空车返回。 TT[I]—拖车仿真子时钟,给每辆拖车设置了子时钟,存放当前活动完成时刻,以TT[I]表示,I 1,2,3,…,M。 有了TS[I]和TT[I]这两个数组,就可以对仿真过程组织和调度了。 FT[J] —叉车仿真子时钟,对于N台叉车也给出了各自的仿真子时钟,以FT[J]表示,J 1,2,3,…,N。 此外程序中还使用了下面的一些变量: FF—叉车空闲时间; TFW—拖车在叉车前的累计等待时间; PF—码头累计空闲时间; TPW—拖车在码头累计等待时间; PT—码头仿真子时钟; TPW1—拖车在码头当前一次等待时间; M—拖车数目; N—叉车数目; H—拖车周转次数; Q—货运量; TIME—仿真时钟; TW—时间工作单元,存放拖车最小子时钟值; NW—具有最小子时钟值的拖车号。 2.装运系统仿真源程序 #include stdlib.h #include stdio.h #include iostream.h #include time.h #include math.h #include REXP.CPP #include SNORM.CPP float TT[40],FT[40]; float TIME,FF,TFW,PF,TPW,H,Q,TW,PT; int M,N,NW,TS[40]; void P1 ; void P2 ; void P3 ; void P4 ; void main FILE *WJ; int SHIFT,I,J,K; float TMAX,X2,X3; X2 1.32; //装车时间均值 X3 0.27; //装车时间标准差 srand time NULL ; WJ fopen PORT.DAT,r ; I 0; //方案数 while !feof WJ fscanf WJ,%d %d,M,N ; //读入拖车数叉车数 I I + 1; //方案数加一 cout I 情况: 拖车 M 叉车 N \n; //显示方案数、拖车数、叉车数 for SHIFT 1;SHIFT 3;SHIFT++ //班数 cout SHIFT 班生产\n; TIME 0; TMAX 450; PT 0; H 0; Q 0; TPW 0; PF 0; TFW 0; FF 0; for J 1;J N;J++ FT[J] 0; //清叉车子时钟 for J 1;J N;J++ //全部拖车在叉车前等待装车 for K J;K M;K K+N //J为叉车号,K为拖车号 FT[J] FT[J] + SNORM X2,X3 ; //叉车装车时间 TT[K] FT[J]; //拖车装车结束时刻 TS[K] 1; //将拖车置为装车状态 while TIME TMAX //在最大时间范围内循环 TW TT[1]; //第一台拖车子时钟送工作单元 NW 1; //第一台拖车编号送工作单元 for J 2;J M;J++ //找出具有最小子时钟的拖车 if TT[J] TW //如果第J台拖车的子时钟小于工作单元 TW TT[J]; //较小子时钟值送工作单元 NW J; //记下拖车号 TIME TW; //推进仿真钟 switch TS[NW] //根据此拖车状态 case 1 : P1 ; break; //调用相应函数 case 2 : P2 ; break; case 3 : P3 ; break; case 4 : P4 ; break; default : cout error\n; Q H * 2; //计算集装箱数 cout 拖车在叉车前等待 叉车空闲; cout 拖车在码头等待 码头空闲; cout 周转次数 集装箱数 结束时刻 endl; cout TFW FF TPW coin PF ; cout H Q TIME endl; getchar ; //3班循环 //不同方案循环 fclose WJ ; getchar ; void P1 //重运 float X1 0.25; //1/4 0.25 TT[NW]

文档评论(0)

1亿VIP精品文档

相关文档