百科知识

电梯模拟程序?(c语言或其他语言的算法思想)电梯模拟--队列

2007-03-22 19:53:38d***
【电梯模拟】——队列、栈 [问题描述] 设计一个电梯模拟系统。这是一个离散的模拟程序,因为电梯系统是乘客和电梯等“活 动体”构成的集合,虽然它们彼此交互作用,但它们的行为是基本独立的。在离散的模拟中, 以模拟时钟决定每个活动体的动作发生的时刻和顺序,系统在某个模拟瞬间处理有待完成 的各种事情,然后把模拟时钟推进到某个动作预定要发生的下一个时刻。 [基本要求] (1)模拟某校五层教学楼的电梯系统。该楼有一个自动电梯,能在每层停留。五个楼层 由下至上依次称为地下层、第一层、第二层、第三层和第四层,其中第一层是大楼的进出层, 即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。 (2)乘客可随机地进出于任何层。对每个人来说,他有一个能容忍的最长等待时间,一 旦等候电梯时间过长,他将放弃。 (3)模拟时钟从o开始.时间单位为o.1秒。人和电梯的各种动作均要耗费一定的时间 单位(简记为t),比如: 有人进出时,电梯每隔40t测试一次,若无人进出,则关门; 关门和开门各需要20t; 每个人进出电梯均需要25t, 如果电梯在某层静止时间超过300t,则驶回1层候命。 (4)按时序显示系统状态的变化过程:发生的全部人和电梯的动作序列 电梯模拟程序?(c语言或其他语言的算法思想)【电梯模拟】——队列、栈[问题描述]设计一个电梯模拟系统。这是一个离散的模拟程序,因为电梯系统是乘客和电梯等“活动体?

最佳回答

  •   朋友你好! main() { int floor;/*存放电梯当前层数。1234和-1为相应的层数,若为0,则是电梯正在运行中(必须记录电梯的状态,否则乘客怎么坐啊)*/ float time_total;/*总时间,为最后printf用。
      我理解的是最后printf出一个类似xy 轴的坐标图,x轴是时间,y轴是电梯和乘客的状态,用文字描述出来*/ int door[5];/*各个楼层是否有人等。程序运行的时候,可以扫描此数组,是否有乘客等电梯*/ float time_dt_run;/*如果电梯在运行,记录电梯运行的时间。
      */ struct per { int floor;/*此人会在哪层等电梯*/ float time;/*此人会在什么时间等电梯*/ }person[10];/*定义有10个人*/ time_total=0。
      0 /*初始化总时间为0*/ while(1)/*一个死循环,扫描楼层状态,确定电梯如何运作,打印单位时间内各对象的状态*/ { for(i=0;i<5;i++) /*看哪层有人等,扫描的时间被忽略不计*/ { if(door[i]==0) continue;  else { /*如果电梯此刻在运行中,*/ /*如果电梯在开关门*/ /*如果电梯在非本垒层等人*/ if(floor!==0) { time_total+=abs(floor-i)*10; for(j=0;j<10;j++) { if(time_total-person[j]。
      time+30   祝您成功!!!。
    2007-04-02 16:59:26
  • 很赞哦! (274)