Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichn_vkaz_vki_KP_OOP.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.16 Mб
Скачать

Методичні вказівки

до виконання курсового проекту

з дисципліни

„Об'єктно-орієнтоване програмування”

для студентів напрямку “програмна інженерія”

протокол № 8 16.01.2012

ВСТУП

Концепція об’єктно-орієнтованого підходу полягає в тому, що програма інтерпретується як модель деяких аспектів навколишнього середовища. Класи в програмі представляють основні поняття з прикладної області, а об’єкти цих класів є об’єктами реального світу. Технологія об’єктно-рієнтованого підходу визначає такі основні етапи проектування:

  • об’єктно-рієнтований аналіз;

  • об’єктно-орієнтоване проектування;

  • об’єктно-рієнтоване програмування.

Курсове проектування є логічним продовженням лабораторних робіт по даному курсу і служить зв'язуючим елементом, що забезпечує перехід від виконання учбових завдань до проведення самостійної роботи за реальною тематикою. Для формування професійних навиків у майбутніх спеціалістів на курсове проектування з дисципліни “Об’єктно-орієнтоване програмування” покладено наступні задачі:

• поглиблене вивчення теоретичних основ дисципліни;

• вміння здійснювати об’єктно-орієнтований аналіз та декомпозицію складних об’єктів;

• оволодіння методами побудови об’єктно-орієнтованих моделей з використаням мови об єктно-орієнтованого моделювання UML;

• вміння писати об’єктно-орієнтовані програми з використанням сучасних технологій та об’єктно-орієнтованих мов програмування;

• здобуття навиків роботи з науково-технічною літературою і технічною документацією до програмного забезпечення персональних комп’ютерів, а також створення документації на розроблену програму.

Робота над курсовим проектом вдосконалює загальнотеоретичну і спеціальну підготовку студентів і готує їх до виконання складнішого етапу учбового процесу – дипломного проектування.

МЕТА ТА ЗАВДАННЯ КУРСОВОГО ПРОЕКТУВАННЯ

Метою курсового проектування є закріплення знань, набутих при вивченні дисципліни “Об’єктно-орієнтоване програмування”, набуття навичок у об’єктно-орієнтованому аналізі та декомпозиції, складних об’єктів, а також побудові об’єктно-орієнтованих моделей та написанні об’єктно-орієнтованих програм.

Мета курсового проекту полягає в тому, щоб навчитися правильно формулювати загальну проблему, а в її межах конкретну науково-практичну чи навчально-практичну задачу, формулювати загальну мету й конкретні завдання роботи, визначати методику дослідження.

Для розв'язку конкретної задачі потрібно навчитись будувати об’єктно-орієнтовану модель з використанням UML, а також реалізовувати цю модель за допомогою однієї з об’єктно-орієнтованих мов програмування.

Крім того, під час захисту курсового проекту студент повинен проявити такі властивості як впевненість у знаннях, вміння відстоювати власну думку, вміння виступати перед аудиторією.

ТЕМАТИКА КУРСОВОГО ПРОЕКТУВАННЯ

Для курсового проектування обираються теми різної проблематики. Основний перелік тем з орієнтовною постановкою задачі на курсове проектування наведено у додатку A. При бажанні і погоджені з керівником курсу допускається формулювання власних тем.

ПОРЯДОК ВИКОНАННЯ КУРСОВОГО ПРОЕКТУ

Основні етапи виконання курсового проекту:

  • аналіз вимог та постановка задачі;

  • побудова алгоритму розв’язку задачі;

  • об’єктно-орієнтований аналіз;

  • об’єктно-орієнтований проектування;

  • об’єктно-орієнтоване програмування;

  • тестування програми;

  • оформлення пояснювальної записки;

  • захист роботи.

Аналіз вимог та постановка задачі

Постановки задачі є самостійним етапом роботи і завершується створенням двох документів: плану проекту та розділу пояснювальної записки в якому виконується аналіз вимог та постановка задачі на проектування. На цьому етапі визначаються вхідні дані та що слід вважати результатом роботи програми, перелік функцій, які виконує програма, i пропонується інтерфейс користувача, з яким пов’язуються функції програми.

Під час написання програми можуть виникнути принципові труднощі пов’язані з недооцінкою поставленої задачі. У цих випадках треба критично переглянути постановку задачі.

Об’єктно-орієнтований аналіз.

На етапі об’єктно-орієнтованого аналізу необхідно побудувати систему у вигляді взаємозалежних моделей:

− об'єктної моделі, що подає статичні, структурні аспекти системи, в основному пов'язані з даними;

− динамічної моделі, що описує роботу окремих частин системи.

Процес побудови об'єктної моделі містить у собі такі етапи:

− визначення об'єктів і класів;

− підготовка словника даних;

− визначення залежностей між об'єктами;

− визначення атрибутів об'єктів і зв’язків;

Визначення об’єктів і класів. Під час визначення можливих класів потрібно кожному іменнику, який зустрічається в постановці задачі, поставити у відповідність клас. Отриманий список класів проаналізувати з метою вилучення з нього непотрібних класів. Такими класами є:

− зайві класи, якщо два або декілька класів визначають однакові дані;

− нерелевантні класи, які не мають прямого відношення до проблеми;

− нечітко визначені класи;

− атрибути, які відповідають деяким іменникам і описують властивості

об’єктів (наприклад, вік, вага тощо );

− операції, які відповідають деяким іменникам (наприклад, телефонний_виклик);

− ролі, які відповідають деяким іменниками (наприклад, власник, водій, начальник, службовець);

− програмні конструкції, які пов’язані із програмуванням і комп’ютерною апаратурою.

