Композиция классов и объектов


Тип данных должен быть
реализован в виде класса с указанными закрытыми полями, где операции
реализуются в виде открытых методов класса. Требуется реализовать тип данных с помощью
класса. Во всех заданиях обязательно должны присутствовать:
·
Метод
инициализации Init(); метод должен контролировать значения аргументов на
корректность, при некорректных значения выводить сообщение No
и заканчивать работу с этим экземпляром;
·
Ввод с клавиатуры
Read();
·
Вывод на экран Display(), в
котором выводятся поля экземпляра и результат вычислений специфического метода;
В головной функции требуется
создать один статический экземпляр описанного типа и массив из n динамических
экземпляров этого типа и вызвать для каждого из этих экземпляров все
перечисленные методы в указанном порядке.


Формат входных данных.
Ввод: длина
стороны треугольника и величины двух прилегающих к ней углов в градусах и
минутах для статического объекта, затем число экземпляров в динамическом
объекте и данные параметров динамических объектов.
Вывод: поля
экземпляра и результаты специфических методов статического объекта (углы
измерять в градусах и минутах), затем данные экземпляров и результаты
специфических методов динамического объекта.
Пример входных данных:
5 45 0 45 0
3
4 60 0 30 0
10 120 30 29 30
20 90 0 20 0
Пример выходных данных:
sides 5.000 3.536 3.536
angles 90 grad 0 min 45 grad 0 min 45 grad 0 min
heights 2.500 3.536 3.536
perimeter= 12.071
square= 6.250
right - angled
sides 4.000 3.464 2.000
angles 90 grad 0 min 60 grad 0 min 30 grad 0 min
heights 1.732 2.000 3.464
perimeter= 9.464
square= 3.464
right - angled
sides 10.000 17.233 9.848
angles 30 grad 0 min 120 grad 30 min 29 grad 30 min
heights 8.486 4.924 8.616
perimeter= 37.081
square= 42.429
sides 20.000 21.284 7.279
angles 70 grad 0 min 90 grad 0 min 20 grad 0 min
heights 7.279 6.840
20.000
perimeter= 48.563
square= 72.794
right - angled