- •Факультет інформатики та обчислювальної техніки
- •1 Зміст та оформлення лабораторної роботи
- •2 Теми лабораторних робот
- •3 Варіанти завдань до лабораторних робот
- •Лабораторна робота 1
- •Лабораторна робота 2
- •Лабораторна робота 3
- •Лабораторна робота 4
- •Лабораторна робота 5
- •Лабораторна робота 6
- •Лабораторна робота 7
- •Лабораторна робота 8
- •4 Довідкова інформація
- •5 Література
- •Запорізький національний технічний університет
- •Застосування конструкторів і деструкторів у класах
Лабораторна робота 7
Тема: успадкування, атрибути доступу та віртуальні функції
Варіант 1
Створити абстрактний клас для роботи з геометричними фігурами на екрані. Передбачити такі компоненти-властивості класу:
- координати центра фігури;
- кут повороту (у градусах);
- масштабний фактор;
і такі функції-методи:
- показати фігуру на екрані;
- зробити фігуру невидною (знищити її зображення);
- повернути фігуру на заданий кут (кут надається у градусах);
- пересунути фігуру на наданий вектор.
Застосовуючи успадкування і наведений вище абстрактний клас створити похідний клас для роботи з фігурою типу "трикутник". Визначити інтерфейсну частину у класах, застосувати атрибути доступу.
Варіант 2
Застосовуючи успадкування і наведений у завданні 7.1 абстрактний клас створити клас для роботи з фігурою типу "чотирикутник".
Варіант 3
Застосовуючи успадкування і наведений у завданні 7.1 абстрактний клас створити клас для роботи з фігурою типу "правильний n-кутник".
Варіант 4
Застосовуючи успадкування і наведений у завданні 7.1 абстрактний клас створити клас для роботи з фігурою типу "еліпс".
Варіант 5
Наданий такий клас:
class Base { public:
virtual void myname() { cout << "This is class Base" << endl; } };
а. Від цього класу треба створити два похідних класу: DerA і DerB.
б. Від класів DerA і DerB шляхом множинного успадкування створити клас DerAB.
в. Переозначити у кожному з створених класів функцію myname таким чином, щоб вона виводила на екран дійсне ім’я класу об’єкту, для якого вона викликається.
г. Для кожного з класів створеної ієрархії створити по одному об’єкту і для кожного з них викличте функцію myname.
д. Створіть масив із 4 покажчиків на базовий клас ієрархії. Для кожного з них створіть динамічний об’єкт, по одному для кожного з класів ієрархії. Запишіть виклик функції myname для кожного з динамічних об’єктів за допомогою покажчиків.
є. Поясніть дію функції mymain у всіх випадках.
Варіант 6
У файлах 7_05_a.cpp, 7_05_b.cpp, 7_05_c.cpp (див. Додаток Б) розміщені приклади програм, які ілюструють застосування класів для створення ефектів анімації. Розібратися як ці програми діють, виконати їх компіляцію, подивитися, як вони працюють.
Лабораторна робота 8
Тема: обробка надзвичайних ситуацій
Всі класи, що були створені при виконанні попередніх завдань, доробити, передбачивши обробку надзвичайних ситуацій. Надзвичайною ситуацією вважати:
- некоректні значенні операндів при виконанні операцій;
- некоректні значенні параметрів при викликах функцій - членів класів;
- не успішне виконання операції виділення оперативної пам’яті при створенні динамічного об’єкту;
- не успішне завершення операції відкриття файлу;
- інші випадки на розсуд студента.
Для обробки надзвичайної ситуації застосувати:
а) спеціально побудовані функції типу errhalt із модулю syst.h ;
б) макрозасіб типу assert ;
в) засоби throw, try, catch .