Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 2.doc
Скачиваний:
42
Добавлен:
01.05.2014
Размер:
122.88 Кб
Скачать

Министерство Образования Российской Федерации

Санкт-Петербургский Государственный Электротехнический Университет «ЛЭТИ»

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

Предмет Объектно ориентированное программирование.

Лабораторная работа №2

Выполнил: студент группы №3341 Факультета КТИ

Волков А.Н.

Проверил:

Санкт-Петербург

2006 год.

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

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

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

Уточнение постановки задачи.

В качестве основного объекта выбран квадрат, задающийся левой верхней точкой и стороной. В программе решено реализовать циклический список.

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

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

Разработка программы.

Разработка классов

Были разработаны необходимые для реализации Квадрата класс точка и класс квадрат.

Для них были заданы стандартные действия над геометрическими фигурами.

Для реализации списка были использованы шаблоны для списка и его элемента.

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

Это упрощает дальнейшее их использование.

Описание программы. Классовая структура.

В программе разработаны 4 класса:

  1. класс «cPoint» - реализация точки

  2. класс «cFig» - реализация квадрата

  3. класс «cLEl» - реализация элемента списка

  4. класс «cList1» - реализация циклического списка

cPoint

члены-данные

члены-функции

double x

Декартова абсцисса

void inv

Инвариант

double y

Декартова ордината

void GetXY

Селектор

Int quantity

Кол-во объектов

void SetXY

Модификатор

void Move

Перемещение точки

void Rotate

Поворот точки

void Mirror

Зеркальное отображение

double GetX

Селектор абсциссы

double GetY

Селектор ординаты

Int getquantity

Селектор кол-ва объектов

ListEl

члены-данные

члены-функции

Typer Date

Данные

Void GetFig

Селектор данных

ListEl* Next

Ссылка на след.

ListEl* GetNext

Селектор ссылки на следующий

void GetNext

Селектор ссылки на следующий

void SetDate

Модификатор данных

void SetNext

Модификатор ссылки на след.

List

члены-данные

члены-функции

ListEl* First

Указатель на первый

void move

Перемещение по списку

ListEl* current

Указатель на текущий

Void add

Добавление элемента

Void del

Удаление элемента

Void out

Вывод списка на экран

void GetCur

Извлечение текущего

void GetInf

Селектор

Void tobegin

Возвращение в начало списка

int Empty

Проверка на пустоту списка

cFig

члены-данные

члены-функции

cPoint

Точка, задающая квадрат

float GetX

Селектор абсциссы

double

Сторона квадрата

float GetY

Селектор ординаты

void Move

Перемещение треугольника

void Rotate

Поворот треугольника

void Scale

Масштабирование треугольника

void Set

модификатор