Підготовка словника даних здійснюється з метою виключення неоднозначних інтерпретацій різних понять під час аналізу предметного середовища. Словник даних повинний містити чіткі і недвозначні визначення всіх об’єктів (класів), атрибутів, операцій, ролей і інших аналізованих сутностей.

Визначення залежностей між об'єктами. Між об’єктами встановлюються залежності, які виражають зв’язок або відношення між класами об’єктів. Визначають такі типи залежностей між класами: асоціації, спадкування, агрегації, використання. Імена можливих залежностей отримують з дієслів або дієслівних оборотів, що зустрічаються в описі предметного середовища. Так описують фізичне положення (наприклад, випливає_за, є_частиною, утримується_в), спрямовану дію (наприклад, приводити_до руху), спілкування (наприклад, розмовляє_з), приналежність (наприклад, має, є_частиною) та ін. З отриманого списку залежностей треба видалити зайві, використовуючи такі критерії:

− залежності між виключеними класами повинні бути виключені, або визначені в термінах класів, що залишилися;

− не релевантні залежності і залежності, пов’язані з реалізацією, треба опустити;

− залежність повинна описувати структурні властивості прикладної області, а не малоістотні події;

− залежності між трьома або великим числом класів можна розкласти на декілька бінарних відношень, використовуючи кваліфікатори, які є атрибутами, що дозволяють знизити кратність залежності та застосовуються в залежностях типів "один-до-багатьох" або "багато-до-багатьох";

− потрібно виключити надмірні залежності, які встановлюють існування похідної залежності, але не дозволяють визначити її кратність.

Визначення атрибутів. Атрибути об’єктів відповідають іменникам, наприклад, колір_автомобіля (властивість об’єкта), позиція_курсору (стан об’єкта), атрибути залежностей між класами (зв’язків між об’єктами) вводять відповідно до таких критеріїв:

− атрибут заміняють на об’єкт, якщо наявність деякої сутності важливіша, ніж її значення, якщо важливішим є значення, то це атрибут. Наприклад, начальник - це об’єкт, зарплата - це атрибут;

− якщо значення атрибута залежить від конкретного контексту, його варто зробити кваліфікатором;

− ідентифікатори об’єктів пов’язані з їх реалізацією, тому їх не треба розглядати в якості атрибутів;

− якщо деяка властивість характеризує не об’єкт самий по собі, а його зв’язок з іншими об’єктами, то це атрибут зв’язку, а не атрибут об’єкта;

− атрибути, що визначають лише внутрішній стан об’єкта, непомітні поза об’єктом і не впливають на виконання більшої частини операцій треба виключити з розгляду.

Узагальнення і спадкування виявляють аналогії між різноманітними класами об'єктів, визначають багаторівневу класифікацію об'єктів. Доцільно притримуватися таких семантичних правил спадкування:

− усі операції-запити повинні успадковуватися всіма підкласами;

− усі операції, що змінюють значення атрибутів, повинні успадковуватися в їх розширеннях;

− усі операції, що змінюють значення обмежених атрибутів, або атрибутів, що визначають залежності, повинні блокуватися у всіх їх розширеннях;

− операції не варто перевизначати докорінно;

  • усі методи, що реалізують ту саму операцію, повинні здійснювати подібне перетворення атрибутів;

− успадковані операції можна уточнювати, додаючи додаткові дії.

Для опису змін, що відбуваються з об'єктами та їх зв’язками під час роботи системи, необхідно мати її динамічну модель. Вона складається з діаграм станів об’єктів системи і підсистем. Робота системи характеризується послідовністю подій, що відбуваються в ній, кожна з яких призводить до зміни стана одного або декількох об’єктів у системі, або до виникнення нових подій. Послідовність подій, яка може мати місце при конкретному виконанні системи, називається сценарієм, в якому кожна подія передає інформацію з одного об’єкта на інший. Реакція об’єкта на подію може включати деяку дію, яка переводить його у новий стан. Зв’язок подій і станів відображають у діаграмі станів, яка представляє собою граф, вузли якого − це стани, а спрямовані дуги, позначені іменами відповідних подій, − переходи. Діаграма станів дозволяє одержати послідовність станів по заданій послідовності подій.

Об’єктно-орієнтоване проектування

На етапі об’єктно-орієнтованого проектування системи розробляють повні визначення класів і їх залежностей, здійснюють конструювання внутрішніх об’єктів і оптимізують структури даних і алгоритми. Визначають класи з переліком методів та атрибутів, відображають класи та їх відношення засобами UML. На основі опису класів потрібно побудувати об’єктно-орієнтовану модель засобами UML, на якій мають бути відображені всі класи та взаємозв язки між ними. UML модель є обов’язковою і виноситься в додатки.

Об’єктно-орієнтоване програмування

На етапі об’єктно-орієнтованого програмування визначається архітектура програмної системи, послідовність викликів методів об’єктів і програмні модулі. На даному етапі здійснюється програмна реалізація класів та відношень між ними, створюється вихідний код програми. Він повинен бути гідним чином прокоментований і повністю задовольняти вимогам до вихідного коду. Тексти програми в повному обсязі виносяться в додатки.

Тестування програми

Програму необхідно протестувати на достатньому обсязі даних, який, по можливості, враховує всі особливості цих даних та їх співвідношення. Тестовий набір необхідно узгодити з керівником курсового проекту. Після успішного тестування програми можна переходити до наступних етапів. В разі невдалого тестування потрібно повернутись до попередніх етапів розробки курсового проекту.

Оформлення пояснювальної записки

