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

Требования

Дисциплина "Объектно-ориентированное программирование"
Весенний семестр 2004/2005 уч.г.
ТРЕБОВАНИЯ
к выполнению лабораторной работы N 2
"ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ КЛАССОВ"
1. Основные этапы разработки
1.1. Формулирование основной идеи объектно-ориентированной
модели проблемной задачи, которая определена
индивидуальным заданием.
1.2. Построение системы объектов предметной области и
соответствующих им классов.
В процессе объектно-ориентированного анализа
проблемной задачи:
- четко формулируются и тщательно обосновываются
основные проектные решения, определяющие
выделяемые объекты, их отношения друг с другом,
состав и свойства необходимых атрибутов и
методов;
- строятся и обосновываются информационные и
математические модели объектов, действий и
связей между ними;
при этом должны быть обеспечены:
- однозначная идентификация каждого объекта и
- учет общего количества объектов класса,
существующих в любой момент выполнения
программы, использующей выделенные объекты;
- формируются классы объектов и задаются отношения
между классами, которые наглядно отображаются
с помощью обозначений, принятых в языке UML.
!!! Результаты выполнения этапов 1.1 и 1.2 ОБЯЗАТЕЛЬНО
СОГЛАСОВЫВАЮТСЯ с преподавателем.
1.3. Проектирование классов объектов на языке С++ на основе
контрактов.
Для каждого класса:
- формируется набор членов-данных;
- определяются члены-данные, требющие защиты, и
выбираются средства защиты;
- формируется набор интерфейсных и внутренних членов-
функций;
- для каждой функции определяется необходимость и
способы защиты ее параметров, а также необходимость
и способ защиты членов-данных класса со стороны
функции;
- для каждой интерфейсной функции, включая конструкторы
и деструктор, должны быть сформулированы пред- и
постусловия;
- формулируются инварианты;
- разрабатывается контракт.
1.4. Проектирование конструкторов и деструкторов классов.
Для каждого класса обосновывается количество
требуемых конструкторов, назначение и необходимость
каждого конструктора, основные способы его
использования в программе.
1.5. Проектирование системы описаний классов как системы
файлов на языке С++.
1.6. Разработка методики тестирования классов и тестовых
наборов данных.
1.7. Разработка внешней спецификации тестирующей программы.
Программа должна обеспечить тестирование классов
как самостоятельных компонентов для применения в
других разработках.
1.8. Разработка тестирующей программы на языке С++
2. Подготовка отчета по лабораторной работе.
Отчет должен быть выполнен в соответствии с требованиями
раздела 4 "Общих требований к выполнению цикла
лабораторных работ".

Варианты заданий

Геометрическая фигура (

Квадрат

Ромб

Вписанный треугольник

Эллипс

параллелограмм

7-угольник, вписанный в окружность

сектор эллипса

сектор круга

сектор параболы

описанный 5-угольник

прямоугольный треугольник

Операции, реализуемые в каждом варианте

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

масштабирование

перенос фигуры на заданный вектор (в заданную точку)