Главная страница

Написать класс CMy2DPoint. CMy2DPoint


Скачать 0.53 Mb.
НазваниеCMy2DPoint
Дата30.11.2018
Размер0.53 Mb.
Формат файлаdocx
Имя файлаНаписать класс CMy2DPoint.docx
ТипДокументы
#58265

Написать класс CMy2DPoint, описывающий точку на плоскости. Написать класс CMy2DObjectНомерВарианта, описывающий геометрическую фигуру, соответствующую варианту задания. Продемонстрировать работоспособность разработанных классов с помощью небольшой консольной программы.

ДляCMy2DPointнеобходимо перегрузить операторы ‘+’, ’-‘, ’*’, ’/’, ’==’, ‘!=’, ‘<<’, ‘>>’. Оператор ‘*’ должен работать для следующих пар операндов: (CMy2DPoint, CMy2DPoint), (double, CMy2DPoint), (CMy2DPoint, double). В первом случае результатом операции является скалярное произведение, в остальных – произведение вектора на число. Дружественный, унарный или бинарный определяет программист. Операторы ввода/вывода проверить, записывая и считывая данные в текстовый файл и на консоль.

Во всех вариантах задания фигура описывается четырьмя размерами (A, A1, A2, A3), координатами центра (m_centre) и углом поворота вокруг центра (m_dAngle). Координатами фигуры считаются координаты центра квадрата, в который она вписана, эта же точка является центром вращения (см. рис. 1). За координаты фигуры должно отвечать полеm_center типа CMy2DPoint. ВСЕ переменные класса должны быть закрытыми. Класс должен иметь конструктор с параметрами, позволяющий инициализировать все закрытые поля. Разработанный класс должен иметь следующие методы:

  1. Методы доступа (Get и Set) ко всем закрытым полям, методы Set должны осуществлять проверку корректности данных (граница фигуры не должна самопересекаться).

  2. Метод void Move(double dX, double dY, double dAngle = 0) – Смещение объекта на вектор dX, dY и поворот на dAngle;

  3. Метод voidMove(constCMy2dPoint &delta, doubledAngle = 0) – Смещение объекта на вектор дельта и поворот на dAngle;

  4. Метод void Rotate(double dAngle) – поворот фигуры на угол dAngle;

  5. Метод boolIsInside(constCMy2dPoint &point) – возвращает true если точка лежит внутри фигуры и false в противном случае.

  6. Метод boolIsInside(doublex, doubley) – возвращает true если точка с координатами (x,y) лежит внутри фигуры и false в противном случае.

Методы не меняющие данные класса должны быть константными.

d:\dropbox\ооп\5\picture.png

Рис. 1. Пояснение к задаче (фигура соответствует варианту A5 => имя класса: CMy2DObjectA5)

Варианты:




A

B

1.

d:\dropbox\aksenov_bober\задачи по c++\111.jpg

d:\dropbox\aksenov_bober\задачи по c++\411.jpg

2.

d:\dropbox\aksenov_bober\задачи по c++\112.jpg

d:\dropbox\aksenov_bober\задачи по c++\412.jpg

3.

d:\dropbox\aksenov_bober\задачи по c++\113.jpg

d:\dropbox\aksenov_bober\задачи по c++\413.jpg

4.

d:\dropbox\aksenov_bober\задачи по c++\114.jpg

d:\dropbox\aksenov_bober\задачи по c++\414.jpg

5.

d:\dropbox\aksenov_bober\задачи по c++\121.jpg

d:\dropbox\aksenov_bober\задачи по c++\421.jpg

6.

d:\dropbox\aksenov_bober\задачи по c++\122.jpg

d:\dropbox\aksenov_bober\задачи по c++\422.jpg

7.

d:\dropbox\aksenov_bober\задачи по c++\123.jpg

d:\dropbox\aksenov_bober\задачи по c++\423.jpg

8.

d:\dropbox\aksenov_bober\задачи по c++\124.jpg

d:\dropbox\aksenov_bober\задачи по c++\424.jpg

9.

d:\dropbox\aksenov_bober\задачи по c++\131.jpg

d:\dropbox\aksenov_bober\задачи по c++\431.jpg

10.

d:\dropbox\aksenov_bober\задачи по c++\132.jpg

d:\dropbox\aksenov_bober\задачи по c++\432.jpg

11.

d:\dropbox\aksenov_bober\задачи по c++\133.jpg

d:\dropbox\aksenov_bober\задачи по c++\433.jpg

12.

d:\dropbox\aksenov_bober\задачи по c++\134.jpg

d:\dropbox\aksenov_bober\задачи по c++\434.jpg

13.

d:\dropbox\aksenov_bober\задачи по c++\141.jpg

d:\dropbox\aksenov_bober\задачи по c++\441.jpg

14.

d:\dropbox\aksenov_bober\задачи по c++\142.jpg

d:\dropbox\aksenov_bober\задачи по c++\442.jpg

15.

d:\dropbox\aksenov_bober\задачи по c++\143.jpg

d:\dropbox\aksenov_bober\задачи по c++\443.jpg

16.

d:\dropbox\aksenov_bober\задачи по c++\144.jpg

d:\dropbox\aksenov_bober\задачи по c++\444.jpg


написать администратору сайта