Исправить алгоритм, rand. СМО магазина.

Ответить
Suriv
Сообщения: 1
Зарегистрирован: 02 ноя 2008, 22:38

25 апр 2011, 21:40

Доброго времени суток, не подскажите, как поправить кусочек кода. Опишу общую суть этого отрывка программы. Есть магазин работающий от 0 до 240 минут. Приходят покупатели периодичностью от 2 до 5 минут. На обслуживание клиента уходит от 0,5 до 1 минут. Клиенты обслуживаемые вне очереди приходят с периодичностью от 10 до 20 минут. Нужно посчитать количество клиентов за этот период времени. Написал кое-что, но вот не могу понять как вписать в программу клиентов без очереди. Вот этот кусочек кода:
#include <iostream>
#include <ctime>

using namespace std;

int main ()
{
setlocale (0,"");
srand (time(0));

int t = 0; // время работы магазина в минутах
int i = 0; // счетчик клиентов
float obsl = 0; // время обслуживания одного клиента

while (t <= 240)
{
float prom1 = 0; // промежуток времени через сколько придет следующий клиент
prom1 = 2 + (rand() % 4); // генерирует случайное время через сколько минут подойдет новый клиент
t = t + prom1; // к общему времени работы магазина суммирует время ожидания клиента, простой

obsl = 0.5 + (rand() % 3); // генерирует случайное время втечении которого будет обслуживаться клиент
t = t + obsl; // к общему времени работы магазина суммирует время обслуживания клиента


i++; // счетчик посетителей с 00,00 - 04,00
}
cout << "С 00:00-04:00 в магазине было: " << i << " поситителей \n" << endl;

system ("pause");

return 0;
}
azrael
Сообщения: 86
Зарегистрирован: 31 май 2009, 15:30
Контактная информация:

03 май 2011, 15:38

Зачем считать случайное время? Посчитайте минимальное и максимальное возможное количество клиентов. Потом выберите случайное целое число из этого интервала, да и все, вам ведь не надо количество разных типов клиентов считать :)
Ответить