2010-08-30 3 views
0

Я пишу программу моделирования, управляемую событиями. У меня есть 3 подкласса, которые наследуют 1 базовый класс. Мне нужно сгенерировать эти три случайно, и каждый подкласс будет проходить через различный путь событий (извините, его немного сложно описать, что я имел в виду), плохо приведу пример:управляемый событиями моделирования с объектами

скажем, у нас есть симуляция автостоянки в торговом центре, у нас есть базовый класс Vehicle и подклассы Car, Motorbike, TruckContainer. Автомобиль и мотоцикл просто собираются в течение некоторого времени (случайные) и уезжают, пока TruckContainer необходимо припарковать только для разгрузки и погрузки контейнера и уйти, количество контейнеров будет определять, как долго будет парковаться парк.

Как я могу создать эти 3 объекта в случайном порядке, скажем, что 5-10 автомобилей войдут в автостоянку в течение 1 минуты, 1-3 мотоцикла в 10минут и только 1-2 грузовика в день?

спасибо

+1

Непонятно, с чем вы просите помощи. Вы можете уточнить? – Martin

ответ

0

Это может привести U там

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

im не уверен, что такое mapOfFreq и mapOfCreatedTime, представляют ли они int? или время? или?? –

+0

@chandra: mapOfFreq и mapOfCreatedTime может быть map aeh

0

Так, насколько я понял, вы хотите генератор случайных чисел в пределах (например, вашего класса автомобиля) 5-10, 1 -2 (грузовик) и 1-3 (мотоцикл) ...

Вы можете сделать это, используя ранд псевдо-генератор случайных чисел() ...

для Вашего автомобиля:

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

но не забудьте инициализировать рандов через srand (!) ...

Конечно Вы должны контролировать, когда в интервале времени (например, 10 минут) велосипеды поступят ...

Надеюсь, что это поможет

Смежные вопросы