- •Часть 2
- •Часть 2
- •Лабораторная работа №1 Тема: “Простейшие классы”
- •Основные понятия
- •Пример 1: Класс, описывающий окружность.
- •Пример 2: Класс, описывающий точку.
- •Пример 3: Класс, описывающий двумерный массив.
- •Задания для самостоятельного выполнения
- •Лабораторная работа №2 Тема: “Конструкторы и деструкторы”
- •Пример 1: Класс, описывающий животное.
- •Пример 2: Класс, описывающий время.
- •Пример 3: Класс, описывающий двумерный массив.
- •Задания для самостоятельного выполнения
- •Лабораторная работа №3 Тема: “Перегрузка операций”
- •Пример 1: Класс, описывающий окружность.
- •Пример 2: Класс, описывающий прямоугольник.
- •Пример 3: Класс, описывающий строку символов
- •Задания для самостоятельного выполнения
- •Лабораторная работа №4 Тема: “Классы динамических структур” Пример 1: Класс, описывающий двунаправленный список
- •Пример 2: Класс, описывающий бинарное дерево
- •Задания для самостоятельного выполнения
- •Лабораторная работа №5 Тема: “Шаблонные классы”
- •Пример : Класс, описывающий множество.
- •Задания для самостоятельного выполнения
- •Лабораторная работа №6 Тема: “Наследование”
- •Пример 1: Классы, описывающие точку, окружность и конус.
- •Задания для самостоятельного выполнения
- •Лабораторная работа №7 Тема: “Полиморфизм и виртуальные функции”
- •Пример : Классы, описывающие точки и окружности.
- •Задания для самостоятельного выполнения
- •Лабораторная работа №8 Тема: “Разреженные массивы” Пример: Класс, описывающий разреженный массив
- •Задания для самостоятельного выполнения
- •Лабораторная работа №9 Тема: “Виртуальные функции в динамических структурах” Пример: Класс, описывающий базовый класс списка и производный класс стека
- •Задания для самостоятельного выполнения
- •Лабораторная работа №10 Тема: “Вычисление выражений, вводимых с клавиатуры”
- •Пример: Шаблонный класс для вычисления значения выражения, вводимого с клавиатуры
- •Пошаговое выполнение программы
- •Задание для самостоятельного выполнения
Задания для самостоятельного выполнения
Разработать класс Integer для работы с целыми числами. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытому члену класса. Кроме этого определить функцию-член, определяющую является ли целое число простым числом.
Разработать класс Real для работы с вещественными числами. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытому члену класса. Кроме этого определить функцию-член, сумму цифр целой и дробной части числа.
Разработать класс Byte для работы с беззнаковыми целыми. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытому члену класса. Кроме этого определить функцию-член класса, вычисляющую восьмеричный эквивалент беззнакового целого числа.
Разработать класс Word для работы с беззнаковыми целыми. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытому члену класса. Кроме этого определить логическую функцию-член класса, определяющую, является ли данное беззнаковое целое число палиндромом, то есть числом, которое читается слева направо и справа налево одинаково.
Разработать класс String для работы со строками. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Кроме этого определить функцию-член, которая из двух строк создает третью строку, содержащую общие символы первой и второй строки без их дублирования.
Разработать класс Date для работы с датами. Класс должен содержать основной конструктор, конструктор по умолчанию и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Кроме этого определить функцию-член TodayDate(), которая возвращает системную дату объекту класса Date.
Разработать класс Time для работы с временными параметрами. Класс должен содержать основной конструктор, конструктор по умолчанию и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Кроме этого определить функцию-член TodayTime(), которая возвращает системное время объекту класса Time.
Разработать класс Complex для работы с комплексными числами. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Кроме этого определить функции-члены класса, задающие основные арифметические операции с комплексными числами (сложение, вычитание, умножение и деление комплексных чисел). Выполнить все арифметические действия при помощи этих функций, отображая результат на экране дисплея.
Разработать класс Point для работы с объектами типа точка на плоскости. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Кроме этого определить функцию-член класса, позволяющую вывести на экран дисплея координаты середины линии, соединяющей две заданные точки.
Разработать класс Line для работы с объектами типа отрезок. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытому члену класса. Создать функцию-член, определяющую возможность построения треугольника по трем отрезкам и вычислить площадь этого треугольника.
Разработать класс String для работы со строками. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Кроме этого определить функцию-член, которая по двум данным строкам создает третью строку, являющейся конкатенацией исходных строк.
Создать класс IntVector для работы с одномерными массивами (векторами) целых чисел. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытому члену класса, определяющему размер массива. Дополнительно определить функцию-член этого класса, которая находит угол между двумя векторами, имеющими одинаковую размерность.
Создать класс DoubleVector для работы с одномерными массивами (векторами) вещественных чисел. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытому члену класса, определяющему размер массива. Дополнительно определить функцию-член этого класса, которая вычисляет векторное произведение двух исходных векторов. Исходные вектора должны быть третьего порядка.
Создать класс Circle для работы с плоскими окружностями. В качестве члена данного задается длина радиуса окружности. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытому члену этого класса. Дополнительно определить функцию-член этого класса, вычисляющую площадь круга.
Разработать класс Rectangle для работы с плоскими прямоугольниками, стороны которого параллельны осям координат. В качестве членов-данных задать координаты двух точек прямоугольника (левую верхнюю точку и нижнюю правую). Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса, задающим координаты двух вершин прямоугольника. Дополнительно определить функцию-член этого класса, которая определяет площадь вписанного в исходный прямоугольник серединного четырехугольника (четырехугольника, получаемого в результате последовательного соединения середин сторон исходного прямоугольника).
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных задаются координаты вершин треугольника. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, доступ к закрытым членам класса и логическую функцию, определяющую возможность построения треугольника. Дополнительно определить функцию-член этого класса, которая определяет принадлежность точки с заданными координатами треугольнику.
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных задаются длины трех сторон треугольника. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, доступ к закрытым членам класса и логическую функцию, определяющую возможность построения треугольника. Дополнительно определить функцию-член этого класса, которая вычисляет площадь треугольника.
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных задаются длины трех сторон треугольника. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, доступ к закрытым членам класса и логическую функцию, определяющую возможность построения треугольника. Дополнительно определить функцию-член этого класса, которая вычисляет длины всех высот треугольника.
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных задаются длины трех сторон треугольника. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, доступ к закрытым членам класса и логическую функцию, определяющую возможность построения треугольника. Дополнительно определить функцию-член этого класса, которая вычисляет длины всех биссектрис треугольника.
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных задаются длины трех сторон треугольника. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, доступ к закрытым членам класса и логическую функцию, определяющую возможность построения треугольника. Дополнительно определить функцию-член этого класса, которая вычисляет длины всех медиан треугольника.
Разработать класс Line для работы с объектами типа отрезок. Члены-данные этого класса определяют координаты концов отрезка на плоскости. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Описать функцию-член класса, определяющую длину отрезка.
Разработать класс Line для работы с объектами типа отрезок. Члены-данные этого класса определяют координаты концов отрезка на плоскости. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Описать логическую функцию-член класса, определяющую параллельность двух отрезков.
Разработать класс Line для работы с объектами типа отрезок. Члены-данные этого класса определяют координаты концов отрезка на плоскости. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Описать логическую функцию-член класса, определяющую перпендикулярность двух отрезков.
Создать класс Circle для работы с плоскими окружностями. В качестве члена данного задается длина радиуса окружности. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытому члену этого класса. Дополнительно определить функцию-член этого класса, вычисляющую длину окружности.
Создать класс Circle для работы с плоскими окружностями. В качестве члена данного задается длина радиуса окружности. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытому члену этого класса. Дополнительно определить функцию-член этого класса, вычисляющую центральный угол для хорды, длина которой вводится с клавиатуры.
Разработать класс Line для работы с объектами типа отрезок. Члены-данные этого класса определяют координаты концов отрезка на плоскости. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Описать функцию-член класса, определяющую координаты середины заданного отрезка.
Разработать класс Polygon для работы с правильными замкнутыми многоугольниками. Члены-данные этого класса определяют число сторон многоугольника и длину стороны. Класс должен содержать конструктор по умолчанию, основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Описать функцию-член класса, которая вычисляет площадь многоугольника. Вывести полученное значение на экран дисплея.
Разработать класс Sphere для работы с шаром. Единственный член-данное этого класса определяет радиус шара. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытому члену класса. Описать функцию-член класса, которая вычисляет площадь шаровой поверхности.
Разработать класс Sphere для работы с шаром. Единственный член-данное этого класса определяет радиус шара. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытому члену класса. Описать функцию-член класса, которая вычисляет объем шара.
Разработать класс Cylinder для работы с цилиндром. Члены-данные этого класса определяют радиус основания цилиндра и высоту цилиндра. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Описать функцию-член класса, которая вычисляет объем цилиндра.
Разработать класс Cylinder для работы с цилиндром. Члены-данные этого класса определяют радиус основания цилиндра и высоту цилиндра. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Описать функцию-член класса, которая вычисляет площадь полной поверхности цилиндра.
Разработать класс Cone для работы с конусом. Члены-данные этого класса определяют радиус основания конуса и высоту конуса. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Описать функцию-член класса, которая вычисляет объем конуса.
Разработать класс Cone для работы с конусом. Члены-данные этого класса определяют радиус основания конуса и высоту конуса. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Описать функцию-член класса, которая вычисляет площадь полной поверхности конуса.
Разработать класс Pyramid для работы с правильной пирамидой. Члены-данные этого класса определяют число сторон основания пирамиды, длину одной стороны и высоту пирамиды. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Описать функцию-член класса, которая вычисляет площадь полной поверхности пирамиды.
Разработать класс Prizm для работы с правильной призмой. Члены-данные этого класса определяют число сторон основания призмы, длину одной стороны и высоту призмы. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Описать функцию-член класса, которая вычисляет площадь полной поверхности призмы.
Разработать класс Pyramid для работы с правильной пирамидой. Члены-данные этого класса определяют число сторон основания пирамиды, длину одной стороны и высоту пирамиды. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Описать функцию-член класса, которая вычисляет объем пирамиды.
Разработать класс Prizm для работы с правильной призмой. Члены-данные этого класса определяют число сторон основания призмы, длину одной стороны и высоту призмы. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Описать функцию-член класса, которая вычисляет объем призмы.
Разработать класс String для работы со строками. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, а также доступ к закрытым членам класса. Кроме этого определить функцию-член, которая по двум данным строкам создает третью строку, являющейся «молнией» исходных строк.
