- •Рейтингова система оцінювання знань та умінь з ооп 2012-2013 н.Р.
- •Вимоги до звіту з лабораторних робіт
- •Класи потоків Лабораторна робота 1
- •1.1 Теоретичні відомості
- •1.1.1. Методи класів потоків
- •1.1.2. Маніпулятори
- •1.1.3. Деякі методи класів файлових потоків
- •1.2 Приклад програми Умова задачі
- •Алгоритм задачі
- •Текст програми
- •Результати виконання програми
- •1.3 Варіанти завдань
- •1.4 Контрольні запитання
- •Інкапсуляція. Інтерфейси класів . Діаграми прецедентів і класів Лабораторна робота 2
- •2.1 Теоретичні відомості Етапи об’єктно-орієнтованого проектування та моделювання
- •Діаграма варіантів використання(use-case diagram)
- •Ідентифікація класів
- •Ідентифікація атрибутів
- •Ідентифікація операцій (методів)
- •Типові схеми uml діаграм
- •2.2 Програма роботи
- •2.3 Варіанти завдань
- •2.4 Приклад виконання роботи Задача
- •Об’єктно-орієнтоване проектування Зображення класів в uml
- •Ідентифікація атрибутів
- •Структура проекту
- •Інтерфейси та реалізації класів програми
- •2.5 Контрольні запитання
- •Конструктори та деструктори класів Діаграми прецедентів і класів Лабораторна робота 3
- •3.1 Теоретичні відомості
- •3.2 Програма роботи
- •3.3 Варіанти завдань
- •3.4 Приклад виконання роботи Задача
- •Реалізація конструкторів і деструкторів деяких класів
- •3.5 Контрольні запитання
- •Методи класів: аксесори, ітератори, утілити, предикатні функції . Діаграми класів, діяльності, послідовності Лабораторна робота № 4
- •4.1 Теоретичні відомості
- •4.2 Програма роботи
- •4.3 Варіанти завдань
- •4.4 Приклад виконання роботи Задача
- •Реалізація деяких методів-аксесорів, предикатних функцій, функцій-утілит, методів, які забезпечують функціональність об’єктів
- •Результати виконання роботи
- •4.5 Контрольні запитання
- •Константні та статичні члени класів. Вбудовані функції. Діаграми класів, послідовності Лабораторна робота № 5
- •5.1 Теоретичні відомості
- •5.2 Програма роботи
- •5.3 Варіанти завдань
- •5.4 Приклад виконання роботи Задача 5_1
- •Приклади деяких константних елементів даних і методів класів
- •Фрагмент результатів виконання роботи
- •Задача 5_2
- •Приклади деяких статичних елементів даних і методів класів
- •Фрагмент результатів виконання роботи
- •5.5 Контрольні запитання
- •Перевантаження операцій та функцій. Дружні функції Діаграми класів, станів і переходів Лабораторна робота 6
- •6.1 Теоретичні відомості
- •6.2 Програма роботи
- •6.3 Варіанти завдань
- •6.4 Приклад виконання роботи
- •6.5 Контрольні запитання
- •Просте успадкування класів. Поліморфізм. Віртуальні функції Діаграма класів, кооперацій. Лабораторна робота 7
- •7.1 Теоретичні відомості
- •7.2 Програма роботи
- •9.2. Приклад програми Умова задачі 9
- •Алгоритм задачі 9
- •Текст програми 9
- •Результати роботи програми 9
- •9.3. Варіанти завдань
- •9.4. Контрольні запитання
- •Методи внутрішнього сортування (сортування масивів) Лабораторна робота 10
- •Методи зовнішнього сортування (сортування файлів) Лабораторна робота 11
Фрагмент результатів виконання роботи
5.5 Контрольні запитання
Яке призначення константних об’єктів?.
Які методи доцільно означувати як константні?
Які елементи даних класу доцільно означувати як константні?
Які існують правила використання константних функцій?
Чи можуть конструктори та деструктори бути константними? Поясніть свої твердження.
Як ініціалізувати константні елементи даних?
Яке призначення статичних елементів класу?
Чи можна оголосити статичну функцію як const?
Чи можливі посилання на покажчик this у тілі статичної функції?
В якому місці програми статична змінна класу ініціалізується?
Чи можна міняти значення статичної змінної?
Перевантаження операцій та функцій. Дружні функції Діаграми класів, станів і переходів Лабораторна робота 6
Мета роботи: вивчити особливості використання операторних функцій. Скласти програму, включивши до інтерфейсу класу операторні функції для переозначення арифметичних операцій, перетворення типів, виведення та введення об’єктів..
6.1 Теоретичні відомості
Дивись лекції
Розглянемо арифметичні операції.
//клас комплексних чисел у алгебричный формы
class complex{
double re, im;
public:
complex (double r=0,double i=0):re(r),im(i){};
complex (const complex& c):re(c.re),im(c.im){};
complex operator+ ( const complex&) const;
complex& operator+= ( const complex&);
double real() const {return re;};
double imag() const {return im;};
friend complex operator==( const complex& a, const complex& b);
friend ostream& operator<<(ostream &os, const complex& a);
};
//клас комплексних чисел у тригонометрічній формі
class Tcomplex
{
friend class complex;
double _rho, _phi;
public:
Tcomplex (double r=0,double a=0): _rho(r),_phi(a){};
operator complex ();
Tcomplex operator*(const Tcomplex&) const;
Tcomplex operator*=(const Tcomplex&);
double rho() const { return _rho;}
double phi() const { return _phi; }
};
//реалізації класу complex
complex& complex::operator+= (double a)
{
re += a;
return *this;
}
complex complex:: operator+ (const complex& a)const
{
complex res = *this;
return res+=a;
}
complex operator+(const complex& a, const complex& b)
{
complex res=a;
return res+=b;
}
complex operator==( const complex& a, const complex& b)
{
return (a.re()==b.re()) && (a.im()==b.im());
}
ostream& operator<<(ostream &os, const complex& a)
{
os<<"re="<<a.re()<<" im="<<a.im()<<endl;
return os;
}
//реалізації класу Tcomplex
Tcomplex::operator complex()
{
complex res(_rho*cos(_phi),_rho*sin(_phi));
return res;
}
6.2 Програма роботи
Доповнити інтерфейси та реалізації класів операторними функціями, що перевантажують стандартні операції для застосування їх до об’єктів. Перевантажити операції << (виведення на консоль) та >> (введення з консолі), застосувавши ці операції для введення та виведення об’єктів.
Доповнити інтерфейси та реалізації класів дружніми функціями, що не є членами класу та реалізують прямий доступ до закритих елементів даних класу. В якості дружніх функцій слід використовувати операторні функції перевантаження введення та виведення об’єктів.
Визначити можливість застосувати до об’єктів операції відношення, арифметичні, інкременту, декременту, індексування тощо, перевантаживши їх відповідними операторними функціями.
Подати приклад перевантаження операторів new та delete
Протестувати програму, під час роботи якої слід виконати такі дії:
застосувати перевантажені оператори new та delete для створення та знищення деяких об’єктів;
застосувати перевантажені операції введення та виведення потоком для зображення на екрані станів деяких об’єктів;
застосувати перевантажені операції відношення, арифметичні, інкременту, декременту, індексування тощо для реалізації арифметичних та інших дій над об’єктами;
реалізувати сценарій тестування згідно з діаграмами діяльності об’єктів;