Оформлення пояснювальної записки є останнім етапом виконання курсового проекту і має надати студентові навики документування об’єктно-орієнтованого програмного продукту.

Структура пояснювальної записки:

Титульна лист;

Завдання на курсове проектування;

Календарний план;

Зміст;

Вступ;

Основні розділи;

Висновки;

Список використаних джерел;

Додатки.

Титульний лист містить інформацію про дисципліну по якій виконувалося проектування, тему індивідуального завдання, автора пояснювальної записки.

Зразок титульного листка знаходиться у додатку А.

Завдання на курсове проектування заповнюється за формою приведеною у додатку Б.

Календарний план містить назви етапів виконання курсового проекту та терміни їх виконання. Зразок наведено в додатку В.

У вступі коротко викладають оцінку сучасного стану проблеми, актуальність даної роботи і підстави для її проведення, ціль роботи й галузь застосування.

Основні розділи можуть поділятися на пункти або на підрозділи і пункти. Пункти, якщо необхідно, розділяють на підпункти. Кожний пункт і підпункт повинен містити закінчену інформацію.

Обов’язковими питаннями, які висвітлюються у пояснюючій записці є:

1. Аналіз вимог та постановка задачі курсового проектування;

2. Алгоритм розв’язання задачі;

3. Об’єктно-орієнтований аналіз;

4. Об’єктно-орієнтований проектування;

5. Об’єктно-орієнтоване програмування;

6. Тестування.

У висновках наводять оцінку отриманих результатів роботи (у тому числі негативних).

У додатках приводяться UML-діаграми, вихідні тексти програм, які оформлені згідно вимог до вихідних текстів програм [3] та прикріплюється диск з розробленим програмним забезпеченням.

Основні вимоги до оформлення пояснювальної записки

Орієнтовний обсяг пояснювальної записки з додатками – 30-40 машинописних сторінок

Пояснювальна записка друкується за допомогою комп'ютера та принтера на аркуші білого паперу формату А4 (210x297 мм) у текстовому редакторі МS WORLD ХР/Wista/W7 (чи іншому сумісному з ним редакторі) з міжрядковим інтервалом 1,5, шрифтом Times New Roman (14 пт) до тридцяти рядків на сторінці, вирівнювання по ширині, відступ абзацу – 1,27.

Текст необхідно друкувати, залишаючи поля таких розмірів: лівий, верхній, нижній —- не менше 20 мм, правий — не менше 10 мм.

Роздруковані на принтері лістінги програм повинні відповідати формату А4, їх включають до загальної нумерації сторінок записки і розміщують в додатках. У лістінгах програм дозволяється використовувати менший розмір та міжрядковий інтервал, інший тип шрифту, інший редактор чи, навіть, операційну систему, однак, текст має бути розбірливим та максимальна кількість рядків на сторінці не повинна перевищувати 55.

Відстань між заголовком та текстом (за винятком заголовка пункту) — по одному вільному рядку зверху і знизу. Кожну структурну частину треба починати з нової сторінки.

Допускається оформлення пояснювальної записки згідно методичних вказівок до дипломного проектування [2].

Порядок захисту курсового проекту та його оцінювання.

До захисту курсового проекту студент допускаються викладачем, який керує курсовим проектом. Захист відбувається перед комісією з трьох викладачів у присутності студентів поточної академічної групи.

Студент під час доповіді повинен викласти основні результати отримані в межах курсового проектування. Орієнтовний час на доповідь – 5 хвилин. Після доповіді студент повинен відповісти на поставлені запитання.

Курсовий проект оцінюється за наступними критеріями:

- якість програмного продукту;

- якість вихідного коду;

- якість розробленої програмної документації;

- виступ та відповіді на запитання.

Перелік посилань

  1. ДСТУ 3008-95 Документація. Звіти в сфері науки і техніки. Структура і правила оформлення – Державний стандарт України.

  2. Дивак М.П., Шпінталь М.Я., Гончар Л.І., Барткова Л.М., Січкарук І. В., Пукас А. В., Шевчук Р.П., Горішний О.В. Методичні вказівки по написанню дипломного проекту для студентів освітньо-кваліфікаційного рівня “спеціаліст” спеціальності 7.080403 “Програмне забезпечення автоматизованих систем” // Тернопіль, 2006. – 65 c.

Перелік джерел, що рекомендовані для виконання курсових проектів

  1. Арсак Ж. Программирование игр и головоломок – М.: Наука, 1990, – 224с.

  2. Ахо А., Хопкрофт Д., Ульман Д. Построение и анализ вычислительных алгоритмов. – М.: Мир, 1979, – 336с.

  3. Ахо А., Хопкрофт Д., Ульман Д. Структуры данных и алгоритмы. – М.: Издательский дом «Вильямс», 2001, – 384с.

  4. Бетли Дж. Жемчужины программирования. – СПб.: Питер, 2002, – 272с.

  5. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++ – М.: «Издательство БИНОМ», СПб: «Невский проект», 1998, –560с.

  6. Вирт Н. Алгоритмы и структуры данных – М.: Мир, 1989, – 184с.

  7. Кнут Д. Искусство программирования для ЭВМ. Т.1, Основные алгоритмы. Пер. с англ. – М.: Мир, 1976, – 530с.

  8. Навч.-методичний посібник / В.В.Войтенко, А.В.Морозов. – Житомир: ЖДТУ, 2004. – 324 стор.

  9. Б.Страуструп «Введение в язык С++», Киев, «Диа Софт», 1995

  10. Б.Страуструп «Язык программирования С++», специальное издание, Москва, «Бином», 2001

  11. Т.А.Павловская «С/С++. Программирование на языке високого уровня», «Питер» С-П, 2002

  12. Герберт Шилдт. «Полний справочник по С++, 4-е издание.: Пер. с англ. – М. : Издательский дом «Вильямс», 2010. – 800с.: ил. – Парал. тит. англ.

  13. Фаулер М., Скотт К. «UML. Основи. – Пер. с англ. - СПб: Символ-Плюс, 2002. – 192 с., ил.

  14. [Електронний ресурс]. – Режим доступу: http://www.microsoft.com.

  15. [Електронний ресурс]. – Режим доступу:http://www.uk.wikipedia.org

  16. [Електронний ресурс]. – Режим достпу: http://www.cplusplus.com

