
ЗАВДАННЯ на практичні роботи по предмету ООП
ПРАКТИЧНА РОБОТА №1
Тема : Створення класів. Конструктори, деструктори
ІНДІВІДУАЛЬНІ ЗАВДАННЯ
ЗАВДАННЯ №101
Дан класс Rectangle. Створити конструктор без параметрів, як буду ініціалізувати закриті члені-дані нулями, конструктор ініціалізації, конструктор копіювання, деструктор. Класс містить функції знаходження периметра, площі , виведення даних на екран,
Створити два об’єкта, які будуть ініціалізуватись відповідними конструкторами.
# include <iostream.h>
class Rectangle
{
int m_x, m_y;
public:
Rectangle() {m_x = 0; m_y = 0;}
Rectangle (int x, int y):m_x(x), m_y(y) {}
void Show(){ cout << "m_x =" << m_x << " " "m_y=" << m_y;}
int Perimeter() {return 2*( m_x + m_y);}
int Area() {return m_x * m_y;}
};
void main()
{
Rectangle Rec1;
Rec1.Show();
cout << endl;
cout << " Perimeter =" << Rec1.Perimeter() << endl;;
cout << " Area =" << Rec1.Area() << endl;;
Rectangle Rec2(10, 5);
Rec2.Show();
cout << endl;
cout << " Perimeter =" << Rec2.Perimeter() << endl;;
cout << " Area =" << Rec2.Area() << endl;;
}
ЗАВДАННЯ № 102
Дан класс Date. Создать два конструктора Date( ). В первом случае данные задаются в виде строки символов, в другом — в виде трех целых.
Класс містить функції, виведення даних на екран,
Створити два об’єкта, які будуть ініціалізуватись відповідними конструкторами.
ЗАВДАННЯ № 103
Створити клас stack, який реалізує стек, який можна використовувати для зберігання символів. Створити два об'єкти s1 і s2 (s2 створюється шляхом привласнення s1). Символи реально розміщуються лише стек s1, але після виконання присвоювання об'єкт s2 також містить символи , які знаходяться в об'єкт s1. Створити конструктори і деструктори (84)
ЗАВДАННЯ № 104
Створити клас - "дата" з полями: день (1 - 31), місяць (1 - 12), рік (ціле число). Клас має конструктор, функції-члени установки дня, місяця і року, функції-члени повертання дня, місяця і року, а також дві функції-члени друку: друк по шаблону: "5 січня 1997 року" і "05.01.1997". Функції-члени установки полів класу повинні перевіряти коректність параметрів, що задаютьс
ЗАВДАННЯ № 105
Створити простий клас для рядків strtype, котрий містить сам рядок і її довжину. Коли створюється об'єкт strtype, для зберігання рядка виділяється пам'ять, і початкова довжина рядка встановлюється рівною нулю. Коли об'єкт strtype видаляється, ця пам'ять звільняється.
Створити конструктори ініціалізації, копіювання, деструктор (48)
Створити два об’єкта, які будуть ініціалізуватись відповідними конструкторами.
ЗАВДАННЯ № 106
Створіть клас prompt. Для виведення на екран рядка-запрошення включіть в клас конструктор. Крім рядка-запрошення конструктор повинен виконати введення набраного вами цілого. Збережіть це значення в закритой змінної count. При видаленні об'єкта типу prompt повинен бути поданий звуковий сигнал, причому стільки разів, скільки задано корисвач в змінної count. (80)
ЗАВДАННЯ № 107
Створити клас Array (Динамічний масив).У класі передбачити можливість добавлення нових елементів масиву при перевищенні розмірності масиву.
Клас містить конструктор ініціалізації ( розмірність задається з клавіатури), деструктор, функцію виведення елементів масиву.
Створити об’єкт Ar1 даного класу. Ооб’єкт ініціалізується конструктором ініціалізації. Вивести два об’єкта на екран з коментарями.
ЗАВДАННЯ № 108
Створити клас DinMas (Динамічний масив). Закритими даними-членами є розмірність масиву та вказівник на масив. Відкритими функціями-членами є : конструктор без параметрів ( ініціалізує масив із шести елементів), конструктор ініціалізації ( розмірність задається з клавіатури)деструктор, функцію виведення елементів масиву.
Створити два об’єкта Ar1 , Ar2 даного класу. Перший об’єкт ініціалізується конструктором без параметрів, другий – конструктором ініціалізації. Вивести два об’єкта на екран з коментарями.
ЗАВДАННЯ № 109
Створити клас Mas (Динамічний масив), який містить розмірність масиву та вказівник на масив, конструктор ініціалізації ( розмірність задається з клавіатури), конструктор копіювання, деструктор, функцію виведення елементів масиву.
Створити об’єкт Ar1 . Вивести об’єкт на екран з коментарями.
Створити об’єкт Ar2 на основі об’єкта Ar1 даного класу. Вивести об’єкт на екран з коментарями.
ЗАВДАННЯ № 110
Створити клас DinAr (Динамічний масив). Клас повинен містити конструктор без параметрів ( ініціалізує масив із п’яти елементів), конструктор ініціалізації деструктор, функцію знаходження мінімального елемента ,функцію виведення елементів масиву
Створити два об’єкта Ar1 , Ar2 даного класу. Перший об’єкт ініціалізується конструктором без параметрів, другий – конструктором ініціалізації. Вивести два об’єкта на екран з коментарями.
У класі передбачити можливість добавлення нових елементів масиву при перевищенні розмірності масиву.
Середній рівень знань ( оцінка добре)
ЗАВДАННЯ №111
class strtype {
char *p;
int len;
public:
char *getstring() { return p; }
int getlength{) { return len; }
};
Добавьте в это определение два конструктора. В первом не должно быть параметров. Он должен выделять 255 байтов памяти (с помощью оператора new), инициализировать эту память нулевой строкой и устанавливать переменную len равной 255. Во втором конструкторе должно быть два параметра.
Первый — это строка, используемая при инициализации, второй — число выделяемых байтов. Во второй версии конструктора должно выделяться заданное количество памяти, в которую должна помещаться копия строки. Необходимо реализовать полный контроль границ массива и, разработав короткую программу вывода, показать, что оба конструктора работают так, как это было задумано.
ЗАВДАННЯ № 112
51,149
Створіть клас stopwatch для імітації секундоміра. Використовуйте конструктор для початкової установки секундоміра в 0. Утворіть дві функції-члена start () і stop () відповідно для запуску і зупинки секундоміра. Включіть в клас і функцію-член show () для виводу на екран величини минулого проміжку часу. Також використовуйте деструктор для автоматичного виведення на екран часу, що пройшов з моменту створення об'єкту класу stopwatch, до його видалення. (Для простоти час приведіть в секундах.) (51)
ЗАВДАННЯ № 113
Створіть клас t_and__d, яким при його створенні передається поточний системний час і дата у вигляді параметрів конструктора. Цей клас повинен включати в себе функцію-член, що виводить час і дату на екран. (Підказка: Для знаходження та виведення на екран цих даних скористайтеся стандартної бібліотечної функцією часу і дати.) (С57)
ЗАВДАННЯ № 114
Створіть клас box, конструктору якого передаються три значення типу double, що представляють собою довжини сторін паралелепіпеда. Клас box повинен підраховувати його обсяг і зберігати результат також у вигляді значення типу double. Включіть в клас функцію-член Show( ), яка буде виводити на екран об'єм будь-якого об'єкта типу box. (С57)
Високий рівень знань ( оцінка відмінно)
ЗАВДАННЯ № 115
ЗАВДАННЯ № 116
ЗАВДАННЯ № 117
ЗАВДАННЯ № 118
Створити клас "Vector", що містить покажчик на int, число елементів і змінну стану. Визначити конструктор без параметрів, конструктор з одним параметром, конструктор із двома параметрами. Конструктор без параметрів виділяє місце для одного елемента та ініціалізує його в нуль. Конструктор з одним параметром (розмір вектора) виділяє місце та ініціалізує нулями, конструктор із двома параметрами виділяє місце (перший аргумент) та ініціалізує другим аргументом. Деструктор звільняє пам'ять. Визначити функцію, яка присвоює елементу масиву деяке значення (параметр за замовчуванням), функцію яка повертає деякий елемент масиву. У змінну стану встановлювати код помилки, якщо не вистачає пам'яті або відбувається вихід за межі масиву. Визначити функцію друку
Завдання № 119
Створити клас DinMas (Динамічний масив).У класі передбачити можливість добавлення нових елементів масиву при перевищенні розмірності масиву.
Клас повинен містити конструктор без параметрів ( ініціалізує масив із п’яти елементів), конструктор ініціалізації ( розмірність задається з клавіатури), конструктор копіювання, деструктор, функцію виведення елементів масиву.
Також у класі визначити:
функцію, яка повертає кількість від’ємних елементів;
функцію, яка сортовує масив по-зростанню;
функцію, яка кожний елемент масиву множить на число типу int;
Створити два об’єкта Ar1 , Ar2 даного класу. Перший об’єкт ініціалізується конструктором без параметрів, другий – конструктором ініціалізації. Вивести два об’єкта на екран з коментарями.
Знайти кількість від’ємних елементі, відсортовати масив по-зростанню, кожний елемент масиву помножить на число чотири;
Створити об’єкт Ar3 на основі об’єкта Ar2 даного класу.
Результати вивести на екран.
Завдання № 120
Дан клас Mas (Динамічний масив). Клас містить конструктор без параметрів ( ініціалізує масив із сіми елементів), конструктор ініціалізації ( розмірність задається з клавіатури), конструктор копіювання, деструктор, функцію виведення елементів масиву.
Також у класі визначити:
функцію, яка повертає суму додатніх елементів;
функцію, яка вилучає елемент масиву, індекс якого вказує користувач;
функцію, яка сортовує масив по-зменьшенню;
Створити два об’єкта Ar1 , Ar2 даного класу. Перший об’єкт ініціалізується конструктором без параметрів, другий – конструктором ініціалізації. Вивести два об’єкта на екран з коментарями.
Створити об’єкт Ar3 на основі об’єкта Ar2 даного класу.
Знайти суму додатніх елементі, вилучити елемент масиву, індекс якого вказує користувачем, відсортовати масив по- зменьшенню. Результати вивести на екран.
ПРИМІТКА : У класі передбачити можливість добавлення нових елементів масиву при перевищенні розмірності масиву.
Завдання № 121
Дан клас Masiv (Динамічний масив).У класі передбачити можливість добавлення нових елементів масиву при перевищенні розмірності масиву.
Клас повинен містити конструктор без параметрів ( ініціалізує масив із п’яти елементів), конструктор ініціалізації ( розмірність задається з клавіатури), конструктор копіювання, деструктор, функцію виведення елементів масиву.
Також у класі визначити:
функцію, яка повертає кількість додатніх елементів;
функцію, яка вставляє новий елемент масиву у визначене місце;
функцію, яка кожний елемент масиву множить на число типу double;
Створити два об’єкта Ar1 , Ar2 даного класу. Перший об’єкт ініціалізується конструктором без параметрів, другий – конструктором ініціалізації. Вивести два об’єкта на екран з коментарями.
Знайти кількість додатніх елементі, вставляє новий елемент масиву, індекс якого вказує користувачем, кожний елемент масиву помножить на число типу double. Результати вивести на екран.
Завдання № 122
Дан клас Mas (Динамічний масив).Клас повинен містити конструктор без параметрів ( ініціалізує масив із восьми елементів), конструктор ініціалізації ( розмірність задається з клавіатури), конструктор копіювання, деструктор, функцію виведення елементів масиву.
Також у класі визначити:
функцію, яка повертає добуток від’ємних елементів;
функцію, яка сортовує масив по-зменьшенню;
функцію, яка кожний елемент масиву множить на число типу int;
Створити два об’єкта Ar1 , Ar2 даного класу. Перший об’єкт ініціалізується конструктором без параметрів, другий – конструктором ініціалізації. Вивести два об’єкта на екран з коментарями.
Знайти суму добуток від’ємних елементі, кожний елемент масиву помножить на число типу int; відсортовати масив по- зменьшенню. Результати вивести на екран.
ПРИМІТКА : У класі передбачити можливість добавлення нових елементів масиву при перевищенні розмірності масиву .Вивести результати
Створити об’єкт Ar3 на основі об’єкта Ar2 даного класу. Вивести об’єкт Ar3