Показать сообщение отдельно
Старый 25.10.2005, 20:45     # 1
andrei solovjev
Newbie
 
Регистрация: 16.06.2005
Сообщения: 38

andrei solovjev Нуль без палочки
Классы в Си++

В общем получил задачу по информатике:
Не очень понятно как определить центр тяжести многоугольника, как повернуть многоугольник. И что значит "псевдографического рисунка"? И вообще как проще всего это написать, в смысле алгоритма?

1.Разработать класс "многоугольник" в соответствии со следующим
заданием:
Состояние класса-
Фигура определяется количеством вершин и массивом координат вершин на
плоскости(типа float). Для описания вершины целесообразно использовать
структуру. Память под массив вершин выделяется статически,во время
компиляции,и задается массивом фиксированного предельного размера.
Протокол класса-
Определяет возможности создания и инициализации экземпляров класса и
правила их использования(методы класса).
Предусмотреть следующие возможности:
-пустой конструктор для инициализации экземпляров и массивов
экземпляров класса по умолчанию.
-создание экземпляров класса с инициализацией значением единственной
вершины("точка").
-создание экземпляров класса с инициализацией количеством вершин и
массивом координат вершин.
-ввод экземпляров класса из входного потока и вывод ((*)
псевдографического рисунка) в выходной поток(с помощью перегруженных
операторов >> и << ).
-определение "центра тяжести" многоугольника.
-добавление вершины многоугольника(с помощью перегруженного оператора
+=).
-получение координат вершины многоугольника,заданной ее номером(с
помощью перегруженного оператора []).
-выполнение операции поворота многоугольника относительно заданной
точки на определенный угол,кратный 90 градусам,против часовой
стрелки((*) с помощью перегруженного оператора ()).
-перемещение многоугольника((*)с помощью перегруженного оператора()) в
направлении и на величину вектора,построенного из точки {0,0} в
заданную.
2.Проектирование класса рекомендуется начать с представления состояния
класса,учитывающего заданные операции,а затем реализации конструкторов
и перегруженного оператора вывода. Для отладки и исчерпывающего
тестирования других методов разработанного класса реализовать
диалоговую программу,которая позволяет вводить параметры,отлаживаемых
методов.
3.Повторить разработку класса при условии,что память под массив
структур необходимой длины выделяется динамически,во время выполнения
программы(с помощью оператора new;память задается указателем на
структуру в состоянии класса).
Дополнить интерфейс класса следующими возможностями:
-создание экземпляра класса с его инициализацией другим экземпляром
класса(копирующий конструктор).
-переопределение экземпляра класса(с помощью перегруженного оператора
присваивания).
4.Написать прикладную программу,использующую разработанныц класс.
Примечание:пункты задания,отмеченные (*),являются дополнительными.

Реализация в среде Microsoft Visual C++ 6.0.
andrei solovjev вне форума