Студопедия — ISВN 966-0000-00-0
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

ISВN 966-0000-00-0






 

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

Практикум призначено для студентів ВУЗів, що вивчають комп'ютерні науки.

 

ББК 32.973.26-01+18.2.75

 

Навчальне видання

 

Світлана Іванівна КОШИРЕЦЬ – канд. техн. наук, ст. викладач каф. обчисл. техніки

і моделювання технологічних процесів НЛТУ України

Микола Федорович САЛО – асист. каф. обчисл. техніки

і моделювання технологічних процесів НЛТУ України

Ярослав Іванович СОКОЛОВСЬКИЙ – доктор техн. наук, професор каф. обчисл. техніки

і моделювання технологічних процесів НЛТУ України

 

О'єктно-орієнтоване програмування мовою С++

 

ISВN 966-0000-00-0 Ó С.І. Коширець, М.Ф. Сало, Я.І. Соколовський, 2012


ЗМІСТ

ВСТУП.................................................................................................................... 6

Лабораторна робота №1. Робота в інтегрова- ному середовищі Visual Studio C++ 2010.......................................................................... 8

1.1. Програма роботи..................................................................................... 8

1.2. Вказівки до виконання роботи................................................................ 8

1.3.Теоретичні відомості................................................................................. 8

1.4. Зразок виконання роботи...................................................................... 12

1.5. Індивідуальні завдання.......................................................................... 15

1.6. Контрольні запитання............................................................................ 16

Лабораторна робота №2. Робота з класами, мАСИВИ ОБ’ЄКТІВ....................................................................................................................... 18

2.1. Програма роботи................................................................................... 18

2.2. Вказівки до виконання роботи.............................................................. 18

2.3. Теоретичні відомості.............................................................................. 18

2.4. Зразок виконання роботи...................................................................... 21

2.5. Індивідуальні завдання.......................................................................... 23

2.6. Контрольні запитання............................................................................ 25

Лабораторна робота №3. Робота з конструкторами та перевантаження методів класу................................................. 26

3.1. Програма роботи................................................................................... 26

3.2. Вказівки до виконання роботи.............................................................. 26

3.3. Теоретичні відомості.............................................................................. 26

3.4. Розширений опис завдання.................................................................... 31

3.5. Індивідуальні завдання.......................................................................... 32

3.6. Контрольні запитання............................................................................ 36

Лабораторна РОБОТА №4. Перевантаження операторів для класу......................................................................................................... 37

4.1. Програма роботи................................................................................... 37

4.2. Вказівки до виконання роботи.............................................................. 37

4.3. Теоретичні відомості.............................................................................. 37

4.4. Розширений опис завдання.................................................................... 40

4.5. Індивідуальні завдання.......................................................................... 40

4.6. Контрольні запитання............................................................................ 44

Лабораторна робота №5. одинарне Успадкування............. 45

5.1. Програма роботи................................................................................... 45

5.2. Вказівки до виконання роботи.............................................................. 45

5.3. Теоретичні відомості.............................................................................. 45

5.4. Зразок виконання роботи...................................................................... 48

5.5. Індивідуальні завдання.......................................................................... 50

5.6. Контрольні запитання............................................................................ 54

Лабораторна робота №6. Множинне успадкування........... 55

6.1. Програма роботи................................................................................... 55

6.2. Вказівки до виконання роботи.............................................................. 55

6.3. Теоретичні відомості.............................................................................. 55

6.4. Зразок виконання роботи...................................................................... 57

6.5. Індивідуальні завдання.......................................................................... 60

6.6. Контрольні запитання............................................................................ 64

Лабораторна робота №7. Поліморфізм та віртуальні функції 66

7.1. Програма роботи................................................................................... 66

7.2. Вказівки до виконання роботи.............................................................. 66

7.3. Теоретичні відомості.............................................................................. 66

7.4. Зразок виконання роботи...................................................................... 69

7.5. Індивідуальні завдання.......................................................................... 72

7.6. Контрольні запитання............................................................................ 74

Лабораторна робота №8. Шаблони функцій і класів........... 76

8.1. Програма роботи................................................................................... 76

8.2. Вказівки до виконання роботи.............................................................. 76

8.3. Теоретичні відомості.............................................................................. 76

8.4. Зразок виконання роботи...................................................................... 77

