Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:teach:oop:lab2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
etc:teach:oop:lab2 [2008/02/19 15:45] – создано kkvetc:teach:oop:lab2 [2008/03/05 13:33] (current) kkv
Line 1: Line 1:
-=== Лабораторная работа 2 ===+==== Лабораторная работа 2 ====
  
 +=== Требования ===
 <file> <file>
 +     Дисциплина "Объектно-ориентированное программирование"
 +                 Весенний семестр 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 "Общих требований к выполнению цикла
 +           лабораторных работ".
  
 </file> </file>
 +
 +=== Варианты заданий ===
 +
 +  * Геометрическая фигура 
 +    - Квадрат
 +    - Ромб
 +    - Вписанный треугольник
 +    - Эллипс
 +    - параллелограмм
 +    - 7-угольник, вписанный в окружность
 +    - сектор эллипса
 +    - сектор круга
 +    - сектор параболы
 +    - описанный 5-угольник
 +    - прямоугольный треугольник
 +
 +  * Операции, реализуемые в каждом варианте
 +    - поворот фигуры относительно заданной точки
 +    - масштабирование
 +    - перенос фигуры на заданный вектор (в заданную точку)
 +  
 +
 +
etc/teach/oop/lab2.1203425121.txt.gz · Last modified: 2008/02/19 15:45 by kkv