Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Класс Точка / Клосс_Точка_л2

.doc
Скачиваний:
26
Добавлен:
01.05.2014
Размер:
49.15 Кб
Скачать

Постановка задачи:

Разработать класс Точка. При этом состояние экземпляра это декартовые координаты точки, состояние задаваемое пользователем – так же полярные координаты. Требуется реализовать проблемные действия: ее смещение на задаваемые величины. При этом сдвиг производится на величины, заданные в декартовых координатах.

Так же требуется реализовать селекторы относительно полярных координат. Конструкторы: без параметров и с параметрами в полярных координатах.

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

Задача реализуется с использованием типа данных класс на языке С++. В роли входных данных выступает пара координат точки в полярной системе, а также величины смещения точки в декартовой системе в процессе тестирования класса. В роли выходных данных выступает пара координат точки после каждой операции над экземпляром в процессе тестирования.

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

  1. Исходные данные: Так как в роли входных данных выступает пара координат. В описании класса присутствует 2 атрибута класса - пара декартовых координат. Доступ к членам-данным класса выбран как “private”, что объясняется стремлением обезопасить класс от неконтролируемого метода доступа.

  2. Ограничения на исходные данные: Ограничения на координаты определяются диапазоном применяемого в классе типа для вещественных чисел, в данном случае типом “double”. В данной программе применены ограничения (-10000..10000). Ограничения на количество экземпляров класса определяется наличием свободной памяти. Ограничения на входные денные в программе определяют входные условия, а так же инвариант класса.

  3. Выходные данные: В роли выходных данных служит пара координат точки после каждой операции над экземпляром в процессе тестирования. Ограничения на выходные данные такие же как и на исходные, вследствие тех же причин.

  4. Связь выходных данных с исходными данными: Связь выходных данных с исходными определяется действиями, которые выполнялись при тестировании класса. Собственно связь входных с выходными данными определяет постусловия метода.

  5. Размещение

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

Определение методов:

  1. Конструктор “Cpoint()” без параметров, для простоты вызова при создании точки в начале координат.

  2. Конструктор “Cpoint(double, double)” с параметрами, при создании точки не только в начале координат.

  3. Селекторы “getR()” и “getFi()” возвращают значения угла о радиуса в полярных координатах.

  4. Операция (корректор) “Move(double, double )”, производит сдвиг на вектор.

Все перечисленные методы объявлены в разделе “public”.

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

Название

Назначение

Параметры

Предусловия

Постусловия

Cpoint()

Создание точки в начале координат

Нет

X=0

Y=0

Cpoint(x0,y0)

Создание точки с заданными координатами

Типа Double, входные, не изменяются

X0, Y0 :

[-10000..10000]

X=X0

Y=Y0

getR()

Возврат радиуса в полярных координатах

Нет

getFi()

Возврат угла поворота в полярных координатах

Нет

Move(dx,dy)

Сдвиг точки на вектор

Типа Double, входные

X0, Y0:

[-10000..10000]

X1=X0+dX

Y1=Y0+dY

Определение инварианта класса:

Инвариант определяется попаданием параметров точки в допустимый диапазон.

В нашем случае: x:[-10000..10000].

Проверка инварианта производится в ходе выполнения программы, между вызовами членов- функций.

Тестирование:

Начальные значения

Сдвиговые значения

Конечные значения

Схема сдвига

R=5.83

Fi=0.54

Dx=1

Dy=3

R=8.84

FI=0.78

R=2

FI= -1.57

Dx=0

Dy=4

R=2

FI=1.57

R=2

FI=1.57

Dx=-2

Dy=0

R=2.82

FI= -0.785

R=2.23

FI=0.46

Dx=-6

Dy=-4

R=5

FI=0.64

Вывод:

Данный класс может быть использован при создании других приложений.

Также достоинством является простота работы с классом.

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

- Отсутствие проверки вводимых значений.

Работоспособность класса подтверждается тестированием.

Министерство образования РФ

СПБГЭТУ

Кафедра МО-ЭВМ

Отчет по практической работе №1

«Разработка класса «точка»»

Студент гр. 3342: Митягин Сергей

Преподаватель: Борис Казаков

С-Петербург.

2005

Соседние файлы в папке Класс Точка