ДОДАТОК А

1. Об'єктно-орієнтована модель роботи ліфта у житловому будинку.

Реалізувати об'єктно-орієнтовану модель роботи ліфта [3] у житловому будинку. В програмі вводять дані про тип ліфта, його характеристики, максимальну швидкість, кількість пасажирів тощо. Необхідно провести випробовування ліфта, визначити його надійність. Передбачити аварійні ситуації, що можуть привести до краху ліфта при перевищені вантажності, поломки окремих частин ліфта тощо. Використати базовий абстрактний клас для інтерфейсу класів, похідні класи для ліфта, окремих його вузлів, пасажира, віртуальні функції для відображення зміни характеристик вузлів ліфта, обліку часу роботи, дружні функції для процесу моделювання. Закінчення роботи програми відповідно до команди користувача.

2. Об’єктно-орієнтована модель організаційної структури підприємства.

Реалізувати об'єктно-орієнтовану модель, що визначають організаційну структуру підприємства: директор, заступники, менеджери, робітники. Визначити їх імена, коло їх обов’язків, заробітну платню. Головний абстрактний базовий клас − підприємство. Промоделювати роботу підприємства в критичних умовах функціонування: нестача коштів на виплату заробітної платні, необхідність скорочення штатів та звільнення робітників, відсутність замовлень тощо. Визначити механізм виникнення критичних ситуацій. Показати, як змінюється заробітна платня робітників відповідно до критичних ситуацій.

Використати віртуальні функції для відображення даних на екрані, розрахунків заробітної платні та дружні функції для процесу моделювання.

3. Об’єктно-орієнтована модель автоматичного моніторингу погодних умов.

Реалізувати об'єктно-орієнтовану модель автоматичного моніторингу погодних параметрів: швидкості та направлення вітру, температури, тиску тощо. В програмі передбачити визначення поточної дати та часу, максимальних та мінімальних значень первинних параметрів за добу. Забезпечити виведення на екран поточних значень погодних параметрів, дати та часу. Використати ієрархію класів з успадкуванням для побудови системи автоматичного моніторингу, наприклад, визначити клас поточного часу та дати, класи температурного датчика, датчику тиску, датчику швидкості вітру тощо. Застосувати віртуальні функціїдля введення та відображення поточних даних, дружні функції для виконання процесу моделювання. Передбачити можливість виникнення аварійнихситуацій: смерчі, тайфуни, затоплення територій тощо. Закінчувати роботу програми відповідно до команди користувача.

4. Об’єктно-орієнтована модель складського обліку.

Реалізувати об'єктно-орієнтовану модель складського обліку. На складі міститься товари, для яких задаються назва, кількість, вартість, дата їх надходження. На склад надходять замовлення на відправку деякої продукції в заданій кількості заданому клієнту. Передбачити критичні ситуації, коли відсутня відповідна продукції, або немає потрібної кількості продукції.

Використати ієрархію класів для моделювання складської системи, наприклад, визначити клас замовлення (продукція, клієнт, кількість продукції, дата відправлення), клас продукції (назва, кількість, дата надходження), клас клієнта (назва, адреса тощо). Застосувати віртуальні функції для введення та відображення поточних даних про роботу складу та дружні функції для виконання процесу моделювання Продемонструвати роботу складу шляхом виведення на екран дати надходження товару, кількості товару, що є в наявності, дату відправки товару, повідомлення про створення критичної ситуації тощо. Закінчувати роботу програми відповідно до команди користувача.

5. Об’єктно-орієнтована модель обліку банківського майна.

Реалізувати об'єктно-орієнтовану модель для обліку банківського майна: банківських рахунків та акцій (цінних паперів). Банківські рахунки та акції є різновидом майна і мають властивість приносити дивіденди. Використати множинне успадкування, розробивши класи майна, джерела дивідендів, цінних паперів, банківських рахунків, акцій. Застосувати віртуальні функції для введення та відображення даних про поточний стан банку та дружні функції для моделювання роботи банку. Необхідно визначити курс акцій відповідно до їх кількості, суму на банківському рахунку в залежності від вкладу, терміну зберігання, процентних ставок. Передбачити ситуації краху банків з виведенням відповідних повідомлень на екран. Продемонструвати роботу банку шляхом виведення на екран поточного часу, банківських рахунків, курсу акцій за станом на заданий час, дивіденди, що їх отримують клієнти. Зупинка програми здійснюється за бажанням користувача.

6. Об’єктно-орієнтована модель для прогнозування тривалості життя людини.

Реалізувати об'єктно-орієнтовану модель, для прогнозування тривалості життя людини, якщо є відомості про спадковість людини на протязі трьох поколінь. Використати базові класи та множинне спадкування. Передбачити, що життя скорочується від наслідків успадкованих хвороб, від шкідливих звичок, від набутих хвороб. Життя подовжується від здорового образу життя, від інтелектуальної розумової праці. Для відображення на екрані параметрів, що характеризують батьків та синів, визначити віртуальні функції. Використати дружні функції для моделювання образу життя людини. Усі необхідні для розрахунку коефіцієнти задати самостійно. Продемонструвати погіршення або поліпшення стану синів відповідно до їх образу життя. Закінчувати роботу програми відповідно до команди користувача.

