- •Методические указания к лабораторным работам
- •Порядок выполнения лабораторных работ
- •Оборудование, технические средства, инструмент
- •Требования к оформлению отчета
- •Требования к защите лабораторных работ
- •Создание консольных приложений в Qt Creator
- •1.2 Пример создания и использования простого класса
- •1.3 Пример перегрузки операций
- •1.4 Задание 1
- •1.5 Задание 2
- •1.6 Контрольные вопросы
1.5 Задание 2
Разработать консольную программу на языке С++, в которой описывается и используется класс. Требования к оформлению класса те же, что и для первого задания. Для объектов класса выполнить перегрузку операций, указанных в задании.
Класс «Время» должен включать поля данных: часы, минуты, секунды; методы: вывод времени и часть суток (до 6:00 – ночь, до 12:00 – утро, до 18:00 – день, до 23:59:59 – вечер) и перегруженные операции: сложение (+), вычитание (-), сравнение (< , >) времени.
Класс «Матрица» должен включать поля данных: количество строк, количество столбцов, элементы матрицы; методы: вывод матрицы и проверка: является ли матрица диагональной, нулевой и перегруженные операции: сложение, вычитание, деление, умножение матриц, умножение матрицы на число.
Класс «Комплексное число в алгебраической форме z=x+y*i» должен включать поля данных: действительная (x) и мнимая (y) часть числа; методы: вычисление модуля комплексного числа, возведение комплексного числа в степень, вывод комплексного числа и перегруженные операции: сложение, вычитание, деление, умножение комплексных чисел.
Класс «Дата» должен включать поля данных: день, месяц, год; методы: вывод даты и времени года и перегруженные операции: вычитание двух дат (-), сравнение двух дат (< , >).
Класс «Прямая» должен включать поля данных: коэффициенты прямой y = ax +b; методы: вывод уравнения прямой на экран, определение точек пересечения с осями и перегруженные операции: проверка перпендикулярности прямых (!=), определение угла между двумя прямыми (%).
Класс «Вектор» должен включать поля данных: координаты вектора; методы: вывод вектора и перегруженные операции: сложение (+), скалярное (%) и векторное (*) произведение векторов, вычисление угла между векторами.
Класс «Дата» должен включать поля данных: день, месяц, год; методы: вывод даты и времени года и перегруженные операции: добавление (+) к дате целого числа (количества дней), сравнение двух дат (< , >).
Класс «Матрица» должен включать поля данных: количество строк, количество столбцов, элементы матрицы; методы: вывод матрицы и проверка: является ли матрица симметричной (АТ = А) и перегруженные операции: сложение, вычитание, деление, умножение матриц, умножение матрицы на число.
Класс «Комплексное число в алгебраической форме z=x+y*i» должен включать поля данных: действительная (x) и мнимая (y) часть числа; методы: вычисление корня комплексного числа, вывод комплексного числа и перегруженные операции: сложение, вычитание, деление, умножение комплексных чисел.
Класс «Прямая» должен включать поля данных: координаты двух точек (x1, y1) и (x2, y2); методы: вывод уравнения прямой вида y = ax + b и перегруженные операции: проверка параллельности прямых (||), определение угла между двумя прямыми (%).
Класс «Вектор» должен включать поля данных: координаты вектора; методы: вывод вектора, вычисление длины вектора и перегруженные операции: сложение (+), скалярное (%) и векторное (*) произведение векторов.
Класс «Матрица» должен включать поля данных: количество строк, количество столбцов, элементы матрицы; методы: вывод матрицы и проверка: является ли матрица верхнее треугольной, нижнее треугольной и перегруженные операции: сложение, вычитание, деление, умножение матриц, умножение матрицы на число.