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