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

Индивидуальные задачи по дисциплине «Объектно-ориентированные системы и технологии»

Номер варианта задания – номер в списке в журнале группы. Программы необходимо разрабатывать в среде Visual Studio 2010 (язык программирования С++). Создаваемые проекты могут быть либо консольными приложениями, либо Windows-приложениями.

В темах 1 и 2 вначале содержится общее условие, а затем варианты индивидуальных заданий. Отчет по индивидуальным задачам должен содержать текст программы с подробным комментарием, описанием использованного алгоритма и результатами тестирования программы.

Каждая задача тем 1-5 оценивается максимум 3 балла. Задача 6 темы – 5 баллов.

Зміст

Индивидуальные задачи 3

по дисциплине 3

«Объектно-ориентированные системы и технологии» 3

Тема 1. Оголошення класів. Приховання даних. Конструктори й деструктори. Перевантаження функцій і конструкторів. Аргументи за замовчуванням 4

Тема 2. Масиви об'єктів. Покажчики на об'єкти 6

Тема 3. Перевантаження операторів 9

Тема 4. Спадкування 12

Тема 5. Основи організації уведення й виводу даних. Користувальницькі функції уведення й виводу об'єктів. Файлове уведення й вивід 15

Тема 6. Підвищений рівень складності 18

Література 21

Тема 1. Оголошення класів. Приховання даних. Конструктори й деструктори. Перевантаження функцій і конструкторів. Аргументи за замовчуванням

Загальне завдання для варіантів 1.1-1.25. Визначте клас. У кожному класі повинні бути конструктор по-умовчанню, конструктор з параметром (параметрами), деструктор. У конструкторі за замовчуванням дані вводяться із клавіатури. У деструкторі класу значення закритих елементів виводяться на екран. У функції main() створіть об'єкти класу з використанням конструктора по-умовчанню й конструктора з параметром, виведіть на екран значення закритих елементів класу.

1.1. Створіть клас для зберігання цілого числа N у вигляді закритої змінної класу. У класі визначте функцію, що повертає істину, якщо число є паліндромом, наприклад, як числа 2222, 1661, 7887.

1.2. Створіть клас для зберігання цілого числа N у вигляді закритої змінної класу. Визначте в класі функцію, що виводить на екран кількість цифр у числі й суму цифр числа.

1.3. Створіть клас для зберігання дійсних чисел x, y, z у закритих елементах. У класі визначте функції для установки значень закритих елементів класу, для виводу на екран x, y, z, для знаходження максимального із трьох.

1.4. Створіть клас для зберігання коефіцієнтів квадратного рівняння a, b, c у закритих елементах класу. Визначте в класі функцію для обчислення кореню квадратного рівняння, якщо кореню немає, то видається відповідне повідомлення на екран.

1.5. Створіть клас для зберігання значень a, d, n арифметичної прогресії. a, a+d, ..., a+(n-1)d, У класі визначте функцію для знаходження суми членів і функцію для знаходження N-го члена арифметичної прогресії.

1.6. Створіть клас для зберігання значень a, q, n геометричної прогресії. У класі визначте функцію для знаходження суми членів і функцію для знаходження N-ого члена геометричної прогресії.

1.7. Створіть клас для зберігання внутрішнього й зовнішнього радіуса кільця в закритих елементах. У класі визначте функції для знаходження площі кільця й довжини більшої або меншої окружності.

1.8. Створіть клас для зберігання катета й гіпотенузи прямокутного трикутника в закритих елементах. У класі визначте функції для знаходження другого катета й радіуса вписаної окружності.

1.9. Створіть клас для зберігання висоти й радіуса циліндра в закритих елементах. У класі визначте функції для знаходження обсягу й площі поверхні циліндра.

1.10. Створіть клас t_and_d, у якому зберігаються час і дата. У класі визначте функцію, що заносить в елементи класу поточний системний час і дату. Цей клас повинен містити в собі функція-член, що виводить час і дату на екран.

1.11. Створіть клас для зберігання катетів прямокутного трикутника. У класі визначте функції для знаходження гіпотенузи й площі.

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

1.13. Клас повинен зберігати кількість хвилин і його еквівалент у секундах. Передайте конструкторові класу число хвилин і при цьому він повинен вивести на екран число секунд. У деструкторі виводиться й кількість хвилин і еквівалент у секундах.

1.14. Створіть клас line, що малює на екрані лінію. Зберігайте довжину лінії у вигляді закритої цілої змінної len. Конструктор line повинен мати один параметр - довжину лінії. Він повинен зберігати довжину лінії й власне малювати лінію, використовуючи символ *.

1.15. Використовуйте клас, щоб поміняти місцями старший і молодший байти цілого (типу short int). У конструкторі класу виконується ініціалізація елемента класу, у якому зберігається ціле число. У деструкторі класу виводиться на екран закритий елемент класу.

1.16. Визначте клас для побайтного виводу значення типу double у двійковому вигляді

class bits {

double d;

public:

bits (double n) ;

void show_bits () ;

unsigned char c[sizeof (double)];

};

У конструкторі класу виконується ініціалізація елемента d.

1.17. Створіть клас stopwatch для імітації секундоміра. Використовуйте конструктор для початкової установки секундоміра в 0. Утворіть дві функції-члени start() і stop() відповідно для запуску й зупинки секундоміра. Включіть в клас і функцію-член show() для виводу на екран величини минулого проміжку часу. Також використайте деструктор для автоматичного виводу на екран часу, що пройшов з моменту створення об'єкта класу stopwatch, до його видалення. (Для простоти час приведіть у секундах.)

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

1.19. Створіть клас, у якому визначте змінну a – сторону квадрата. Визначте функцію-член класу, що повертає периметр квадрата або площу квадрата. Значення, що повертає функція, залежить від значення параметра функції (по-умовчанню функція повертає периметр).

1.20. Створіть клас, закритим елементом якого є масив цілих чисел. У конструкторі класу проініціалізуйте N елементів масиву, де N – параметр конструктора. У деструкторі виведіть на екран елементи масиву. У класі визначте функцію для виводу на екран елементів масиву, кратних 3.

1.21. Створіть клас, закритим елементом якого є масив цілих чисел. У деструкторі виведіть на екран елементи масиву. У класі визначте функцію для підрахунку кількості непарних чисел, що є елементами масиву.

1.22. Створіть клас для зберігання двох цілих. У класі визначите функцію для виводу на екран результату зведення першого цілого в ступінь другого. (Наприклад, користувач уводить 2 і 4, тоді результатом буде 24, або 16.)

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

1.24. Визначте клас трикутник, у якому зберігаються координати вершин трикутника в закритих елементах. Визначте в класі функцію для обчислення площі трикутника.

1.25. Напишіть функцію print(), що виводить рядок на екран.

void print (char *s, int how);

Якщо параметр how дорівнює значенню 0, текст виводиться в тім виді, у якому він заданий. Якщо параметр how дорівнює значенню 1, текст виводиться у верхньому регістрі. Якщо параметр how дорівнює значенню 2, текст виводиться в нижньому регістрі. Якщо параметр how не заданий, його значення за замовчуванням дорівнює -1, що говорить функції про необхідність повторно використати його попереднє значення.