8.5. Індивідуальні завдання.......................................................................... 80

8.6. Контрольні запитання............................................................................ 82

Лабораторна робота №9. засоби ОПРА ЦЮВАННЯ ВИняткових СИТУАЦІЙ В C++...................................................................................... 84

9.1. Програма роботи................................................................................... 84

9.2. Вказівки до виконання роботи.............................................................. 84

9.3. Теоретичні відомості.............................................................................. 84

9.4. Зразок виконання роботи...................................................................... 89

9.5. Індивідуальні завдання.......................................................................... 90

9.6. Контрольні запитання............................................................................ 91

Лабораторна робота №10. Стандартні потокові класи...... 92

10.1. Програма роботи................................................................................. 92

10.2. Вказівки до виконання роботи............................................................ 92

10.3. Теоретичні відомості............................................................................ 92

10.4. Зразок виконання роботи.................................................................... 94

10.5. Індивідуальні завдання...................................................................... 100

10.6. Контрольні запитання........................................................................ 106

Лабораторна робота №11. Файлові і рядкові потоки........ 107

11.1. Програма роботи............................................................................... 107

11.2. Вказівки до виконання роботи.......................................................... 107

11.3. Теоретичні відомості.......................................................................... 107

11.4. Зразок виконання роботи.................................................................. 108

11.5. Індивідуальні завдання...................................................................... 110

11.6. Контрольні запитання........................................................................ 110

Лабораторна робота №12. Стандартна бібліотека шаблонів STL, контейнери та ітератори................................................................ 112

12.1. Програма роботи............................................................................... 112

12.2. Вказівки до виконання роботи.......................................................... 112

12.3. Теоретичні відомості.......................................................................... 112

12.4. Зразок виконання роботи.................................................................. 116

12.5. Індивідуальні завдання...................................................................... 118

12.6. Контрольні запитання........................................................................ 119

Лабораторна робота №13. Стандартна бібліотека шаблонів STL, Алгоритми............................................................................................ 120

13.1. Програма роботи............................................................................... 120

13.2. Вказівки до виконання роботи.......................................................... 120

13.3. Теоретичні відомості.......................................................................... 120

13.4. Зразок виконання роботи.................................................................. 122

13.5. Індивідуальні завдання...................................................................... 123

13.6. Контрольні запитання........................................................................ 124

Література...................................................................................................... 126

 

 


ВСТУП

У даному лабораторному практикумі підібрано низку лабораторних робіт, призначених для набуття студентами основних навиків об’єктно-орієнтованого програмування мовою С++ в середовищі Visual Studio.

Практикум побудовано таким чином, що в першій роботі описано методику роботи в інтегрованому середовищі Visual Studio C++, а саме в консольному і візуальному режимах, описано як правильно відлагоджувати та реалізовувати проекти використовуючи дане середовище. Решта робіт присвячені вивченню технології обєктно-орієнтованого і узагальненого підходу до програмування мовою С++. Перша частина робіт дає змогу отримати навики з створення класів та нанаданням їм функціональних можливостей, а також опису їх взаємодії. Дані роботи реалізовують основні принципи ООП: інкапсуляцію, поліморфізм та успадкування через конструктори і деструктори, перевантаження методів та операцій, просте і множинне успадкування, віртуальні функціх та абстрактні класи. Темі потокових класів писвячено дві роботи, які дають змогу навчитись контролювати різного роду потоки і форматувати їх дані при виводі, перевантажувати оператори вводу-виводу для роботи з власними типами даних. Окремою роботою виділено тему оброблення виключень з метою оволодіння концепцією програмування захисту від помилок, шляхом включення в код програми засобів контролю її нормального виконання. Друга частина практикуму дає змогу навчитись застосовувати шаблони проектування для вирішення поставлених задач, а саме вміти створювати контейнери, отримувати доступ до їх елементів за допомогою літераторів і виконувати різноманітні операції над об’єктами, використовуючи різні види алгоритмів.

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

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

В результаті виконання лабораторних робіт студенти:

· знатимуть синтаксис, симантику, технології та функціональні можливості об’єктно-орієнтованого програмування мовою С++;

· вмітимуть будувати діаграми класів і варіантів використання та описувати класи і відношення між ними для розв’язування сформульованих задач засобами мови С++, редагувати, відлагоджувати та реалізовувати програми в середовищі Visual Studio, використовувати в програмах шаблони STL для зменшення їх об’єму та часу виконання.

