Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:teach:oop:lab2

Лабораторная работа 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 "Общих требований к выполнению цикла
           лабораторных работ".

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

  • Геометрическая фигура
    1. Квадрат
    2. Ромб
    3. Вписанный треугольник
    4. Эллипс
    5. параллелограмм
    6. 7-угольник, вписанный в окружность
    7. сектор эллипса
    8. сектор круга
    9. сектор параболы
    10. описанный 5-угольник
    11. прямоугольный треугольник
  • Операции, реализуемые в каждом варианте
    1. поворот фигуры относительно заданной точки
    2. масштабирование
    3. перенос фигуры на заданный вектор (в заданную точку)
etc/teach/oop/lab2.txt · Last modified: 2008/03/05 13:33 by kkv