Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЕКЗАМЕНАЦІЙНІ ПРАКТИЧНІ ЗАВДАННЯ ООП.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
126 Кб
Скачать
☆

Практичне завдання № 14

Перевантажити оператори = = и && наступного класу

class coord {

int x, у; // значения координат

public:

//потрібно добавите

конструктор ініціалізації;

функцію перевантаження операторів = = &&

дружню функцію вивода інформації

Створіть для нього конструктор ініціалізації, конструктор копіювання, функцію перевантаження оператора == і функцію перевантаження оператора && +, функцію виведення. Створити об'єкт c1 даного класа. На основі його створити об'єкт c2. Вивести на екран ці два об'єкти. Застосувати перевантаження операторів == і &&   Результати вивести на екран d3

ПРАКТИЧНЕ ЗАВДАННЯ № 15

Створюється клас inventory (інвентар), в якому зберігається назву якогось предмета, кількість виданих на руки штук і вартість однієї штуки. В програму для цього класу включити користувальницькі функціївведення та виведення, використовуючи дружню функцію перевантаження оператора <<     і дружню функцію перевантаження оператора >>

ПРАКТИЧНЕ ЗАВДАННЯ № 16

Створити клас "матриця". Даний клас містить покажчик на int, кількість рядків і стовпчиків, стан помилки. Визначити конструктор без параметрів, конструктор з одним параметром, конструктор із двома параметрами, деструктор. Визначити методи доступу: повертати значення елемента (і, j) та адресу цього елемента. Визначити функцію друку. Визначити функції додавання і віднімання (матриць), множення матриці на матрицю. Визначити множення матриці на число. Перевірити роботу класу. У випадку невистачі пам'яті, невідповідності розмірностей, виходу за межі масиву встановлювати код помилки.

ПРАКТИЧНЕ ЗАВДАННЯ № 17

Необхідно перевантажити оператор ++ для класа coord

class coord {

Int X, у; // значення координат

public:

// добавите

конструктор ініціалізації;

конструктор копіювання

функцію перегрузки оператора ++

дружню функцію вивода інформації

Створіть для нього конструктор ініціалізації, конструктор копіювання, функцію перевантаження оператора + +, дружню функцію виведення. Створити об'єкт c1 даного класа. На основі його створити об'єкт c2. Вивести на екран ці два об'єкти. Застосувати перевантаження оператора + +   Результати вивести на екран

ПРАКТИЧНЕ ЗАВДАННЯ № 18

Перегрузите оператор + относительно класса coord так, чтобы он был как бинарным, так и унарным оператором. При использовании в качестве унарного оператор + должен делать положительным значение любой отрицательной координаты.

class coord {

Int X, у; // значения координат

public:

добавьте

конструктор инициализации;

конструктор копирования

функцию перегрузки бинарного оператора +

функцию перегрузки унарного оператора +

функция вывода информации

Создайте для него конструктор инициализации, конструктор копирования, функцию перегрузки оператора + , функцию вывода.

Создать объект c1 даного класа. На основе его создать объект c2. Вывести на экран эти два объекта . Применить перегрузку бинарного оператора+ и унарного оператора +

Результати вывести на экран (189)

Практичне завдання № 19

Створити абстрактний тип даних - клас "вектор", що містить покажчик на int, число елементів і змінну стану.

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

...

ПРАКТИЧНЕ ЗАВДАННЯ №20

Спроектувати клас "Динамічний рядок" на основі типу даних char. Клас містить вказівник на рядок та розмірність.Визначити конс­труктор за замовчуванням, який створює рядок нульової довжини, конструктор з одним параметром, конструктор копіювання.

Визначити віртуальну функцію повернення елементу рядка із заданим індексом. Перевантажити оператор додавання для здійснення конкатенації рядків. Породити від даного класу клас "Динамічний контейнер рядків". Перевизначити віртуальну функцію повернення елемента заданого рядка із заданим номером.

ПРАКТИЧНЕ ЗАВДАННЯ № 21

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

ПРАКТИЧНЕ ЗАВДАННЯ № 22

Створити клас студент, що має ім'я (покажчик на рядок), курс та ідентифікаційний номер. Визначити конструктори за замовчуванням і з різним числом параметрів, деструктор і віртуальну функцію друку Show(),яка перевизначається у похідних класах.

Створити похідні класи : студент-дипломник, що має тему диплома та студент- заочник, який має місце розподілу на практику Перевизначити віртуальну функцію друку Show(), ПРАКТИЧНЕ ЗАВДАННЯ № 23

Написати загальний базовий клас fruit, що описує деякі характеристики фруктів. Цей клас успадковується двома похіднімі класами Apple, и Orange. Ці класи містять спеціальну інформацію про конкретній фрукті (яблуці або апельсіні).

ПРАКТИЧНЕ ЗАВДАННЯ № 24

Напишіть програму, в якій базовий клас dist використовується для зберігання у змінній типу double відстані між двома точками. У класі dist створіть віртуальну функцію trav_time (), яка виводить на екран час, необхідний для проходження цієї відстані з урахуванням того, що відстані ня задано в милях, а швидкість дорівнює 60 миль на годину. У похідному класі metric перевизначите функцію trav_time () так, щоб вона виводила на ек ран час, необхідний для проходження цієї відстані, вважаючи тепер що відстань задано в кілометрах, а швидкість рівна 100 кілометрів на годину

ПРАКТИЧНЕ ЗАВДАННЯ № 25

1. Створіть ієрархію класів для зберігання інформації про літальні апарати. Почніть з загального базового класу airship (дирижабля), призначеного для зберігання кількості перевезених пасажирів і кількості перевезеного вантажу (в фунтах). Потім створіть від класу airship два похідних airplane (літака) і balloon (повітряна куля). Клас airplane повинен зберігати тип літакового двигуна (гвинтовий або реактивний) і дальність польоту в милях. Клас balloon повинн зберігати інформацію про тип газу, використовуваного для підйому дирижабля (водень або гелій), і його максимальний стелю (у футах). Створіть коротку програму для демонстрації роботи цієї ієрархії класів.

ПРАКТИЧНЕ ЗАВДАННЯ № 26

Створіть вихідний базовий клас building для зберігання числа поверхів і кімнат у будинку, а також загальну площу кімнати. Створіть похідний клас будинку, який успадковує клас будівлі і зберігає число ванних кімнат і число спалень. Крім цього створіть похідний клас офісу, який успадковує клас будівлі і зберігає число вогнегасників і телефонів. Що відбувається з конструкторами і деструкторами відповідних класових Дати пояснення

ПРАКТИЧНЕ ЗАВДАННЯ № 27