7. Об’єктно-орієнтована модель системи бронювання місць.

Реалізувати об'єктно-орієнтовану модель системи бронювання місць на літаки (потяги). Використати класи літаків (потягів), рейсів та пасажирів, ув’язавши їх абстрактним базовим класом, віртуальні функції для введення та відображення поточних даних, дружні функції для виконання сценарію роботи. Передбачити такі дії в системі: рейс із заданим номером додається до списку рейсів або вилучається, рейси не дублюються, якщо при додаванні їх номери співпадають, ім’я пасажира додається до списку пасажирів заданого рейсу або вилучається. За сценарієм роботи програми необхідно приймати замовлення від пасажира, здійснювати пошук інформації відповідно до замовлення, формувати відповідь пасажиру. Закінчувати роботу програми відповідно до команди користувача.

8. Об’єктно-орієнтована модель обчислення математичного виразу, заданого деревом.

Реалізувати об'єктно-орієнтовану модель, що визначає математичний вираз, представлений у вигляді дерева. Визначити класи абстрактного виразу та класи для різних типів виразів, наприклад, умовний вираз, арифметичний вираз, логічний вираз. Використати віртуальні функції для відображення виразу на екран (не використовувати константні вирази) і введення значень змінних.

Передбачити методи копіювання, визначення результату після підстановки значень змінних у вираз. За допомогою дружніх функцій реалізувати діалоговий режим роботи користувача для введення відповідних запитів.

9. Об’єктно-орієнтована модель побудови геометричних фігур.

Реалізувати об'єктно-орієнтовану модель геометричної фігури та похідні класи: точка, коло, прямокутник, трикутник та інші, об’єднавши їх у ієрархічну систему спадкування класів. Використати абстрактний клас для інтерфейсу похідних класів.

За допомогою дружніх функцій визначити взаємне розташування фігур, їх відображення та знайти координати точок їх перетину або торкання. Забезпечити візуальне перетворення фігур із одної форми у іншу (з крапки виростає коло, коло перетворюється у прямокутник, останній у трикутник і т. д.).

Використовувати віртуальні функції для вибору типу фігур і координат їх розташування. Закінчувати роботу програми відповідно до команди користувача.

10. Об’єктно-орієнтована модель побудови стереометричних фігур.

Реалізувати об’єктно-орієнтовану модель для різних стереометричних фігури: шар, піраміда, паралелепіпед, циліндр та інші. Визначити абстрактний базовий клас з чисто віртуальними функціями для введення та відображення параметрів фігур. За допомогою дружніх функцій забезпечити переміщення фігур по вибраній траєкторії з одночасним обертанням і зміною їх розмірів. Траєкторію задавати клавішами переміщення курсору та геометричним виразом (синусоїда, коло, спіраль тощо). Визначити методи перевірки можливості вписування одних фігур у інші при заданих розмірах фігур та їх розташуванню. Закінчувати роботу програми відповідно до команди користувача.

11. Об’єктно-орієнтована модель родоводу.

Реалізувати об’єктно-орієнтовану модель свого родоводу. Спрогнозувати риси свого характеру, вірогідність спадкування хвороб і поганих звичок попередніх поколінь, рівень інтелекту (бажано орієнтуватися на американську систему розрахунку IQ − intellect quality). Використати множинне спадкування класів, абстрактні базові класи для їх інтерфейсу, віртуальні функції для введення та відображення розрахункових параметрів, дружні функції для виконання процесу моделювання. Передбачити наявність критичних ситуацій, які можуть привести до змін у характері людини, визначити причини, які сприятимуть підвищенню або зменшенню IQ. Програма в динаміці моделює та відображає значення IQ та зміни характеру людини. Закінчувати роботу програми відповідно до команди користувача.

12. Об’єктно-орієнтована модель посадової ієрархії на підприємстві.

Реалізувати об’єктно-орієнтовану модель, що визначає ієрархію посад на підприємстві (директор, менеджери, системні адміністратори, програмісти, робітники). Визначити заробітну платню працівників підприємства відповідно до посади з урахуванням податків (20%) та видів оплати (погодинна: кількість відпрацьованих годин*годинна тарифна ставка; акордна оплата: обсяг робіт*віртість одиниці роботи ). Використати абстрактний клас для інтерфейсу класів, віртуальні функції для відображення результатів розрахунків, дружні функції для імітації роботи підприємства. Продемонструвати на екрані процес нараховування заробітної платні робітникам підприємства протягом одного календарного місяця. Врахувати можливість надання премій за якість роботи, стягнення штрафів за брак у роботі, підвищення окладів у зв’язку з підвищенням у посаді тощо. Закінчувати роботу програми відповідно до команди користувача.

13. Об’єктно-орієнтована модель календаря.

Реалізувати об’єктно-орієнтовану модель, що представляє календар. Базовий абстрактний клас зробити інтерфейсом і включити загальні методи відображення календарної дати та введення даних. Застосувати класи років століття, місяців, днів тижня та методи визначення дня тижня, на який випадає вказана з клавіатури дата, виведення дати у письмовому вигляді при її введенні за числовим форматом, розрахунку кількості тижнів, вихідних та святкових днів (враховувати свята в Україні або визначати країну, для якої дається довідка). Використати віртуальні функції для відображення результатів розрахунків і введення необхідних даних, дружні функції для реалізації діалогового режиму роботи користувача під час уведення запитів.