Матеріал цього практикуму значною мірою відповідає робочій навчальній програмі дисципліни " Об'єктно-орієнтоване програмування".

 
 

Лабораторна робота №1. Робота в інтегрованому середовищі Visual Studio C++ 2010

МЕТА РОБОТИ: ознайомитись з основними компонентами інтегрованого середовища Visual Studio C++ 2010, навчитись створювати, відлагоджувати та реалізовувати проекти програм використовуючи об’єктно-орієнтоване програмування.

1.1. Програма роботи

1.1.1. Отримати завдання.

1.1.2. Написати програми відповідних класів, основну та відповідні допоміжні функції, згідно з вказівками до виконання роботи.

1.1.3. Підготувати власні коректні вхідні дані (вказати їх формат і значення) і проаналізувати їх.

1.1.4. Оформити електронний звіт про роботу та захистити її.

1.2. Вказівки до виконання роботи

1.2.1. Студент, згідно з індивідуальним номером, вибирає своє завдання з розд. 1.5 і записує його до звіту.

1.2.2. Оголошення класу (структури), основну та відповідні допоміжні функції необхідно запрограмувати так, як це показано у розд. 1.4.

1.2.3. Власних вхідних даних необхідно підготувати не менше двох комплектів. Їхні значення мають бути коректними, знаходитися в розумних межах і відповідати тим умовам, які стосуються індивідуального завдання.

1.2.4. Звіт має містити такі розділи:

● мету роботи та завдання з записаною умовою задачі;

● коди всіх використовуваних.h і.ccp файлів, а також пояснення до них;

● результати реалізації програми, які виведені в вікно форми;

● діаграму класів з поясненням;

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

1.3.Теоретичні відомості

Програма в Visual Studio C++ 2010 являє собою проект, який містить вихідні файли на С++ та файли необхідних ресурсів (рис. 1). Перелік файлів, які входять в проект, а також властивості проекту зберігаються в файлі проекту з розширенням .vcxproj. Збірка проекту – процес перетворення вихідних файлів в деяке представлення: виконуючий файл (.ехе), динамічну (.DLL) чи статичну (.LIB) бібліотеку. В процесі збірки здійснюється компіляція вихідних файлів для отримання об’єктних файлів (файлів з кодом отриманих в результаті трансляції компілятором чи асемблером вихідного тексту програми) і їх компонування (зв’язування об’єктних модулів програми між собою і з бібліотеками часу виконання) в додатки чи бібліотечні модулі.

 

 
 
 
 

Рис. 1. Вікно середовища Visual Studio C++ 2010

1 – панель інструментів

2 – вікно редактора вихідного коду

3 – панель виводу інформації

4 – провідник задач (Explorer Solution)

Середовище Visual Studio C++ 2010 дає змогу використовувати декілька проектів разом в складі однієї задачі (анг. Solution), що значно полегшує розробку великих програмних комплексів, які складаються з декількох зв’язаних між собою проектів. Саме від налаштування цих зв’язків і залежить хід виконання задачі. Для налаштування зв’язків між проектами слід в контекстному меню проекту обрати пункт Project Dependencies.

Для створення нового проекту слід викликати майстер проектів (File–> New) і обрати тип проекту (рис. 2):

· Windows Application – додаток з віконним інтерфейсом;

· Console Application – консольний додаток;

· Static Library – статична бібліотека, файл .lib, що містить функції, котрі можуть бути скомпоновані в складі інших модулів;

· Dynamic Library – динамічна бібліотека,.DLL файл, який містить функції, що можуть сумісно використовуватись декількома додатками одночасно;

· MFC Application – додаток, який використовує бібліотеку базових класів MFC, що дає змогу створити віконні додатки в Windows.

· ATL Project – СОМ-сервер, організований у вигляді динамічної бібліотеки, виконавчого модуля чи сервісу, які використовують бібліотеку ATL.

Рис. 2. Вікно майстра проектів

Властивості будь-якого проекту можна редагувати, для цього слід обрати в контекстному меню проекту в провіднику задач (Explorer Solution) пункт Properties (рис. 3).

Рис. 3. Налаштування властивостей проекту

 

Для збірки проекту в складі однієї задачі слід натиснути клавішу F7, а щоб скомпілювати вихідний файл – Ctrl-F7.

