Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПООП_курс_10.doc
Скачиваний:
3
Добавлен:
17.08.2019
Размер:
560.13 Кб
Скачать
    1. Аналіз роботи програмного забезпечення

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

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

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

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

5 Варіанти завдань

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

Таблиця 1. Варіанти завдань курсового проекту

Номер варіанту

Завдання

1

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

2

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

3

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

4

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

5

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

6

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

7

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

8

Розробити програму, яка моделює поведінку наступних об'єктів: на ігровому полі 30х30 деякі клітки позначені як «будиночки»; розташування будиночків випадкове; по полю можуть переміщатися три маркери, позначені як «поросята» і один маркер - «вовк»; у одному будиночку можуть ховатися не більше двох поросят; якщо вовк знаходиться біля будиночка 3 ігрових такта, то будиночок руйнується і поросята повинні тікаючи від вовка сховатися в іншому будиночку. Швидкість бігу поросят 1 клітка за 1 такт. При руйнуванні будиночка вовк реагує із запізнненням в 3 такти, але його швидкість бігу - 2 клітки за такт. Гра закінчується, якщо вовк потрапляє на ту ж клітку, де знаходиться порося. Користувач сам задає кількість будиночків на полі.

9

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

10

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

11

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

12

Розробити програму, яка моделює і візуально зображує наступну ситуацію: у 40-поверховій будівлі є 7 ліфтів, кожен з яких можна викликати з будь-якого поверху; ліфти з номерами 1-3 не зупиняються на поверхах 25-30 якщо їх туди направили натисненням кнопки в кабіні; аналогічно, ліфти з номерами 4-7 не зупиняються на поверхах 32-39; на кожному поверсі у кожного ліфта є дві кнопки виклику - вгору і вниз, відповідно; ліфт може зупинятися на поверсі, якщо напрям його руху співпадає з напрямом виклику.

13

Розробити програму, яка моделює і візуально зображує роботу лототрону. У обмеженій 2-мірній області випадковим чином позиціонуються 2-мірні кулі з початковими векторами руху. Вони змінюють вектор руху від ударів об стінки і один об одного. По натисканню кнопки користувач відкриває вікно в межах і процес моделювання зупиняється, коли одна з куль вилітає в нього (аналогія з більярдом). Користувач має можливість сам задавати кількість куль (від 3 до 20). Всі кулі пронумеровані. Необхідно висвітити номер кулі, що випала.

14

Розробити програму, яка моделює і візуально зображує наступний процес: робот обслуговує 3 верстати; час обробки деталей задає користувач в умовних тактах; деталь проходить послідовно обробку на всіх 3-х верстатах від першого до третього; деталі можуть поступити на вхідну позицію у будь-який час; між верстатами є проміжні накопичувачі касетного типу на 5 деталей; верстати можуть видавати сигнали «Закінчив обробку» і «Готовий», і отримують команду «Почати обробку». Система управління роботом повинна забезпечувати постійне завантаження верстата з найбільшою тривалістю обробки.

15

Розробити програму, яка моделює і візуально зображує наступний процес: у виділеній прямокутній області схемно відобразити рух «гусениць», які «з'їдають» матеріал області, прориваючи в ній ходи (аналог комп'ютерної гри «Snake»); «гусениці» повинні уникати руху по вже проритих ходах; процес моделювання закінчується, якщо весь матеріал «з'їдений» або «гусениці» наткнулися один на одного. Кількість об'єктів задається користувачем, початкове розташування - випадкове.

16

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

17

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

18

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

19

Розробити програму, що реалізовує наступну гру: на графічному полі розташовані коробки, з яких можуть з’являтися біси; якщо кликнути на коробці, коли біс вискочив, він ховається на 5 секунд; протягом 2 секунд, як коробка закрилася, вона позначається як «недоступна»; після 2 секунд на коробці можна кликати і, якщо клік виконаний не на 5-ій секунді, то біс вискакує; інакше біс залишається в коробці ще на 5 секунд, і протягом перших двох секунд коробки позначається як «недоступна». Кількість коробок вибирається користувачем.

20

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

21

Розробити програму, що імітує гру в кеглі. На ігровому полі в кінці доріжки розміщено 10 маркерів у вигляді рівностороннього трикутника, кожен маркер має вагу в 10 очок. На початку доріжки розташована куля, яку можна рухати ліворуч/праворуч і задавати вектор напряму удару. Після кидка кулі у фігурі вибиваються маркери, які розташовані на шляху проходження кулі. Початкове розташування маркерів оновлюється для кожного нового гравця, і в тому випадку, якщо були вибиті всі маркери одним гравцем, а ходи ще залишилися. Користувач може вибирати число гравців і число кидків. Після закінчення гри необхідно відобразити скільки очок набрали всі гравці.

22

Розробити програму, що реалізовує логічну гру «Пірамідка». Гра полягає в наступному: ігрове поле має розмірність 3 стовпчики на 5 рядків; в першому стовпчику розміщена пірамідка з 5 блоків; у першому рядку блок з найбільшою довжиною, в другій - менше, і т.д. Необхідно перекласти пірамідку в третій стовпець з такою ж послідовністю розташування блоків. Перекладати можна по одному блоку, виділяючи його мишкою і вказуючи нове розташування. При побудові нової пірамідки можна користуватися всіма трьома стовпчиками для проміжного розташування блоків, дотримуючись правила: блок можна покласти зверху тільки на блок з більшою довжиною, при спробі покласти на менший блок повинне видаватися повідомлення про неможливість виконати даний хід. Зняти виділення з вибраного блоку можна, натиснувши на ньому повторно.