14. Об’єктно-орієнтована модель процесу навчання студентів у вузі.

Реалізувати об’єктно-орієнтовану модель процесу навчання студентів у вузі. Передбачити базовий клас "ВУЗ" і похідні −"Факультет", "Група", "Студент". У базовому класі визначити атрибути вузу. У класі "Група" визначити назву групи, кількість студентів, поточний курс, на якому навчається група, середній бал. Передбачити метод, що моделюють процес збільшення або зменшення студентів у групі, визначення кількості відрахованих студентів тощо. У класі "Студент" задати такі властивості, як: прізвище, успішність (середній бал), розмір стипендії. Передбачити методи, що моделюють процес відрахування з вузу за неуспішність, недопуск до сесії, нарахування стипендії за успішну здачу сесії, отримання диплома тощо. Використати віртуальні функції для введення та відображення результатів роботи програми та дружні функції для використання діалогового режиму роботи користувача у ситуаціях прийняття рішень щодо відрахування студента або переведення його на контрактну форму навчання.

15. Об’єктно-орієнтована модель періоду життя людини.

Реалізувати об’єктно-орієнтовану модель , що моделює певний період життя людини. Визначити базовий абстрактний клас для введення та відображення необхідних даних і похідні "Людина", "Стрес" тощо. Застосувати віртуальні функції для введення даних про тип характеру людини: холерик, сангвінік, меланхолік, флегматик; наявність стресових ситуацій. Показати як стресові ситуації впливають на людину відповідно до її типу. Виявити ситуації, в яких людина може отримати інфаркт, інсульт, депресію тощо. Усі необхідні дані задавати з клавіатури або зчитувати з файлу. Визначити дружні функції для реалізації діалогового режиму роботи користувача під час введення відповідних запитів.

16. Об’єктно-орієнтована модель роботи комп’ютера.

Створити програму, що моделює роботу комп’ютера. Використати базовий абстрактний клас для інтерфейсу класів, похідні класи для таких об’єктів, як: комп’ютер, його комплектуючі (вінчестер, пам’ять тощо), програмне забезпечення. Визначити віртуальні функції для введення та відображення на екрані даних про тип комп’ютера, характеристики вінчестера, обсяг оперативної пам’яті, програмне забезпечення тощо. За допомогою дружніх функцій відобразити процес моделювання роботи комп’ютера на екрані дисплея шляхом виведення даних про час роботи комп’ютера, дії користувача, момент створення аварійних ситуацій, стан програмного забезпечення тощо. Передбачити функції для імітації випробовування комп’ютера з метою визначення надійності функціонування встановленого програмного забезпечення, визначення аварійних ситуацій (виключення живлення, нестабільність напруги, порушення користувачами протоколів роботи, знищення користувачем системних файлів тощо), що можуть привести до припинення роботи комп’ютера та виходу його з ладу.

17. Об’єктно-орієнтована модель універсального виміру продуктивності алгоритмів.

Реалізувати об’єктно-орієнтовану модель універсального виміру продуктивності алгоритмів, операцій введення−виведення та інших операцій, критичних до часу виконання програмного коду.

Визначити базовий абстрактний клас для створення інтерфейсу класів і похідні класи "Таймер", "Програма", "Операція". В клас "Таймер" включити методи запуску таймера, припинення його роботи, визначення терміну виконання програми. В класі "Програма" визначити методи підрахунку кількості операцій, що виконується, визначення файлу, що містить програмний код. В класі "Операція" передбачити методи для аналізу швидкодії виконання конкретних операцій за алгоритмом задачі. Використати дружні функції для реалізації діалогового режиму роботи користувача під час введення відповідних запитів, віртуальні функції для тестування програм, які розв’язують одну й ту саму задачу за різним алгоритмом. Виконати порівняльний аналіз ефективності алгоритмів за критерієм мінімуму часу.

18. Об’єктно-орієнтована модель торговельної мережі комп’ютерної техніки.

Реалізувати об’єктно-орієнтовану модель торговельної мережі комп’ютерної техніки. Базовий клас містить чисто віртуальні методи введення та відображення даних про параметри комп’ютерів. Похідні класи визначають процеси оптової, роздрібної торгівлі та моделюють роботу адміністрації мережі. За допомогою віртуальних функцій виконати введення та відображення необхідних для моделювання даних. Необхідно визначити динаміку місячних продаж у кількісному та грошовому виразах (у гривнях та у доларовому еквіваленті), прибуток, який отримує торгова мережа. Передбачити можливість корекції цін на продукцію у зв’язку із зниженням попиту на продукцію або зниженням вартості на імпортовані комплектуючі. Використати дружні функції для моделювання роботи описаної торговельної мережі.

19. Об’єктно-орієнтована модель роботи аеропорту.

Реалізувати об’єктно-орієнтовану модель роботи аеропорту. Включити до ієрархії класи "Літак" для спостереження за часом польоту і затримкою літака, "Черга" для створення черги літаків, що очікують злету, "Аеропорт" для керування чергами літаків на землі та у повітрі. У класі "Аеропорт" передбачити обслуговування одного літака, що приземляється, та одного літака, що злітає за кожні десять тактів модельного часу, формування повідомлення про рух літаків і аварійне приземлення, що викликається закінченням палива або аварією літака. Використати дружні функції для діалогового режиму роботи користувача під час оперативної зміни вхідних даних та виходу з програми та віртуальні функції для введення та відображення даних у вигляді інформаційного табло. Закінчувати роботу програми відповідно до команди користувача.

