скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыКурсовая работа: Програмування мовою С++ з використанням об’єктно-орієнтованого програмування

Курсовая работа: Програмування мовою С++ з використанням об’єктно-орієнтованого програмування

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

Вінницький національний технічний університет

Інститут Інформаційних технологій і комп’ютерної інженерії

Кафедра обчислювальної техніки

РОЗРОБКА ПРОГРАМ МОВОЮ С++ З ВИКОРИСТАННЯМ ТЕХНОЛОГІЇ ОБ’ЄКТНО-ОРІЄНТОВАНОГО ПРОГРАМУВАННЯ.

Пояснювальна записка

До курсової роботи

З дисципліни «Програмування» за спеціальністю

«Комп’ютерн системи і мережі»

08-23.П.74.01.00.000.ПЗ

Керівник: курсової роботи

Ст. викладач каф. ОТ

Черняк О.І.

__________________

(підпис)

«___»_________ 2008 р.

Розробив

Ст.гр. 2КІ-07

____________ Черненко Ю.

(підпис)

Вінниця ВНТУ 2008 р.


Анотація

В даній курсовій роботі була виконана розробка програми на мові програмування С++ з використанням об’єктно-орієнтованого програмування, яка включала в себе роботу з файлами, класами, обробку числової інформації і роботу з графікою.


Зміст

Вступ

1. Аналіз стану технологій програмування та обґрунтування теми

2. Розробка програми виконання завдання

2.1. Розробка методу вирішення задачі

2.2 Структура даних і функцій

3. Розробка програми меню

4. Розробка та виконання тестового прикладу

5. Інструкція користувача

Висновки

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

Додатки


Вступ

Мова програмування Сi була розроблена в 1972 р. Деннисом Рiтчi, який є одним з авторів операцiйноi системи UNIX. Мова програмування Сi пізніше була використана для програмування цiеi системи, а також багатої бібліотеки обслуговуючих програм, оскільки, являлася універсальною мовою загального призначення, мова Сi зручна для програмування системних задач. Поява мікрокомп’ютерів закріпила позицii мови Сi. Було створено близько 30 його нових компіляторів, а після проведення Американським національним інститутом стандартів (American National Standards Institute) робiт по стандартизацii в області програмування почали розроблятися компілятори, що вiдповiдали опублікованому весною 1986 р. проекту стандарту.

Першим компілятором по стандарту ANSI являлась система Турбо Сi версii 1.0 фiрми Borland International. Ця система, що складається з компілятора мови Сi, пов'язаного з ним редактора, компоновщика i бібліотек, забезпечила користувачам зручну інтегровану операційну оболонку, а також суттєво полегшувала професійне програмування, в якому визначальними параметрами є висока швидкість компiляцii, висока якість згенерованого коду та невеликий об’єм оперативної пам’ять. Мова С серед сучасних мов програмування є однією iз найбільш поширених. Вона універсальна, але найбільш ефективне її використання в задачах системного програмування - розробки трансляторів, операційних систем, інструментальних засобів. Мова С добре зарекомендувала себе ефективністю, лаконічністю запису алгоритмів, логічною стрункістю програм. У багатьох випадках програми, написані на мові С, можна порівняти по швидкості з програмами, написаними на мові Асемблера, при цьому вони більш наглядн i прості у супроводі.

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

-в мові С реалізован окремі операцii низького рівня (а саме операцii над бітами). Окремі з таких операцій напряму вiдповiдають машинним командам;

- мова С підтриму механізм показчикiв на змiннi i функцii;

-базовi типи даних мови С відображають тi ж об’єкти, з якими потрібно мати справу програм на мові Асемблера,- байти, машинні слова, символи, строки;

- як в нiякiй iншiй мові програмування високого рівня в мові С накладаються лише незначн обмеження на перетворення типів даних;

- не дивлячись на ефективність потужність конструкцii мови С, він відносно малий по об'єму, але в системне оточення мови С входить бібліотека стандартних функцій, в який реалізован встроенi оператори введення - виведення, динамічного розподілу пам’ять, управління процесами i т.д.


1. Аналіз сучасного стану технологій програмування та обґрунтування теми

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

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

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

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

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

В С++ деякі об’єкти частиною самої мови. Але в цілому задача створення нових об’єктів полягає на користувача. В Borland C++ є велика кількість типів об’єктів, але реальне використання мови потребує утворення нових типів. Ефективність ООП проявляється тільки при утворенні і застосуванні груп зв'язаних між собою об'єктів. Так групи зазвичай називають ієрархіями класів. Розвиток цих ієрархій класів основою в діяльності ООП.

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

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

Характеристики об'єктів

Об'єкт – щось абстрактне, але з чітко визначеними властивостями чи ролями. У такому випадку схожі об'єкти володіють схожими властивостями і ролями, а несхожі, відповідно, ні. В об'єктно-орієнтованому програмуванні схожі об'єкти належать до тих самих, чи до схожих класів, так само як і в реальному житті.

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

Абстракція

Ціль об'єктно-орієнтованого програмування полягає в тому, щоб побачити в задачі абстракції об'єктів реального світу. Що за реальні об'єкти малися на увазі? Буквально будь-які, аби вони давали представлення про функціонування програм. Ці об'єкти можуть бути матеріальними — ракети, кулінарні книги, інструменти. Або вони можуть бути ролями — сторож, батько, художник. Вони можуть бути подіями — недостача пам'яті, розпродаж, закривання дверей. Тобто усе, що дає поняття про те, що в дійсност представляє із себе об'єкт.


Інкапсуляція

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

Модульність

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

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

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

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

Ієрархія

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

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

Наслідування часто пояснюють як можливість установити відношення "приналежності" між об'єктами, класами і типами даних. Явний приклад множинного спадкування: качконіс успадковує характерні риси як ссавців, так і пернатих. Без механізму спадкування вам доведеться постійно повторюватися. Таким чином, ієрархія — це ще одна характеристика об'єктів, яку завжди варто відшукувати, займаючись об'єктно-орієнтованими аналізом і проектуванням.

Поліморфізм

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

Огляд аналізу і проектування

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

З об'єктно-орієнтованого аналізу, як правило, починається цикл розробки; ми розглядаємо задачу з погляду класів і об'єктів.

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

Об’єктно-орієнтоване програмування полягає власне у втіленні в життя наших класів і об'єктів (використовуючи, у даному випадку, C++).

Темі об'єктно-орієнтованого аналізу і проектування присвячено чимало чудових глибоких праць: але практично всі автори — як теоретики, так і практики— згодні з думкою батька-засновника C++ Бъярна Страуструпа (Bjarne Stroustrop), який стверджує, що досконалих правил ідентифікації об'єктів проблемної області не буває. Експериментування, навчання на своїх успіхах і своїх помилках — це найкраще правило.

Методи аналізу

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

Аналіз поведінки

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

Аналіз області застосування

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

Страницы: 1, 2


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.