- •1 Загальні положення
- •Чисельні методи
- •Дискретна математика
- •Логіка предикатів
- •Комп’ютерні мережі
- •Основи програмної інженерії
- •5.1 Теоретична частина з дисципліни «Основи програмної інженерії» :
- •6.2 Практична частина з дисципліни «Основи програмної інженерії» :
- •Об’єктно-орієнтоване програмування
- •Практичні завдання
- •Варіанти практичних завдань з дисципліни «Бази даних»
- •Варіанти практичних завдань з дисциплін «Основи програмної інженерії» та «Об’єктно-орієнтоване програмування»
- •Варіанти практичних завдань з дисциплін «web-застосування
- •Критерії оцінювання відповідей на комлексному державному екзамені
- •.4 Приклад практичної частини з дисципліни «Основи програмної інженерії»
- •2.1.3.3 Об’єктно-орієнтоване проектування
Варіанти практичних завдань з дисциплін «Основи програмної інженерії» та «Об’єктно-орієнтоване програмування»
ВАРІАНТ 1
Здійснити об’єктно-орієнтоване проектування програми, що моделює процес вступу абітурієнтів до ВНЗ. Основні події, що відбуваються під час моделювання процесу вступу до ВНЗ абітурієнтів, такі.
Абітурієнт готовить документи (атестат з додатком, медичну довідку, військові документи, фотокартки) до здачі їх до приймальної комісії. У приймальній комісії він заповнює анкету та пише заяву про допуск до іспитів. Дані із заяви та анкети заносяться до бази даних оператор приймальної комісії. Якщо документи перевірені, то абітурієнта допускають до іспитів або співбесіди.
Абітурієнта допускають до співбесіди, якщо він подає документи на контрактну форму навчання, або закінчив середній заклад освіти із медаллю. В результаті істиків чи співбесіди абітурієнт отримує бали і приймає участь у конкурсі на вступ до ВНЗ.
Якщо він отримує прохідний бал, то приймальна комісія рекомендує його зарахувати на навчання і готовить відповідний наказ. Якщо абітурієнт не набрав прохідний бал, то він переоформлює документи на контрактну форму навчання або забирає їх з приймальної комісії.
Результати об’єктно-орієнтованого проектування подати у вигляді діаграм прецедентів, і класів. Згенерувати код інтерфейсів класів, побудувати проект (на кожний клас – по два файли: заголовний та срр), додати до проекту код згенерованих класів.
Додати конструктори ініціалізації та деструктори до всіх створених класів. Додати конструктори копіювання для одного класу( на свій вибір). Під час виклику кожного конструктора і деструктора повинно виводитися повідомлення, в якому вказується назва класу і тип викликаного конструктора чи деструктора.
Реалізувати перевантаження оператора здвигу вліво (виведення cout << ) для класу за власним вибором.
Реалізувати просте успадкування класів.. Успадкувати класи Віськовий документ та Атестат від класу Документ
ВАРІАНТ 2
Здійснити об’єктно-орієнтоване проектування програми, що моделює взаємодію банка та клієнта. Основні події:
Клієнт має особовий рахунок у банку і відповідно банківську картку на нього. Комп’ютер банка підтримує рахунки клієнтів, тобто зберігає дані в базі даних і виконує проводки над цими рахунками по запитам з касових терміналів (проводка касира, дані про котрі вводяться касиром).
Клієнт пред’являє банківську картку касиру .За допомогою спеціального пристрою зчитується номер картки і відповідно дані про клієнта (код клієнта, його ім’я, прізвище, код особового рахунку тощо ) поступають у комп’ютер. Якщо вірні введені дані, то починається бухгалтерська проводка. Вона полягає в зміні даних на рахунках клієнтів.
Проводка здійснює перевірку права клієнта на доступ до його рахунків на момент проводки (перевірка безпеки).
Якщо перевірки пройшли успішно, можлива одна з наступних ситуацій:
клієнт суму знімає (попередньо Комп’ютер банка перевіряє поточний стан його рахунку.) Сума рахунка зменьшується
клієнт вносить суму на рахунок. Сума рахунка збільшується
Результати об’єктно-орієнтованого проектування подати у вигляді діаграм прецедентів, об’єктів і класів.
Згенерувати код інтерфейсів класів, побудувати проект (на кожний клас – по два файли: заголовний та срр), додати до проекту код згенерованих класів.
Додати конструктори ініціалізації та деструктори до всіх створених класів. Додати конструктори копіювання для одного класу( на свій вибір). Під час виклику кожного конструктора і деструктора повинно виводитися повідомлення, в якому вказується назва класу і тип викликаного конструктора чи деструктора.
Реалізувати перевантаження оператора здвигу вліво (виведення cout << ) для класу за власним вибором.
Реалізувати просте успадкування класів.. Успадкувати клас Кредитна картка від класу Банківська картка.
ВАРІАНТ 3
Здійснити об’єктно-орієнтоване проектування програми, що моделює роботу Internet-магазину різних товарів електронної техніки.
Основні події, що відбуваються під час моделювання роботи Internet- магазину, такі. Системний адміністратор торгової фірми розміщує на web-сайтах дані про товари та їх ціни. Дані оновлюються періодично.
Замовник по web-сайтах здійснює пошук товару, ціна та функціональні параметри якого задовольняють його. Замовлення на поставку певного товару та дата його доставки оформлюється замовником дистанційно згідно з можливостями web-сайта. Оплата товару може здійснюватися готівкою та по платіжним карткам через банки замовника та інтернет-магазину. Якщо оплата здійснюється по банківській картці, то під час оформлення замовлення покупець вказує відповідні банківські реквізити, номер картки, назву банка, своє прізвище тощо. Якщо замовник буде оплачувати вартість товару готівкою, то в призначений термін торгова фірма відправляє йому товар з платіжними документами. Покупець розраховується готівкою за придбаний товар з його постачальниками.
Системний адміністратор інтернет-магазину веде облік покупців і нараховує їм пільги під час оплати товару, якщо замовник придбав товару на суму, розмір якої більше за такий, що генерований планувальником програми. На екран слід виводити повідомлення про події, що відбуваються у моделюючій системі.
Результати об’єктно-орієнтованого проектування подати у вигляді діаграм прецедентів, об’єктів і класів.
Згенерувати код інтерфейсів класів, побудувати проект (на кожний клас – по два файли: заголовний та срр), додати до проекту код згенерованих класів.
Додати конструктори ініціалізації та деструктори до всіх створених класів. Додати конструктори копіювання для одного класу( на свій вибір). Під час виклику кожного конструктора і деструктора повинно виводитися повідомлення, в якому вказується назва класу і тип викликаного конструктора чи деструктора.
Реалізувати перевантаження оператора здвигу вправо (введення cin >>) для класу за власним вибором.
Реалізувати просте успадкування класів.Рекомендації до виконання: від класу Користувач успадкувати Адміністратор.
ВАРІАНТ 4
Здійснити об’єктно-орієнтоване проектування програми, що моделює роботу касира по продажі залізничних квитків. Основні події:
Пасажир замовляє певну кількість квитків на певний потяг і певну дату. Касир робить запит про наявність квитків, вводячи відповідні дані до комп’ютера. Запит з термінального комп’ютера касира поступає до центрального комп’ютера (сервер застосувань) звідки формується запит до сервера бази даних.
Якщо запит задовольняється, то касир бачить відповідь про наявність чи відсутність місць. За згодою пасажира касир оформлює квитки, задаючи паспортні дані, та отримує гроші, які потрапляють до каси.
Дані про продані місця поступають до серверу бази даних з метою унеможливити повторний їх продаж.
Якщо квитки виписані, а пасажир передумав їх купувати, то він має здати їх. Процес здачі квитків передбачає введення до бази даних інформації про дату, потяг, місця, що повертаються до продажу.
Результати об’єктно-орієнтованого проектування подати у вигляді діаграм прецедентів, об’єктів і класів.
Згенерувати код інтерфейсів класів, побудувати проект (на кожний клас – по два файли: заголовний та срр), додати до проекту код згенерованих класів.
Створити конструктори по замовчуванню для класу за власним вибором , для інших класів – конструктор ініціалізації , деструктори до всіх створених класів. Додати конструктори копіювання для одного класу( на свій вибір). Під час виклику кожного конструктора і деструктора повинно виводитися повідомлення, в якому вказується назва класу і тип викликаного конструктора чи деструктора.
Реалізувати перевантаження операторів для деяких функцій та дружні функції. Рекомендації до виконання: перевантажити операцію покупки квитка у заданого Касира певним Пасажиром
Реалізувати просте успадкування класів. Рекомендації до виконання: створити класи Квиток на плацкартне місце, купе, СВ тощо. Успадкувати ці класи від класу Квиток, який виступає поліморфним інтерфейсом.
ВАРІАНТ 5
Здійснити об’єктно-орієнтоване проектування програми, що моделює роботу складу продукції . Основні події:
На складі міститься продукція, для якої задаються назва, кількість, вартість, дата їх надходження. Продукція поступає на склад від постачальників відповідно до договорів про поставку товарів.
Для постачання продукції на склад бухгалтерія здійснює оплату поставок, попередньо виписавши платіжку. Після перерахунку грошей на рахунки постачальників продукція поступає на склад. Поставки продукції супроводжуються постановкою її на облік (занесення в базу даних інформації про товари, що поступили).
Для видачі продукції зі складу ведеться облік замовлень від клієнтів. Клієнт посилає замовлення на склад про отримання продукції. Бухгалтерія готовить рахунок-фактуру на його оплату і видає клієнту. Після надходження грошей на рахунок складу клієнт отримує продукцію зі складу.
Відвантаження продукції здійснюється відповідно до специфікації на комплектуючі товарів.
Під час здійснення продажу продукції клієнт може замовити продукцію більшої кількості, ніж є на складі, або вимагати продукцію, що є виставковим примірником.
Результати об’єктно-орієнтованого проектування подати у вигляді діаграм прецедентів, об’єктів і класів.
Згенерувати код інтерфейсів класів, побудувати проект (на кожний клас – по два файли: заголовний та срр), додати до проекту код згенерованих класів.
Створити конструктори по замовчуванню для класу за власним вибором , для інших класів – конструктор ініціалізації , деструктори до всіх створених класів. Під час виклику кожного конструктора і деструктора повинно виводитися повідомлення, в якому вказується назва класу і тип викликаного конструктора чи деструктора.
Реалізувати перевантаження операторів для деяких функцій та дружні функції. Рекомендації до виконання: перевантажити операцію поступання продукції на склад, перевантажити операції інкрементації
Реалізувати множинне успадкування класів. Рекомендації до виконання: створити клас Контрагенти від класів Клієнт та Постачальник
ВАРІАНТ 6
Здійснити об’єктно-орієнтоване проектування програми, що моделює роботу автотранспортного підприємства (автопарку).. Основні події, що відбуваються під час роботи автопарку, такі.
Автопарк має певну кількість однакових автомобілів для здійснення перевезень пасажирів. Кожний автомобіль має свій ідентифікаційний номер. Кожний водій є володарем автомобіля. Автопарк працює за попередніми викликами клієнтів.
Планувальник програми випадковим чином генерує появу замовлення клієнта. Під час отримання замовлень диспетчер фіксує час його прийому, пункт призначення та адресу клієнта. Далі диспетчер здійснює вибір машини за наявності її в даний момент в автопарку.
Якщо простоюють декілька машин, то перевагу на виконання замовлення має той водій, котрий знаходиться в стані очікування більший термін. Якщо вільних машин на час отримання диспетчером замовлень нема, тодиспетчер обдзвонює усі машини, що є на маршрутах і шукає таку, яка знаходиться найближче до місця розташування клієнта. Знайдена машина призначається для виконання замовлення.
Кожний рейс приносить в касу автопарку певну грошову суму. Після закінчення процесу моделювання планувальник програми виводить на екран суму виручки за день. Окрім того, планувальник програми має виводити на екран повідомлення про події, котрі відбуваються у системі, що моделюється.
Результати об’єктно-орієнтованого проектування подати у вигляді діаграм прецедентів, об’єктів і класів.
Згенерувати код інтерфейсів класів, побудувати проект (на кожний клас – по два файли: заголовний та срр), додати до проекту код згенерованих класів.
Створити конструктори конструктори ініціалізації , деструктори до всіх створених класів. Під час виклику кожного конструктора і деструктора повинно виводитися повідомлення, в якому вказується назва класу і тип викликаного конструктора чи деструктора.
Реалізувати перевантаження оператора здвигу вліво (виведення cout << ) для класу за власним вибором.
Реалізувати просте успадкування класів. Рекомендації до виконання: створити клас Автомобіль таксі, від якого успадковувати клас Звичайне таксі і Лімузин.
ВАРІАНТ 7
Здійснити об’єктно-орієнтоване проектування програми, що моделює роботу відділу кадрів фірми, що розробляє програмне забезпечення.
Планувальник програми моделює процеси підбору кадрів, прийняття людей на роботу та звільнення з роботи, просування по службі, призначення посадових окладів та їх підвищення згідно з фондом заробітної плати.
У фірмі існує ієрархія посад: директор, менеджери з різних напрямків роботи, керівники проектів, системні аналітики, системні адміністратори, програмісти, допоміжний персонал — робітники.
Посадові оклади фахівців визначаються пропорційно до окладу робітника. Планувальник програми визначає оклад робітника, який є мінімальним серед працівників фірми. Оклад інших працюючих на кожному рівні ієрархії збільшується на 50%.
Користувач або планувальник програми задають розмір вартості договорів на розробку програмного забезпечення. Фонд заробітної плати визначається моделюючою програмою, як 40% від суми договорів.
Програма має скласти штатний розклад, в якому вказати посаду працівників, їх кількість та розміри окладів. Кількість посад та їх оклади розраховується відповідно до фонду заробітної праці.
Програма моделює процес прийому на роботу спеціалістів та робітників і призначення їм окладів. Якщо сума всіх окладів виходить за межі розміру фонду заробітної праці, то виникає критична ситуація, яку розв’язує користувач програми (”взяти кредит у банку”, „звільнити” деяких робітників чи спеціалістів, „заключити додаткові договори на розробку” тощо).
Якщо сума всіх окладів менше, ніж розмір фонду заробітної праці, то ця ситуація означає економію фонду заробітної праці. Планувальник програми розподіляє розмір економії фонду зарплати між усіма працівниками фірми у вигляді премії, величина якої визначається як певний відсоток від окладу. По результатам роботи фірма отримує винагороду (генерується планувальником програми), яка розподіляється між вибраними планувальником категоріями працівників.
Якщо працівник порушує трудову дисципліну (прогули, запізнення на роботу, неякісне виконання роботи тощо), то можливе його звільнення або позбавлення премій.
Результати об’єктно-орієнтованого проектування подати у вигляді діаграм прецедентів, об’єктів і класів.
Згенерувати код інтерфейсів класів, побудувати проект (на кожний клас – по два файли: заголовний та срр), додати до проекту код згенерованих класів.
Створити конструктори конструктори ініціалізації , деструктори до всіх створених класів. Під час виклику кожного конструктора і деструктора повинно виводитися повідомлення, в якому вказується назва класу і тип викликаного конструктора чи деструктора.
Реалізувати перевантаження оператора здвигу вліво (виведення cout << ) для класу за власним вибором.
Реалізувати просте успадкування класів. Рекомендації до виконання: створити клас Співробітник, від якого успадковуються усі професії такі, як Програміст, Системний адміністратор тощо.
ВАРІАНТ 8
Здійснити об’єктно-орієнтований аналіз та об’єктно-орієнтоване проектування програми, що моделює роботу Internet-магазину різних товарів електронної техніки.
Основні події, що відбуваються під час моделювання роботи Internet- магазину, такі. Системний адміністратор торгової фірми розміщує на web-сайтах дані про товари та їх ціни. Дані оновлюються періодично.
Замовник по web-сайтах здійснює пошук товару, ціна та функціональні параметри якого задовольняють його. Замовлення на поставку певного товару та дата його доставки оформлюється замовником дистанційно згідно з можливостями web-сайта.
Оплата товару може здійснюватися готівкою та по платіжним карткам через банки замовника та інтернет-магазину. Якщо оплата здійснюється по банківській картці, то під час оформлення замовлення покупець вказує відповідні банківські реквізити, номер картки, назву банка, своє прізвище тощо. Якщо замовник буде оплачувати вартість товару готівкою, то в призначений термін торгова фірма відправляє йому товар з платіжними документами. Покупець розраховується готівкою за придбаний товар з його постачальниками.
Системний адміністратор інтернет-магазину веде облік покупців і нараховує їм пільги під час оплати товару, якщо замовник придбав товару на суму, розмір якої більше за такий, що генерований планувальником програми.
На екран слід виводити повідомлення про події, що відбуваються у моделюючій системі.
Результати об’єктно-орієнтованого проектування подати у вигляді діаграм прецедентів, об’єктів і класів.
Згенерувати код інтерфейсів класів, побудувати проект (на кожний клас – по два файли: заголовний та срр), додати до проекту код згенерованих класів.
Створити конструктори конструктори ініціалізації , деструктори до всіх створених класів. Під час виклику кожного конструктора і деструктора повинно виводитися повідомлення, в якому вказується назва класу і тип викликаного конструктора чи деструктора.
Реалізувати перевантаження оператора здвигу вліво (виведення cout << ) для класу за власним вибором.
Реалізувати просте успадкування класів. Рекомендації до виконання: від класу Користувач успадкувати Адміністратор.
ВАРІАНТ 9
Здійснити об’єктно-орієнтований аналіз та об’єктно-орієнтоване проектування програмної системи бронювання місць на літаки . Задачі моделювання включають моніторинг таких параметрів: рейсів, пасажирів, літаків , білетів.
Основні події, що відбуваються під час здійснення моніторингу, такі. На початку моделювання задана кількість рейсів.
Кількість літаків відповідає кількості рейсів. Рейс із заданим номером додається до списку рейсів або вилучається, рейси не дублюються.
За сценарієм роботи програми необхідно приймати замовлення від пасажира, здійснювати пошук інформації відповідно до замовлення.
Якщо є білети на літак відповідно до запиту пасажира, то його ідентифікатори заносяться у базу даних . Місця, що їх продали (забронювали), відмічаються як зайняті, кількість вільних місць на даний рейс зменшується.
Якщо пасажир здає білети, то кількість вільних місць на даний рейс збільшується. Одночасно ведеться підрахунок грошової виручки. Закінчувати роботу програми відповідно до команди користувача.
Планувальник програми має виводити на екран повідомлення про події, котрі відбуваються у системі, що моделюється
Результати об’єктно-орієнтованого проектування подати у вигляді діаграм прецедентів, об’єктів і класів.
Згенерувати код інтерфейсів класів, побудувати проект (на кожний клас – по два файли: заголовний та срр), додати до проекту код згенерованих класів.
Створити конструктори по замовчуванню для класу за власним вибором , для інших класів – конструктор ініціалізації , деструктори до всіх створених класів. Під час виклику кожного конструктора і деструктора повинно виводитися повідомлення, в якому вказується назва класу і тип викликаного конструктора чи деструктора.
Реалізувати перевантаження оператора здвигу вліво (виведення cout << ) для класу за власним вибором.
Реалізувати просте успадкування класів. Рекомендації до виконання: створити клас Квиток (якщо ще не створений), від якого успадкувати Квиток першого класу, Квиток бізнес класу, Квиток економ класу.
ВАРІАНТ 10
Здійснити об’єктно-орієнтований аналіз та об’єктно-орієнтоване проектування програми, що моделює процес навчання студентів у вузі. Задачі моделювання включають моніторинг таких параметрів: група, студент, дисципліна, успішність, стипендія.
Основні події, що відбуваються під час здійснення моніторингу, такі.
На початку моделювання задається назва групи, кількість студентів у групі, середній бал студента. Планувальник програми (заввіділенням) моделює процес збільшення або зменшення студентів у групі, визначення кількості відрахованих студентів перед іспитами та після них.
Передбачити методи, що моделюють процес відрахування з вузу за неуспішність, недопуск до сесії, нарахування стипендії за успішну здачу сесії, переведення студента на контрактну форму навчання, отримання диплома тощо.
Режим роботи програми у ситуаціях прийняття рішень щодо відрахування студента або переведення його на контрактну форму навчання відбувається у діалоговому режимі з користувачем.
Планувальник програми має виводити на екран повідомлення про події, котрі відбуваються у системі, що моделюється.
Результати об’єктно-орієнтованого проектування подати у вигляді діаграм прецедентів, об’єктів і класів.
Згенерувати код інтерфейсів класів, побудувати проект (на кожний клас – по два файли: заголовний та срр), додати до проекту код згенерованих класів.
Створити конструктори по замовчуванню для класу за власним вибором , для інших класів – конструктор ініціалізації , деструктори до всіх створених класів. Під час виклику кожного конструктора і деструктора повинно виводитися повідомлення, в якому вказується назва класу і тип викликаного конструктора чи деструктора.
Реалізувати перевантаження оператора здвигу вліво (виведення cout << ) для класу за власним вибором. Перевантажити операції додавання і відрахування студента із групи
Реалізувати просте успадкування класів. Рекомендації до виконання: створити клас Староста групи, який успадкувати від класу Студент.