Проект може бути поданий в двох основних конфігураціях: робочій і фінальній. Робоча конфігурація (Debug) модуля має більший розмір і меншу швидкодію, але найбільше забезпечує можливості редагування на рівні вихідного коду. При компіляції відключається оптимізація коду, в модуль поміщається додаткова інформація для редагування коду. Фінальна конфігурація (Release) характеризується меншим розміром і більшою швидкодією. Користувач може обрати необхідну конфігурацію із списку, що розкривається на панелі інструментів (рис. 4) і тоді при наступній збірці проект буде скомпільований і скомпонований в обраній конфігурації. Окрім цього користувач може обрати платформу (32-бітну чи 64-бітну) (рис. 4).

Рис. 4. Вибір конфігурації проекту

Для пакетної збірки проекту відразу ж в декількох конфігураціях можна скористатись командою Build–> Batch Build …

Для запуску активного проекту слід натиснути комбінацію Ctrl-F5, але якщо в задачі декілька проектів, то один з них можна помітити як активний обравши в контекстному меню проекту Set as StartUp Project.

Налагодження проекту – це процес пошуку і виправлення помилок в програмі. Для цього в даному середовищі можна використовувати наступні можливості:

· зупинення виконання програми в вказаних місцях;

· трасування (покрокове виконання) програми;

· перегляд і зміна значень змінних і вмістимого комірок пам’яті (в повних версіях середовища).

Для встановлення точок зупинки використовують клавішу F9. Для трасування програм використовують такі клавіші:

· F10 – виконати текучий оператор без входу в середину функції чи методу класу;

· F11 – виконати текучий оператор з входом в середину функції чи метод класу;

· Shift-F11 – продовжити виконання програми до виходу з текучої функції чи методу класу;

· Ctrl-F10 – продовжити виконання програми до досягнення позиції курсору;

· Alt-Num* – встановити курсор в позицію виконання наступного оператора;

· F5 – продовжити виконання програми.

Дане середовище розробки програм дає змогу внести зміни в програму в процесі її виправлення і продовжити виконання виправленої програми без перезапуску. Для цього після внесення змін в програму слід натиснути комбінацію Alt-F10 або одну з команд трасування програми.

Для зупинення роботи програми і виходу з режиму виправлення помилок слід натиснути комбінацію клавіш Shift–F5.

1.4. Зразок виконання роботи

Для створення нового проекту з формами потрібно обрати пункт меню File-> New-> Project-> CLR-> Windows Form і вказати ім’я проекту і паку для його зберігання. При цьому повинна з’явитись порожня форма та порожні файли для створення проекту (рис. 5) і ми з допомогою інструментів на панелі Toolbox вставляємо необхідні для її заповнення.

Рис. 5. Вигляд форми і провідника задач для проекту

Для збереження розмірів форми можна заблокувати її розгортання, задавши відповідну властивість форми MaximizeBox = False.

Тепер для опису класу потрібно обрати пункт меню Project-> Add Class

-> C++ Class і задати необхідні дані в вікні діалогу (рис. 6).

Рис. 6. Вікно діалогу для опису класу

Після цього середовище само автоматично створить відповідні файли з розширенням.h i.cpp. В заголовний файл потрібно розмістити опис класу (згідно діаграми класів – рис. 7), а в інший – визначення його функцій чи методів.







Дата добавления: 2014-11-10; просмотров: 943. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Тема: Изучение приспособленности организмов к среде обитания Цель:выяснить механизм образования приспособлений к среде обитания и их относительный характер, сделать вывод о том, что приспособленность – результат действия естественного отбора...

Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

Ганглиоблокаторы. Классификация. Механизм действия. Фармакодинамика. Применение.Побочные эфффекты Никотинчувствительные холинорецепторы (н-холинорецепторы) в основном локализованы на постсинаптических мембранах в синапсах скелетной мускулатуры...

Шов первичный, первично отсроченный, вторичный (показания) В зависимости от времени и условий наложения выделяют швы: 1) первичные...

Предпосылки, условия и движущие силы психического развития Предпосылки –это факторы. Факторы психического развития –это ведущие детерминанты развития чел. К ним относят: среду...

Studopedia.info - Студопедия - 2014-2024 год . (0.013 сек.) русская версия | украинская версия