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