Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichn_vkaz_vki_KP_OOP.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆
  1. Об’єктно-орієнтоване проектування

Класи Vehicle, Route, Passanger успадковують базовий абстрактний клас TransportSystem.

Структура класу TransportSystem зображена на рис. 4.1.

Рис. 4.1. Структура класу TransportSystem

Поведінку класу TransportSystem визначають такі методи:

  • ShowInformation() – віртуальна функція для відображення даних;

  • SetInformation() – віртуальна функція для додавання даних.

Структура класу Passanger зображена на рис. 4.2.

Рис. 4.2. Структура класу Passanger

Клас Passanger містить такі атрибути:

  • StartTime – час виходу на роботу;

  • EndTime – час повернення з роботи.

Поведінку класу Passanger визначають такі методи:

  • ShowInformation() – виведення даних про пасажирів;

  • SetInformation() – введення даних про пасажирів;

  • ContinueOrExit() –визначає виходити на даній зупинці чи продовжувати рух.

Структура класу Route зображена на рис. 4.3.

Рис. 4.3. Структура класу Route

Клас Route містить такі атрибути:

  • Name – ім’я маршруту;

  • NamesOfStreets – назви вулиць, які задаються у парі з тривалістю проїзду до наступної вулиці;

  • NumberOfStops – кількість зупинок;

  • Distance – відстань;

  • Duration – тривалість повного кола;

  • Vehicles – транспортні засоби, які рухаються по даному маршруті.

Поведінку класу Route визначають такі методи:

  • ShowInformation() – відображення даних про маршрути;

  • SetInformation() – додавання даних про маршрути;

  • Demostrate(Route route) – демонстрація роботи заданого користувачем транспортного засобу протягом одного дня за вказаним маршрутом;

  • Simulate(void* arg) – симуляція роботи всіх транспортних засобів на всіх маршрутах;

  • GetStreetsFromFile(char* fileName) – зчитування даних про вулиці до відповідного маршруту з відповідних файлів;

  • GetDataFromFile() – зчитування даних про маршрути з файлу;

  • SaveRoutesToFile() – збереження даних про маршрути у файл.

Структура класу Vehicle зображена на рис. 4.4.

Рис. 4.4. Структура класу Vehicle

Клас Vehicle містить такі атрибути:

  • TypeOfTransport – тип транспорту;

  • Speed – швидкість;

  • AmountOfFuel – кількість палива;

  • Capacity – пасажиромісткість;

  • Count – кількість проїжджених повних кіл;

  • StartTime – час виїзду (початку роботи);

  • EndTime – час приїзду (кінця роботи);

  • Number – ідентифікатор (номер).

Клас Vehicle містить такі методи:

  • ShowInformation() – відображення поточних даних про транспортні засоби;

  • SetInformation() – додавання транспортного засобу;

  • ShowFreeVehicles() – відображення вільних транспортних засобів;

  • ShowBrokenVehicles() – відображення зламаних транспортних засобів;

  • GetVehiclesFromFile(char* fileName) – зчитування даних про транспортні засоби з файлу;

  • GetFreeVehiclesFromFile() – зчитування даних про вільні транспортні засоби з файлу;

  • GetBrokenVehiclesFromFile() – зчитування даних про зламані транспорнті засоби з файлу;

  • SaveVehiclesToFile() – запис даних про транспортні засоби у файл;

  • SaveFreeVehiclesToFile() – запис даних про вільні транспортні засоби у файл;

  • SaveBrokenVehiclesToFile() – запис даних про зламані транспортні засоби у файл.

  • Fueling(float amountOfFuel) – заправка палива.

  • ReplaceVehicle(int routeIndex, int vehicleIndex) – заміна відповідного транспортного засобу на новий із списку «вільні маршрутки».

  • Time(int allTimeOfDay, int time) – визначення часу проїзду транспортного засобу від однієї вулиці до іншої.

Діаграма класів подана у додатку А.