
Версія 2
Додати конструктори по замовчуванню, ініціалізації та деструктори до всіх створених класів. Додати конструктори копіювання до всіх класів крім Годинника і Планувальника. Під час виклику кожного конструктора і деструктора повинно виводитися повідомлення, в якому вказується назва класу і тип викликаного конструктора чи деструктора. Створити об’єкт класу Планувальник і Локальна мережа, які автоматично створюють об’єкти-атрибути, зв’язані відношенням композиції. Потрібно передбачити два режими введення даних — з клавіатури і використовуючи стандартні значення. Застосовувати конструктори ініціалізації і по замовчуванню для цих режимів відповідно.
Версія 3
Додати методи-аксесори для атрибутів усіх створених класів. Для атрибутів типу bool застосувати предикатні функції. Використати ітератори та функції утіліти. Рекомендації до виконання: використати функції-утілітиу класі Консультант для реалізації пропозицій клієнта, застосувати ітератори у всіх процесах, де відбувається перелік об’єктів, наприклад, при здійсненні підключення декількох користувачів до мережі.
Версія 4
Додати деякі константні та статичні атрибути до класів (або зробити константними чи статичними існуючі атрибути). Рекомендації до виконання: зробити константними всі методи get, зробити статичними та константними максимальну кількість користувачів у мережі.
Версія 5
Реалізувати перевантаження операторів для деяких функцій та дружні функції. Рекомендації до виконання: перевантажити операцію голосування по заданому питанню певних депутатів, перевантажити операції інкрементації та присвоєння класу Годинник.
Версія 6
Реалізувати просте успадкування класів. Рекомендації до виконання: створити клас Співробітник і від нього успадкувати класи всіх співробітників, задіяних в локальній мережі.
Версія 7
Реалізувати множинне успадкування класів. Рекомендації до виконання: від класів Співробітник і Користувач успадкувати клас, який дозволяє співробітникам виступати у ролі користувачів.
Версія 8
Реалізувати оброблення виключних ситуацій. Рекомендації до виконання: в процесі роботи локальної мережі можливі відмови, наприклад, програмний збій в роботи серверів, апаратна поломка сервера чи робочої станції, збій в роботи офісного програмного забезпечення тощо. Моделююча програма повинна вивести на екран відповідні повідомлення і рекомендації щодо подальшої роботи.
Варіант 19
Версія 1
Здійснити об’єктно-орієнтований аналіз та об’єктно-орієнтоване проектування програми, що моделює автомати по продажу напоїв. Моделююча програма включає годинник, який на початку моделювання встановлюється в 0, а потім відраховує такти часу до моменту завершення процесу моделювання. Основні події, що відбуваються під час моделювання роботи автомата, такі. Перед початком роботи спеціаліст заправляє автомат. Заправка здійснюється через певні проміжки часу. Спеціаліст розблоковує систему захисту автомата, відкриває його та заповнює ємності для напоїв і поповнює запас монет для здачі. Потім він закриває автомат і включає систему захисту. Збір виручки від продажу ініціюється через заданий інтервал часу. Цей процес включає такі самі дії, що й процес заправки автомата: розблокування автомата, відкриття його, забір грошей, закриття та блокування автомата. Якщо спеціаліст ураховує попит споживачів на різні сорти напоїв, то замість рівномірної заправки усіх сортів напоїв можна збільшити кількість напоїв, що користуються попитом. Покупець напоїв ініціює процес продажу, опускаючи монети в автомат. Потім він вибирає сорт напоїв, натискує кнопку автомата для отримання товару. Автомат видає покупцю вибраний напій. Режим роботи автомата визначає планувальник програми. Усі події, що відбуваються у моделюючій системі, супроводжуються відповідними екранними повідомленнями. Результати об’єктно-орієнтованого аналізу подати у вигляді сценарію роботи фізичного об’єкту та переліку іменників, дієслів, що претендують на назви класів, атрибутів і методів класів; результати об’єктно-орієнтованого проектування подати у вигляді діаграм прецедентів, об’єктів і класів. Згенерувати код інтерфейсів класів, побудувати проект (на кожний клас – по два файли: заголовний та срр), додати до проекту код згенерованих класів.