Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab9.doc
Скачиваний:
7
Добавлен:
21.09.2019
Размер:
58.88 Кб
Скачать

5. Наслідування і перевизначення.

Завдяки наслідуванню породжений клас може наслідувати функціональність базових і добавляти до них свої нові можливості. Наприклад ми створюємо клас тварини (animals) і породити від нього два нових класи собака (dog) і пташка(bird). Вони мають один і той же базовий клас (мають усі його методи). Наприклад, є в них метод Move().

void animals::Move()

{

cout << “M O V E”;

}

Поки, що вони мають такий самий метод. Але ми його можемо перевизначити:

void dog::Move()

{

cout << “R U N”;

}

void bird::Move()

{

cout << “F L Y”;

}

І тепер коли ми викличемо цей метод, то для кожного класу він буде виводити різний текст в залежності від класу об’єкта.

Завдання

1. Побудувати систему класів для опису плоских геометричних фігур: коло, квадрат, прямокутник. Передбачити методи для створення об'єктів, переміщення на площини, зміни розмірів і обертання на заданий кут.

2. Побудувати опис класу, що містить інформацію про поштову адресу організації. Передбачити можливість роздільної зміни складових частин адреси, створення і знищення об'єктів цього класу.

3. Скласти опис класу для представлення комплексних чисел з можливістю задання дійсної і уявної частин як числами типів double, так і цілими числами. Забезпечити виконання операцій додавання, віднімання і множення комплексних чисел.

5. Скласти опис класу для об'єктів - векторів, що задаються координатами кінців у тривимірному просторі. Забезпечити операції додавання і віднімання векторів з одержанням нового вектора ( чи суми/різниці), обчислення скалярного добутку двох векторів, довжини вектора, cos кута між векторами.

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

7. Скласти опис класу для визначення одномірних масивів цілих чисел (векторів). Передбачити можливість звертання до окремого елементу масиву з контролем виходу за межі індексів, можливість задання довільних границь індексів при створенні об'єкта і виконання операцій поелементного додавання і віднімання масивів з однаковими межами індексів, множення і ділення всіх елементів масиву на скаляр, друку (виводу на екран) елементів масиву по індексах і всього масиву.

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

9. Скласти опис класу многочленів від однієї змінної, що задаються ступенем многочлена і масивом коефіцієнтів. Передбачити методи для обчислення значення многочлена для заданого аргументу, операції додавання, віднімання і множення многочленів з одержанням нового об'єкта - многочлена, друк (вивід на екран) опису многочлена.

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

11. Скласти опис об'єктного типу TMatr, що забезпечує розміщення матриці довільного розміру з можливістю зміни числа рядків і стовпців, вивід на екран підматриці будь-якого розміру і всієї матриці.

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

13.Реалізуйте клас person, який містить дані для зберігання ПІБ, віку, професії, домашньої адреси та телефону людини. Напишіть функцію person::print(), яка виводить на екран дані про особу у вигляді візитної картки (відцентрувати ПІБ і т.п.)

14.Спроектуйте та реалізуйте клас quadratic для зберігання квадратного многочлена. Напишіть методи для знаходження дискримінанту, коренів многочлена та виводу многочлена на екран у звичному математичному вигляді.

15.Створіть клас для зберігання цілих чисел довжиною 10 байт. Забезпечте виконання основних арифметичних операцій над об'єктами класу та стандартними цілими типами даних.

16.Для класу з варіанту 4 напишіть оператори вставки в потік (<<) та виділення з потоку (>>). Створіть методи для перетворення числового значення, що міститься в об'єкті, в стрічку та навпаки, із стрічки в число.

17.Реалізуйте клас matrix для зберігання цілочисельних матриць розміром до 10х10. Забезпечте індексацію елементів матриці, друк заданого стовпця, заданої стрічки та матриці загалом.

18.Для класу з варіанту 6 створіть методи для знаходження максимального та мінімального елементів матриці, а також метод для множення матриць (перевантажений оператор *).

19.Створіть клас vector для зберігання цілочисельного одномірного масиву розмірністю від 10 до 10 000 елементів. Пам'ять під елементи масиву виділяйте динамічно. Забезпечте індексацію елементів масиву.

20.Для класу з варіанту 8 реалізуйте методи для знаходження мінімального та максимального елементу масиву, сортування елементів у зростаючому порядку.

21.Розробіть клас myString для роботи із стрічковими даними. Клас повинен містити методи для роботи з потоками (<< та >>). Потрібно забезпечити можливість конкатенації стрічок (оператор +), операції присвоєння (=) та знаходження довжини стрічки.

22. Створити клас «точка з її координатами та кольором» . На його базі створити клас «лінія» (задавати двома точками) з функціями: відображення на екрані та переміщення по екрану. Також функції, які б повертали координати середини відрізка та довжину відрізка.

23. Створити клас книга в якому містилась би інформація про автора, рік видання, видавництво, тему, об’єм (к-ті сторінок). Створити методи як і б виводили список книжок одної тематики.

24. Створити клас книга в якому містилась би інформація про автора, рік видання, видавництво, тему, об’єм (к-ть сторінок). Створити методи як і б виводили всі книжки одного автора.

25. Створити клас книга в якому містилась би інформація про автора, рік видання, видавництво, тему, обсяг (к-ть сторінок). Створити методи як і б сортували бібліотеку за роками видання.

26. Створити базовий клас персона з даними про неї. Надбудовою має бути клас студент з доповненими даними про місце навчання та групу та клас група зі списком студентів. Передбачити функцію сортування записів про студентів в об’єкті група.

27. Використовуючи класи задачі 26 (доповнити клас студент полем хобі), створити функцію яка б з масиву студентів створювала їх групу, відбір робити за вподобаннями.

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

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

30. Створити клас регіон з наступними даними: назва обл., к-ть мешканців, площа, к-ть навчальних закладів, к-ть промислових підприємств. Створити метод для виконання наступної дії: побудувати стовпчикову діаграму зайнятості населення всіх областей.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]