Несколько заданий по Visual C++
Задание 1. Тема: инкапсуляция, перегрузка операции как пример полиморфизма, наследование.
1.1. Создать класс "Точка" на координатной плоскости. Данные класса - координаты точки по осям. Конструкторы класса: конструктор по умолчанию (начало координат), конструктор точки, лежащей на оси Ох, и конструктор произвольной точки. Методы класса: ввод точки, вывод на экран, определение радиус-вектора
точки и определение угла наклона к оси Ох. Проверять особые точки.
Написать клиентскую программу, которая создаст некоторое число статических и динамических объектов этого типа, и обратится к его методам.
1.2. Перегрузить операции сложения, вычитания для точек с использованием метода класса и дружественной
функции. Перегрузить унарную операцию ++ для инкрементирования координат точки как метод класса, а - как дружественную функцию.
1.3. Наследуемым классом для точки объявить класс "Траектория", имеющий метод "Draw", описывающий
движение точки по прямой между точкой начала и конца траектории. Определить конструктор траектории.
Вывести данные на экран с использованием метода базового класса.
Задание 2. Тема: перегруженные операции для классов.
Разработать и иллюстрировать применение класса "Рациональная дробь" со следующими перегруженными операциями:
"+" - сложение дробей,
"-" - вычитание дробей,
"*" - умножение дробей,
"/" - деление дробей,
"=" - присваивание дробей,
"= =" - проверка равенства,
"++" - выделение целой части.
При реализации методов использовать различные способы перегрузки. Использовать конструкторы по умолчанию и с параметрами.
Задание 3. Тема: Множественное наследование. Иерархия и контейнерные классы. Виртуальные базовые классы.
Часть 1. Создать иерархию типов файл для чтения, файл для записи и файл для чтения и записи. Классы должны иметь конструкторы с параметрами и перегруженные функции вывода в поток и ввода из потока.
Часть 2. Создать иерархию типов, описывающую файл, файл для чтения, файл для записи и файл для чтения и записи. Использовать виртуальный базовый класс.
Задание 4. Тема: Виртуальные функции.
Создать абстрактный класс "кривые" для вычисления координаты у(х). Создать производные классы: прямая, эллипс, гипербола со своими функциями вычисления у в зависимости от входного параметра х. Уравнение прямой: у=а*х+Ь , эллипса: х2/а2+у2/Ь2= 1, гиперболы: х2/а2-у2/Ь2= 1
Задание 5. Тема: Шаблоны классов.
Разработать и иллюстрировать применение шаблона класса Массив из N элементов для целого, вещественного и символьного типов данных, использующего следующие методы:Ввод значений, Печать значений, Упорядочение элементов массива, Вставка элемента в массив с сохранением упорядоченности. Выполнять контроль выхода индекса за границы массива.