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

Класс Квадрат / Класс_квадрат

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. Функция “Area()” производит вычисление площади квадрата.

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

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

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

Таблица функций:

Название

Назначение

Параметры

Предусловия

Постусловия

Csqr(point,a)

Создание представителя класса

Типа точка,

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

X0,Y0,A0:[-10000..10000]

X=POINT.X

Y=POINT.Y

A=A0

getR()

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

Нет

getFi()

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

Нет

getA()

Возврат длины стороны

Нет

Move(dx,dy)

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

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

DX,DY:[-10000..10000]

X1=X0+DX

Y1=Y0+DY

Area()

Нахождение площади

нет

A:[-10000..10000]

S=A*A

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

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

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

Также на длину стороны квадрата накладываются ограничения а:[-10000..10000]

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

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

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

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

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

Схема сдвига

R=5.83

Fi=0.54

A=2

Dx=1

Dy=3

R=8.84

FI=0.78

A=2

R=2

FI= -1.57

A=2

Dx=0

Dy=4

R=2

FI=1.57

A=2

R=2

FI=1.57

A=2

Dx=-2

Dy=0

R=2.82

FI= -0.785

A=2

R=2.23

FI=0.46

A=2

Dx=-6

Dy=-4

R=5

FI=0.64

A=2

Вывод:

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

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

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

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

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

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

СПбГЭТУ «ЛЭТИ»

МО-ЭВМ

Практическая работа №3

«Разработка класса «Квадрат»»

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

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

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

2005

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