Разработка класса "Геометрическая фигура"

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

Оглавление

 

1) Исходная постановка задачи

) Анализ задачи

) Формальная постановка задачи

) Спецификация программы

) Сценарий диалога с пользователем

) Разработка структур данных и алгоритмов

) Таблица параметров функций программы

) Текст прогаммы на языке C++

) Тестирование программы

) Итог

11) Вывод

 

1 Исходная постановка задачи

 

Разработать и протестировать класс фигура, который должен:

-представлять фигуру согласно индивидуальному заданию (окружность, часть которой (сектор, в основании которого заданный угол) вырезана);

-использовать экземпляр класса точка в качестве члена-данного класса фигура;

-обладать интерфейсными проблемными функции: симметричное отражение фигуры, а также поворот фигуры на заданный угол (относительно заданных точек);

-обладать интерфейсной функцией, вычисляющей заданной фигуры по указанным параметрам.

 

Анализ задачи

 

Задача реализуется с использованием типа данных класс, на языке С++. В роли входных данных выступает фигура, описываемая центральной точкой (центр окружности), точкой на внешней границе фигуры (точка на окружности) и углом разворота сектора. Также входными параметрами являются точки, относительно которых осуществляется симметричное отражение и поворот фигуры. В качестве выходных параметров выступают параметры фигуры, изменённые вследствие исполнения проблемных функций.

 

Формальная постановка задачи

 

1.Входные данные:

CenFig : Point;: Point;: double;

2.Исходные данные:

CenFig :Point;:Point;:double;

3.Выходные данные

CenFig : Point;PtOnFig : Point;SecAng : double;: double;AreaFigure : double;

 

4 Спецификация программы

 

1.Исходные данные:

2.В описании класса присутствует 4 атрибута класса: центр окружности (Point), точка на окружности (Point), угол в основании сектора (double) и радиус окружности (double). Доступ к членам-данным класса - private, что объясняется стремлением обезопасить класс от неконтролируемого метода доступа.

3.Функции программы при обработке исключительных ситуаций:

4.В программе реализован контроль на допустимый диапазон значений и формат входных данных.

.Выходные данные:

Выходные данными также являются атрибуты класса.

 

Сценарий диалога с пользователем

 

Общая схема диалога: пользователю предлагается ввести параметры фигуры и затем выполнить действия в соответствии с индивидуальным заданием.

 

6 Разработка структур данных и алгоритмов

 

Решение данной задачи можно разбить на этапы:

1.Выбор членов-данных класса

2.Создание конструктора

.Создание деструктора

.Реализация функций ввода (и расчёта) параметров фигуры

.Вывод значенийпараметров фигурына текущий момент

.Осуществление поворота фигуры, относительно заданной точки

.Построение симметричного отраженияфигуры относительно заданной точки

Модель структуры данных:

а) В программе описаны два класса: фигура(Figure) и точка (Point);

б) В описании класса Figureприсутствует 4 атрибута класса - центр окружности (Point), точка на окружности (Point), угол в основании сектора (double) и радиус окружности (double). Доступ к членам-данным класса - private, что объясняется стремлением обезопасить класс от неконтролируемого метода доступа.

в) Точки являются экземплярами класса Point, который был описан в предыдущей лабораторной работе Разработка класса Точка.

в) Состав набора членов-функций определяется поставленными проблемными задачами. В данном случае в этот набор входят:

-конструктор/деструктор, для формирования и деинициализации экземпляров класса;

-вспомогательные функции вывода координат;

-функция инициализации параметров экземпляра класса;

-функция поворота фигурыотносительно заданной точки- для осуществления решения проблемы поворота;

-вспомогательные функцииввода/вывода параметров фигуры;

-функция симметричного отражения фигуры относительно заданной точки- для осуществления решения проблемы построения симметричной точки.

 

Параметры функций программы

 

ТипИмя функцииНазначениеПараметрыСообщения в ходе выполненияПредусловиеПостусловиеВходныеВыходныеvoidRotateFigПоворот фигуры на заданный угол(Figure &, int)-Сообщения: - о работе конструктора и деструктора; - диалог ввода координат; - диалог ввода угла поворота.Существует экземпляр класса FigureИзменены значения CenFig и PtOnFigvoidCalcRadCircРасчёт радиуса фигуры---Существует экземпляр класса FigureИзменено значениеFigRadvoidGetParamFigureВывод значений параметров фигуры(Figure&)-Значения параметров фигурыСуществует экземпляр класса Figure-voidGetCoordPtВывод значения координат точки(Point&)-Координаты точкиСуществует экземпляр класса Point-doubleSetAngleИнициализация угла в основании сектора-doubleДиалог ввода угла в основании сектора и сообщения о корректности данных-Изменено значение SecAngvoidSetFigureИнициализация параметров фигуры(Point&, Point&)voidДиалог ввода угла в основании сектора и сообщения о корректности данныхСуществуют экземпляры класса PointИзменены значения CenFig, PtOnFig, SecAng, FigRadvoidAreaFigureРасчёт площади фигуры(Figure&)voidВывод величины площади фигурыСуществует экземпляр класса Figure-FigureКонструктор, для формирования экземпляра(Point&, Point&, double)-Сообщения о работе конструктора-Создан экземпляр класса с инициализированными членами класса~PointДеструктор, для деинициализации экземпляра--Сообщение о работе деструктораСуществует экземпляр классаУдален экземпляр из памятиvoidmainГлавная функция----Программ?/p>