  1. Створити абстрактний клас Figure з методами обчислення площі і периметра, а також методом, що виводить інформацію про фігуру на екран.

  2. Створити похідні класи: Rectangle (прямокутник), Circle (круг), Triangle (трикутник) з своїми методами обчислення площі і периметра.

  3. Створити масив n фігур і вивести повну інформацію про фігури на екран.

ПРАКТИЧНЕ ЗАВДАННЯ №28

  1. Створити абстрактний клас Видання з методами дозволяючими вивести на екран інформацію про видання, а також визначити чи є дане видання шуканим.

  2. Створити похідні класи: Книга (назва, прізвище автора, рік видання, видавництво), Стаття (назва, прізвище автора, назва журналу, його номер і рік видання), Електронний ресурс (назва, прізвище автора, посилання, анотація) з своїми методами виведення інформації на екран.

  3. Створити каталог (масив) з n видань, вивести повну інформацію з каталога, а також організувати пошук видань по прізвищу автора.

ПРАКТИЧНЕ ЗАВДАННЯ №29

  1. Створити абстрактний клас Trans з методами дозволяючими вивести на екран інформацію про транспортний засіб, а також визначити вантажопідйомність транспортного засобу.

  2. Створити похідні класи: Легковая_машина (марка, номер, швидкість, вантажопідйомність), Мотоцикл (марка, номер, швидкість, вантажопідйомність, наявність коляски, при цьому якщо коляска відсутня, то вантажопідйомність рівна 0), Грузовик (марка, номер, швидкість, вантажопідйомність, наявність причепа, при цьому якщо є причіп, то вантажопідйомність збільшується в два рази) з своїми методами виведення інформації на екран, і визначення вантажопідйомності.

  3. Створити базу (масив) з n машин, вивести повну інформацію з бази на екран, а також організувати пошук машин, що задовольняють вимогам вантажопідйомності.

ПРАКТИЧНЕ ЗАВДАННЯ №30

  1. Створити абстрактний клас Persona з методами, дозволяючим вивести на екран інформацію про персону, а також визначити її вік (на момент поточної дати).

  2. Створити похідні класи: Абітурієнт (прізвище, дата народження, спеціальність), Студент (прізвище, дата народження, факультет, курс), Викладач (прізвище, дата народження, посада, стаж), з своїми методами виведення інформації на екран, і визначення віку.

  3. Створити базу (масив) з n персон, вивести повну інформацію з бази на екран, а також організувати пошук персон, чий вік потрапляє в заданий діапазон.

ПРАКТИЧНЕ ЗАВДАННЯ №31

  1. Створити абстрактний клас Товар з методами, дозволяючим вивести на екран інформацію про товар, а також визначити, чи відповідає вона терміну придатності на поточну дату.

  2. Створити похідні класи: Продукт (назва, ціна, дата виробництва, термін придатності), Партія (назва, ціна, кількість шт, дата виробництва, термін придатності), Комплект (назви, ціна, перелік продуктів) з своїми методами виведення інформації на екран, і визначення відповідності терміну придатності.

  3. Створити базу (масив) з n товарів, вивести повну інформацію з бази на екран, а також організувати пошук простроченого товару (на момент поточної дати).