23

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

24

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

25

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

26

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

27

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

28

Розробити програму ігрового автомату, який містить три вікна, у кожному з яких у випадковій послідовності прокручується набір з п’яти картинок. Час прокрутки залежить від тривалості натиску користувачем кнопки “Старт”. Виграш зараховується у випадку, коли по зупинці користувачем картинки у трьох вікнах співпадають.

29

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

30

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

31

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

СПИСОК ЛІТЕРАТУРИ

  1. Методичний посібник до оформлення дипломних та курсових проектів. Стандарт підприємства: - Кременчук. Видавничий відділ КДПУ. 2001р.

  2. Методичні вказівки щодо виконання курсового проекту з дисципліни “Проектування комп’ютеризованих систем управління”: -Кременчук. Видавничий відділ КДПУ.2001 р.22 с.

  3. Леоненков А.В. Нечеткое моделирование в среде MATLAB и fuzzyTECH./ Леоненков А.В – СПб.: БХВ-Петербург, 2003. – 736 с.

  4. The MathWorks, Inc. Matlab 6.0.0.88 Release 12. User guide. 2000.

  5. Эйкхофф П. Основы идентификации систем управления: Пер. с англ./ Эйкхофф П. -М.:Мир, 1975.-683с.

  6. Кулаков Г.Т. Инженерные экспресс-методы расчета промышленных систем регулирования: Спр. пособие./ Кулаков Г.Т. - Мн.: Выш. шк., 1984.- 192с.

  7. Архангельский В.И. Системы фуцци-управления./ Архангельский В.И., Богаенко И.М., Грабовский Г.Г., Рюмшин М.О. –К.: Техника, 1997. – 208 с.

  8. Дьяконов В. Matlab: учебный курс./ Дьяконов В. - СПб.: Питер, 2001. – 560 с.

  9. Дьяконов В. Математические пакеты расширения Matlab. Специальный справочник./ Дьяконов В., Круглов В. - СПб.: Питер, 2001. – 480 с.

  10. Ротштейн А.П. Интеллектуальные технологии идентификации: нечеткие множества, генетические алгоритмы, нейронные сети./ Ротштейн А.П. – Винница "УНІВЕРСУМ-Вінниця", 1999. - 320с.

  11. Каллан, Роберт Основные концепции нейронных сетей. : Пер. с англ./Каллан, Роберт – М.: Издательский дом "Вильямс", 2001. – 288с.

  12. Роберт Левин, Практическое введение в технологию искусственного интеллекта и экспертных систем с иллюстрациями на бейсике./ Роберт Левин, Диана Дранг, Барри Эделсон: Пер. с англ. Москва, 2000.

  13. Cohn, P.R. and E.A.Feigenbaum: The Handbook of Artificial Intelligence. Volumes ІІІ.

  14. HeurislTech Press and William Kaufman, Inc., Los Allos, CA, 1981. Clocksin, W.F. and C.S. Mellish: Programming in PROLOG. Springer-Velarg, New York, Inc.1984.

  15. Graham, Neil: Artificial Intelligence - Making Machines "Think". TAB Books Inc., Blue Ridge Summit, PA, 1979.

  16. Hayes-Roth, F., D.A. Waterman, and D.B. Lenat: Building Expert Systems. Addison-Wesley Publishing Co Inc., Reading, MA, 1983. Lipschutz, S.: Finite Mathematics. McGraw-Hill Book Company, New York, 1966

  17. Naylor, Chris: Build Your Own Expert System. Halstes Press, a Division of John Willeyand Sons Inc. New York, 1983.

  18. Negoita, C.N.: Expert Systems and Fuzzy Systems. The Benjamin/Cammings Publishing Co., Menlo Park, CA, 1985.

  19. Winston, P.H. and B.K.P Horn: LISP. Addison-Wesley Publishing Co. Inc., Reading, MA,1981.

  20. Искусственный интеллектHayes-Roth, F.: "The Knowledge-Based Expert System: A Tutorial". IEEECOMPUTER, vol. 17, no. 9, September 1984, pp. 11-28.

  21. Представление знаний (семантические сети, PROLOG и т.д.) IEEE COMPUTER, vol. 16, no. 10, October 1983

ДОДАТОК А

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

КРЕМЕНЧУЦЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

ІМЕНІ МИХАЙЛА ОСТРОГРАДСЬКОГО

ІНСТИТУТ ЕЛЕКТРОМЕХАНІКИ, ЕНЕРГОЗБЕРЕЖЕННЯ

І СИСТЕМ УПРАВЛІННЯ

КАФЕДРА систем автоматичного управління і електроприводу

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

З ДИСЦИПЛІНИ:

“ ПРИКЛАДНЕ ОБ'ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ ”

НА ТЕМУ: „ …ТЕМА… ”

Розробив: студент групи СУ-07-1м

Іванов О.О.

Перевірив: Конох І.С.

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