/
lyapdy
/
Object_oriented_programming_cpp_318
Обзор
Документация
Войти
/
lyapdy
/
Object_oriented_programming_cpp_318
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
lab6/task_3.h
64 строки
1 KB
danillyapunov
lab6commit
10 янв 2026, 15:23
10 янв 2026, 15:23
b29f1a0
Код
Авторство
О чём код?
#ifndef TASK_3_H #define TASK_3_H #include <string> #include <vector> class Car { public: std::string model; bool isWorkingCondition = true; Car(const std::string& m); }; class Trip { public: std::string departurePoint; std::string arrivalPoint; bool completed = false; Trip(const std::string& from, const std::string& to); void markCompleted(); }; class Driver { private: std::string name; bool busy = false; bool suspended = false; Car* assignedCar = nullptr; Trip* currentTrip = nullptr; public: Driver(const std::string& n); void assignCar(Car* car); void startTrip(Trip* trip); void finishTrip(); bool canStartNewTrip() const; void repairCar(); std::string getName() const; void setSuspended(bool s); bool isSuspended() const; }; class Dispatcher { private: std::vector<Driver*> drivers; std::vector<Trip*> trips; public: Dispatcher() = default; void addDriver(Driver* newDriver); void createTrip(const std::string& dep, const std::string& arr); Trip* getFirstUnfinishedTrip(); Trip* getLastUnfinishedTrip(); void assignTripToDriver(Driver* drv, Trip* trip); void repairCarForDriver(Driver* drv); void suspendDriver(Driver* drv, bool suspend); }; class DispatcherApp { public: void run(); }; #endif // TASK_3_H