Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_oop.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.25 Mб
Скачать

Контрольные вопросы.

  1. Чем определяется количество заголовочных файлов в проекте?

  2. Когда используются модули? Что они представляют?

  3. Каково назначение подключаемых библиотек? Перечислить их виды и охарактеризовать.

  4. Преимущества и недостатки использования библиотек.

  5. Какие особенности объектно-ориентированного программирования использованы в данной работе?

  6. В чем заключается преимущество применения ООП в данной работе?

  7. В командной строке была введена следующая команда:

%gcc –o app –L. ltest app.o

компоновщик выдал ошибку

app.o: In function 'main';

app.o(.text+0x4): undefined reference to 'f'

collect2: ld returned 1 exit status

Какую операцию пытались выполнить, в чем заключается ошибка?

Лабораторная работа 6

Наследование и полиморфизм

Цель работы: отработка умений и навыков работы с механизмом наследования классов.

Задания

В лабораторной работе 2 вы создали и отладили работу некоторого класса. Неотъемлемыми принципами объектно-ориентированного программирования являются наследование и полиморфизм. В данной работе вам предложено создать класс – наследник, и, где это необходимо, перегрузить методы класса – родителя, предав новому классу новую функциональность.

см. лекцию lek4-6.pdf

В случае если непонятна формулировка вопроса, выполняйте задание так, как вы его понимаете, но предварительно объясните, как вы поняли задание, то есть сформулируйте ваше понимание данного задания.

  1. Разработать класс ChangeInteger – изменение массива, наследованный от класса IntegerSet. Напишите функцию-элемент insertElement, которая вставляет новое целое k в множество (устанавливает элемент а[k] равным 1). Напишите функцию-элемент deleteElement, которая удаляет из множества целое m (устанавливает элемент а[m] равным 0). Напишите функцию-элемент isEqualTo, которая определяет, равны ли друг другу два множества.

  2. Разработать класс NormVector – вектор единичной длины, наследованный от класса Vector.

Замечание: нормирование необходимо производить после любого изменения составляющих вектора. Соответственно необходимо перегрузить метод доступа к компонентам вектора.

  1. Разработать класс NormMatrix (матрица с единичным определителем), наследованный от класса Matrix.

Замечание: для упрощения пусть матрица будет размерностью до 3х3. Нормирование матрицы необходимо производить после любого изменения составляющих. Соответственно необходимо перегрузить метод доступа к ее компонентам.

  1. Разработать класс SortedArrayOfInt – упорядоченный массив целых чисел, наследованный от класса ArrayOfInt. Организовать сортировку по возрастанию и убыванию.

Замечание: сортировку массива необходимо производить после любого изменения его составляющих. Соответственно необходимо перегрузить метод доступа к его компонентам.

  1. Разработать класс EncryptedFile – шифрованный файл, наследованный от файла FileStream. В конструктор данного класса передавать ключ – последовательность из нескольких символов, все операции чтения и записи производить через виртуальную процедуру шифрования. Об алгоритме шифрования читайте в комментариях. Все остальные методы сохраняются аналогично классу FileStream.

  2. Реализовать класс ValidDate (корректная дата), наследованный от класса Date. При каждом изменении даты необходимо производить контроль корректности даты. Реализовать метод вывода печати в различных форматах.

  3. Реализовать класс ValidTime – корректное время, наследованный от класса Time. При каждом изменении времени необходимо производить контроль корректности времени. Реализовать методы форматного вывода этой информации.

  4. Реализовать класс Parallelepiped – параллелепипед, наследованный от класса Rectangular. Класс должен принимать третью величину – высоту (height) и находить объемные характеристики фигуры: площадь поверхности и объем. Организовать вывод новых результатов.

  5. Реализовать класс Sphere – сфера, наследованный от класса Circle. Класс должен находить и выводить объемные характеристики фигуры: площадь поверхности и объем.

  6. Разработать класс PolarComplex (комплексные числа, представленные в полярных координатах), наследованный от класса Complex. Ввод и вывод этих чисел осуществляется в полярных координатах, хранение и все остальные методы оставить родительские.

  7. Разработать класс AlternatingCurrent – переменный ток, наследованный от класса Current. Класс должен находить характеристики переменного электрического тока: активные, реактивные и полные сопротивление и мощность, а так же коэффициент мощности. Организовать вывод новых результатов.

  8. Разработать класс SRational – сокращенная дробь, наследованный от класса Rational. Класс должен сокращать дроби, при вводе данных и дроби полученные в результате действий над ними. Организовать вывод новых результатов.

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