- •Міністерство освіти і науки, молоді та спорту україни тернопільський національний економічний університет факультет комп’ютерних інформаційних технологій
- •Визначення вимог
- •2. Алгоритм розв’язку задачі
- •Об’єктно – орієнтований аналіз
- •Об’єктно-орієнтоване проектування
- •Об’єктно-орієнтоване програмування
- •Тестування
Об’єктно-орієнтоване проектування
Класи 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) – визначення часу проїзду транспортного засобу від однієї вулиці до іншої.
Діаграма класів подана у додатку А.