20. Об’єктно-орієнтована модель представлення зовнішніх пристроїв комп’ютера

Реалізувати об’єктно-орієнтовану модель представлення зовнішніх пристроїв комп’ютера (дисководи, клавіатура, монітор, принтер, модем, "мишка" тощо). Визначити базовий абстрактний клас "Пристрій" як інтерфейс для похідних класів з методами введення та відображення необхідних даних. У похідні класи включити методи включення та виключення пристроїв, читання, запису, знищення даних на дисках, відображення даних на моніторі, виконання модемного зв’язку, імітації роботи клавіатури тощо. За допомогою дружніх функцій промоделювати роботу зовнішніх пристроїв комп’ютера з імітацією виходу з ладу деяких з них, заміни недієздатних пристроїв і погіршення якості роботи комп’ютера. Закінчувати роботу програми відповідно до команди користувача.

21. Об’єктно-орієнтована модель роботи програмного компілятора.

Реалізувати об’єктно-орієнтовану модель роботи програмного компілятора. Визначити базовий абстрактний клас "Компілятор" і похідні класи "Лексичний аналізатор", "Синтаксичний аналізатор" і "Генератор коду". У клас "Компілятор" включити методи зчитування рядків з файлу та їх запису до нього. У класі "Лексичний аналізатор" визначити методи формування лексем, виявлення її належності конкретному типу (імена змінних, константи, ключові слова, арифметичні операції, символи пунктуації). У класі "Синтаксичний аналізатор" реалізувати методи для виявлення синтаксичних помилок у лексемах і виконання постфіксного запису програми. У класі "Генератор коду" передбачити методи перетворення постфіксного коду у код у формі "четвірок" ("четвірка" − це об’єкт, який складається з чотирьох елементів: операції, двох операндів і результату), генерування символічного коду. За допомогою дружніх функцій продемонструвати роботу кожного з етапів компіляції.

22. Об’єктно-орієнтована модель процесу розробки комп’ютерної програми програмістом.

Реалізувати об’єктно-орієнтовану модель процесу розробки комп’ютерної програми програмістом. Визначити базовий абстрактний клас для зчитування рядків з файлу та їх запису до нього і похідні класи "Аналіз предметного середовища", "Об’єктно-орієнтоване проектування", "Розробка структури програми", "Розробка алгоритмів окремих методів", "Компіляція програми". У клас "Аналіз предметного середовища" включити методи виявлення програмних абстракцій та сценаріїв роботи системи. У класі "Об’єктно-орієнтоване проектування" подати методи визначення об’єктів програмної системи та класів, представниками яких є об’єкти. У класі "Розробка структури програми" реалізувати методи визначення архітектури програми і вигляді модулів і файлів. У класі "Розробка алгоритмів окремих методів" подати методи генерації алгоритмів методів.

За допомогою дружніх функцій промоделювати процес отримання програмного коду на основі постановки задачі, зчитаної з текстового файлу.

23. Об’єктно-орієнтована модель процесу постановки діагнозу хворим.

Реалізувати об’єктно-орієнтовану модель процесу постановки діагнозу хворим. Визначити базовий абстрактний клас для створення інтерфейсу класів і похідні класи для визначення ознак хвороб, діагнозів, прийняття рішень про відповідність множини ознак конкретній хворобі тощо. Застосувати віртуальні функції для введення необхідних для діагностики значень та відображення їх на екрані. За допомогою дружніх функцій виконати процес діагностики та вивести отриманий діагноз. У процесі діагностики використати діалоговий режим опитування хворого з метою отримання відомостей про наявні ознаки хвороби. Закінчувати роботу програми відповідно до команди користувача.

24. Об’єктно-орієнтована модель процесів мислення.

Реалізувати об’єктно-орієнтовану модель процесів мислення. Визначити базовий абстрактний клас як інтерфейс класів і похідні класи, які моделюють такі функції мозку, як отримання, обробку та видачу інформації. Клас, який визначає мозок, представити методами, які моделюють роботу множини процесорів подібно до нейронної мережі, працюючи у послідовно−паралельному режимі. У класі, який визначає процес прийняття рішень, використати методи, які виконують аналіз цілей і засобів їх досягнення. У класі, який зв’язаний із генерованою мозком інформацією, визначити методи формування конкретних понять, речень, висновків і виведення їх на екран. Закінчувати роботу програми відповідно до команди користувача.

25. Об’єктно-орієнтована модель процесу тестування знань учня.

Реалізувати об’єктно-орієнтовану модель процесу тестування знань учня. Визначити абстрактний базовий клас як інтерфейс класів і похідні класи "Учень", "Тестова система", "Екзаменатор" тощо. У класі "Учень" визначити методи, які моделюють процес тестування. У клас "Тестова система" включити методи, які генерують питання для тестування, приймають відповіді учня, виконують перевірку їх правильності, розраховують рейтинг оцінювання знань. У класі "Екзаменатор" реалізувати методи для розробки тестів, виявлення правильних відповідей, урахування неформального підходу до оцінювання знань. Використати віртуальні функції для введення та відображення необхідних даних про тести та учнів. За допомогою дружніх функцій виконати підсумковий аналіз якості знань. Тестові питання та відповіді запам’ятовувати у файлах. Закінчувати роботу програми відповідно до команди користувача.

26. Об’єктно-орієнтована модель процесу користування телефонною лінією.

