Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zvit_ARM.doc
Скачиваний:
3
Добавлен:
02.03.2016
Размер:
806.4 Кб
Скачать

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

Природничо-гуманітарний коледж

Закарпатського державного університету

Реєстраційний номер ___________

Дата реєстрації ________________

Поповича Івана

студента ІІ курсу

групи КН-21

денної форми навчання

Автоматизація роботи магазину(АРМ)

Курсова робота з дисципліни

«Основи програмування та алгоритмізація мови»

    1. Допущено до захисту Науковий керівник:

Дата «____» _____________2013р. викл. Куртей Н.М.

Підпис _________________

        1. Ужгород 2013

Робота захищена «_____» _____________ 2013 р.

з оцінкою «_____________»

Підписи членів комісії _____________________________________

ЗМІСТ

Вступ 3

1 ТЕОРЕТИЧНА ЧАСТИНА 4

1.1 Загальні відомості 4

1.2 Опис предметної області та постановки задачі 8

1.3 Обґрунтування вибору методу розв’язку задачі 10

2 ПРАКТИЧНА ЧАСТИНА 12

2.1 Інформаційна структура моделі та алгоритму 12

2.1.1 Функціональні частини програми 13

2.1.3 Опис алгоритму 15

2.2 Тестування моделі 17

2.3 Інтерфейс та керівництво користувача 20

Висновок 21

Список використаної літератури 22

Додаток 1. Лістинг програми 23

Розвиток обчислювальної техніки супроводжується створенням нових і вдосконаленням існуючих мов програмування — засобів спілкування програмістів з ЕОМ.

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

Завдання на курсову роботу передбачає розробку програмного забезпечення: «АРМ». Дана тема є поширеною та актуальною, так як включає у собі роботу над базами даних. АРМ широко застосовують у всіх сферах масового виробництва та реалізації товарів. Данe програму можливо модифікувати і використовувати в реальних цілях.

До по початкової версії програми було внесено суттєві зміни щодо покращення продуктивності ПЗ.

1. Теоретична частина

1.1 Загальні відомості

Об'єктно-орієнтоване програмування (ООП) - це методика, яка концентрує основну увагу програміста на зв'язках між об'єктами, а не на деталях їх реалізації. У цій главі основні принципи ООП (інкапсуляція, спадкування, поліморфізм, створення класів і об'єктів) інтерпретуються і доповнюються новими поняттями і термінологією, прийнятими інтегрованої середовищем візуальної обробки C++ Builder. Наводиться опис розширень мови новими можливостями (компоненти, властивості, обробники подій) і останніх доповнень стандарту ANSI C (шаблони, простору імен, явні і непостійні оголошення, ідентифікація типів при виконанні програми, виключення).

Клас не має фізичної сутності, його найближчій аналогією є оголошення структури. Пам'ять виділяється тільки тоді, коли клас використовується для створення об'єкта. Цей процес також називається створенням екземпляра класу (class instance). Будь-який об'єкт мови C++ має однакові атрибути і функціональність з іншими об'єктами того ж класу. За створення своїх класів і поведінку об'єктів цих класів повну відповідальність несе сам програміст. Працюючи в деякому середовищі, програміст отримує доступ до великих бібліотек стандартних класів (наприклад, до Бібліотеки Візуальних Компонент C++ Builder). Зазвичай, об'єкт знаходиться в деякому унікальному стані, обумовленому поточними значеннями його атрибутів. Функціональність об'єктного класу визначається можливими операціями над екземпляром цього класу.

Визначення класу в мові C++ містить інкапсуляцію членів даних і методів, що оперують з членами даних і визначають поведінку об'єкта. Повертаючись до нашого прикладу, відзначимо, що рідкокристалічний дисплей годин "Casio" представляє член даних цього об'єкта, а кнопки управління - об'єктні методи. Натискаючи кнопки годин, можна оперувати з установками часу на дисплеї, тобто слідуючи термінології ООП, методи модифікують стан об'єкта шляхом зміни членів даних. C++ Builder вводить поняття компонент (components) - спеціальних класів, властивості яких представляють атрибути об'єктів, а їх методи реалізують операції над відповідними екземплярами компонентних класів. Поняття метод зазвичай використовується в контексті компонентних класів і зовні не відрізняється від терміна функція-член звичайного класу. C++ Builder дозволяє маніпулювати виглядом і функціональною поведінкою компонентів не тільки за допомогою методів (як це роблять функції-члени звичайних класів), а й за допомогою властивостей і подій, властивих тільки класам компонент. Працюючи в середовищі C++ Builder, напевно помітyj, що маніпулювати з компонентним об'єктом можна як на стадії проектування додатку, так і під час його виконання.

Інкапсуляція є об'єднання в єдиному об'єкті даних і кодів, що оперують з цими даними. У термінології ООП дані називаються членами даних (data members) об'єкта, а коди - об'єктними методами або функціями-членами (methods, member functions).

Інкапсуляція дозволяє в максимальному ступені ізолювати об'єкт від зовнішнього оточення. Вона суттєво підвищує надійність розроблюваних програм, тому що локалізовані в об'єкті функції обмінюються з програмою порівняно невеликими обсягами даних, причому кількість і тип цих даних звичайно ретельно контролюються. В результаті заміна або модифікація функцій і даних, інкапсульованих в об'єкт, як правило, не тягне за собою погано простежуються наслідків для програми в цілому (з метою підвищення захищеності програм в ООП майже не використовуються глобальні змінні). Іншим важливим наслідком інкапсуляції є легкість обміну об'єктами, переносу їх з однієї програми в іншу. Простота і доступність принципу інкапсуляції ООП стимулює програмістів до розширення Бібліотеки Візуальних Компонент, що входить до складу C++ Builder.

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

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

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

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

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