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