Добро времени суток!
Изучаю язык С++ в университете, нам задали сделать симулятор нахождения оптимального размера Автостоянки-обоймы. Цель: Вам нужно написать программу, чтобы найти оптимальный размер стек-гаража и имитация действий.
Программа содержит следующие классы:
• Модель – указатель на строку.
• 4-хзначный уникальный номер –const
В дополнение к этому свойство, содержащее запись времени входа автомобиля в гараж. Реализованы следующие функции:
• Констрактор
• Деконстрактор
Вы можете добавить дополнительные функции по мере необходимости.
• Констрактор
• Дестрактор
• Push
• Pop
• Size – кол-во занятых мест
• isEmpty
• isFull
Вы можете добавить дополнительные функции по мере необходимости.
Основная программа Выполнение симуляции - день для парковки размеры: 6, 8, 10, 12, с тем чтобы найти оптимальный размер.
• Оптимальный размер это когда в среднем за 10 симуляций кол-во уехавших машин из-за нехватки месте не превышает 5 машин.
Одна итерация:
• Получает размер стека.
• Цикл на протяжении всего времени деятельности парковки(с 8 до 14) (в минутах), и будет разыгрываться время прибытия и выхода автомобилей.
• При вхождении автомобиля на парковку, будет разыграна его марка и его уникальный номер.
• При удалении машины из парковки, будет разыграна случайно стоящая машина на парковке, если машина стоит глубоко внутри, то сначала выедут все впереди стоящие, а после выхода нужной машины вернутся в том же порядке в каком были.
К преподу обратиться не могу, так как он сейчас бастует и не знаю, когда вернется. Вот и пишу сюда.
Определить классы можно так:
using Minutes = unsigned;
class Car {
std::string* ps;
const std::array<int, 4> n;
public:
Car(const std::string& model, const std::array<int, 4>& number) : ps(new string(model)), n(number) {}
~Car() { delete ps; }
};
class Parking {
const unsigned max_size;
std::stack<Car>* pc;
public:
Parking(unsigned places) : max_size(places), pc(new stack<Car>()) {}
~Parking() { delete pc; }
void push(const Car& c) { return pc->push(c); }
void pop() { return pc->pop(); }
unsigned Size() const { return pc->size(); }
bool isEmpty() const { return pc->empty(); }
bool isFull() const { return pc->size() == max_size; }
};
В стек ложится в конец и удаляется с конца, как требует ваша задача. Теперь подумайте сами как написать симулятор и какие дополнительные функции понадобятся в классах
Сборка персонального компьютера от Artline: умный выбор для современных пользователей