Реалізувати об’єктно-орієнтовану модель процесу користування телефонною лінією. Визначити абстрактний базовий клас як інтерфейс класів і похідні класи, за допомогою яких можна визначити такі стани лінії: лінія вільна або зайнята, з’єднання установлено або перервано, номер зайнято або абонент відповідає, неправильно набрано номер, час вичерпано тощо. Використати віртуальні функції для введення та відображення необхідних даних про телефонну лінію та її абонентів та дружні функції для моделювання процесу її роботи. Закінчувати роботу програми відповідно до команди користувача.

ДОДАТОК Б

Міністерство освіти і науки, молоді та спорту україни тернопільський національний економічний університет факультет комп’ютерних інформаційних технологій

Кафедра комп’ютерних наук

КУРСОВИЙ ПРОЕКТ

з дисципліни “Об’єктно-орієнтоване програмування”

на тему:

«Назва курсового проекту»

Студент групи ________ ___________ ______________

(підпис) (ПІБ)

Керівник роботи __________ _ ______________

(підпис) (ПІБ)

Захищена “____”____________ 2012 р. з оцінкою ____________

Члени комісії: ___________ ___________________

(підпис) (ПІБ)

___________ ___________________

(підпис) (ПІБ)

Тернопіль – 2012

ДОДАТОК В

Міністерство освіти та науки України

Тернопільський національний економічний університет

Факультет комп’ютерних інформаційних технологій

Кафедра комп’ютерних наук

Спеціальність: Програмне забезпечення автоматизованих систем

Курс: __ Група: _______ Семестр: __

«Затверджую»

зав. кафедри КН

проф. Дивак М.П.

____________________

«___»__________20__р.

ЗАВДАННЯ

на курсовий проект з дисципліни

«Об’єктно-орієнтоване програмування»

______________________________________

(прізвище, ім’я, по-батькові)

  1. Тема проекту: _________________________________________________

  2. Структура пояснювальної записки до курсового проекту:______________

______________________________________________________________

3. Вхідні дані для виконання проекту:____________________________ ________________________________________________________________

4. Перелік рекомендованої літератури:_________________________________ ________________________________________________________________

5. Дата видачі завдання ______________

Керівник проекту_________________________

(підпис)

Завдання прийняв до виконання_____________________

(підпис)

ДОДАТОК B.

КАЛЕНДАРНИЙ ПЛАН

№п/п

Найменування етапів курсового проектування

Термін виконання етапів

Підписи керівника, студента

1

Отримання теми курсового проекту

2

Узгодження постановки проблеми з керівником

3

Пошук та вивчення літератури з питань курсового проекту

4

Постановка проблеми

5

Аналіз об’єкта досліджень

6

Визначення вимог

7

Алгоритм розв’язку задачі

8

Об’єктно-орієнтований аналіз

9

Об’єкно-орієнтоване проектування

10

Об’єктно-орієнтоване програмування

11

Тестування

12

Оформлення пояснювальної записки

13

Здача курсового проекту на перевірку

14

Захист

Студент__________________________

(підпис)

Керівник проекту_________________________

(підпис)

Додаток Д

Приклад оформлення пояснювальної записки.

ЗМІСТ

Вступ………………………………………………………….………….….6

1. Визначення вимог ………………………………………………….……8

2. Алгоритм розв’язку задачі ……………………………………….…...11

3. Об’єктно – орієнтований аналіз…………………………..…….…...13

4. Об’єктно-орієнтоване проектування……………………..…………17

5. Об’єктно-орієнтоване програмування……………………..………..21

6. Тестування……………………………………………………..……...23

Висновки……………………………………..…………………..………26

Список використаних джерел…………………..……………..….……27

Додаток А. Діаграма класів …………………………………………….28

Додаток Б. Лістинги кодів ……………………………...……...……….29

Вступ

Транспорт – найважливіша ланка у сфері економічних стосунків. Він бере участь у створенні продукції та доставці її споживачам, здійснює зв’язок між виробництвом та споживанням, між різними галузями господарства, між країнами та регіонами. Він впливає на розвиток господарства і як споживач металу, енергії, деревини, гуми, інших продуктів. На нього припадає значна частина основних виробничих фондів та промислово-виробничого персоналу. У світі в системі транспорту працює понад 100 млн. чол.

Транспорт – це комплекс, що складається з окремих видів: залізничного, морського, річкового, автомобільного, трубопровідного та повітряного. У них свої особливості, переваги, вади та сфера застосування. Вони взаємодіють між собою і становлять транспортну систему, що розвивається під впливом господарства у цілому та окремих його галузей. Найбільший вплив на транспорт справляє промисловість, бо вона формує основні вантажопотоки. Транспортний фактор є одним з вирішальних при розміщенні промислових підприємств.

Транспортна система - транспортна інфраструктура, транспортні підприємства, транспортні засоби та управління у сукупності. Єдина транспортна система забезпечує узгоджене розвиток і функціонування всіх видів транспорту з метою максимального задоволення транспортних потреб при мінімальних витратах.

Транспортними засобами звичайно виступають автомобілі, велосипеди, автобуси, поїзди, літаки.

Під управлінням розуміється контроль над системою, наприклад сигнали світлофора, стрілки на залізничних коліях, управління польотами, а також правила (серед іншого, правила фінансування системи: платні дороги, податок на паливо і т. д.). Управління транспортною системою - сукупність заходів спрямованих на ефективне функціонування даної системи

за допомогою координації, організації, упорядкування елементів даної системи, як між собою, так і з зовнішнім середовищем. У широкому сенсі,

розробка мереж - завдання цивільної інженерії і міського планування, розробка транспортних засобів - механічної інженерії і спеціалізованих розділів прикладної науки, а управління зазвичай спеціалізовано в рамках тієї чи іншої мережі, або ставиться до дослідження керування або системної інженерії.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]