【问题标题】:event driven simulation with objects事件驱动的对象模拟
【发布时间】:2010-08-30 09:23:41
【问题描述】:

我正在编写一个事件驱动的模拟程序。我有 3 个继承 1 个基类的子类。我需要随机生成这三个,每个子类都会经历不同的事件路径(抱歉有点难以描述我的意思),我举个例子:

假设我们在商场有一个停车场模拟,我们有基类 Vehicle,以及子类 Car、Motorbike、TruckContainer。汽车和摩托车只是要停放一段时间(随机)然后离开,而卡车集装箱只需要停放卸货和离开,集装箱的数量将决定卡车停放多长时间。

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

谢谢

【问题讨论】:

  • 不清楚您在寻求什么帮助。你能澄清一下吗?

标签: c++ events inheritance object simulation


【解决方案1】:

这可能会把你带到那里

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();
   }
 ........
 }

【讨论】:

  • 我不确定 mapOfFreq 和 mapOfCreatedTime 是什么,它们代表 int 吗?还是时间?还是??
  • @chandra: mapOfFreq 和 mapOfCreatedTime 可以是 map
【解决方案2】:

据我所知,您需要一个随机数生成器,范围在(例如您的汽车等级)5-10、1-2(卡车)和 1-3(自行车)...

您可以使用伪随机数生成器 rand()...

你的车:

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

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

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

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2016-10-05
    • 1970-01-01
    相关资源
    最近更新 更多