繁体   English   中英

事件驱动的对象模拟

[英]event driven simulation with objects

我正在编写一个事件驱动的仿真程序。 我有3个继承1个基类的子类。 我需要随机生成这三个,每个子类将经历不同的事件路径(对不起,很难说明我的意思),下面举一个例子:

假设我们在购物中心有一个停车场模拟,我们有基类Vehicle,并且有Car,Motorbike,TruckContainer子类。 汽车和摩托车将停放一段时间(随机)并离开,而TruckContainer只需要停放以便卸载和装载集装箱并离开,则集装箱的数量将决定卡车停放多长时间。

我如何随机创建这3个对象,比如说5-10辆汽车将在1分钟内进入停车场,10分钟内将有1-3个摩托车进入,一天中只有1-2个卡车集装箱?

谢谢

这可能会导致你到那里

VehicleControl::VehicleControl() {
mapOfFreq["Car"] = 6;     // based on 10 per 60 sec
mapOfFreq["Bike"] = 200;
.....
}

vehicle* VehicleControl::getVehicle() {
time_t t = time();
  if (t - mapOfCreatedTime["Car"] > mapOfFreq["Car"]) {
    mapOfCreatedTime["Car"] = t;
    return new Car();
   }
 ........
 }

据我了解,您想要一个随机数生成器,其范围在(例如您的汽车类别)5-10、1-2(卡车)和1-3(自行车)的范围内...

您可以通过使用伪随机数生成器rand()来实现。

为您的车:

rand() % 10 + 5; //from 5 to 10

但是不要忘记通过srand()初始化rand!...

当然,您需要控制自行车到达时间表的时间(例如10分钟)...

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM