Составление диаграмм классов, содержащих геометрические фигуры (закрашенная и незакрашенная окружности) и шаблон, инстанцированние контейнера (словарь с дубликатами на основе дерева бинарного поиска)

Страницы работы

Содержание работы

Министерство Общего и Профессионального образования

НОВОСИБИРСКИЙ  ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра ПМИ

РАСЧЕТНО-ГРАФИЧЕСКОЕ ЗАДАНИЕ

по курсу

“Объектно-ориентированное программирование”

Факультет: ПМИ

Группа: ПМИ-61

Студент: Снегирева А.А.

Преподаватель: Еланцева И.Л.

Новосибирск

2008

1. Цель работы

Изучить средства работы с диаграммой классов и создания прототипа кода на языке С++, предоставляемые системой Rational Rose.

Составить диаграммы классов, содержащие:

– геометрические фигуры (закрашенная и незакрашенная окружности);

– шаблон и инстанцированние контейнера (словарь с дубликатами на основе дерева бинарного поиска).

2. Разработанные диаграммы классов и прототипы кода

·  Контейнер

template <class Type>

class SearchTree

{

  public:

    //## Constructors (generated)

      SearchTree();

    //## Destructor (generated)

      ~SearchTree();

      //## Operation: install%41B4745001B6

      void install ();

      //## Operation: show_all%41B47488024D

      void show_all ();

  protected:

    // Additional Protected Declarations

  private:

      //## Operation: add%41B474A300C5

      void add ();

      //## Operation: del%41B474B802D8

      int del (int key );

      //## Operation: search%41B474CC0038

      int search (int key);

  private: //## implementation

      //## Association: root_lief%41B46CE60370

      //## begin SearchTree::<the_Tree>%41B46CE7026D.role preserve=no  public: Tree {1 -> 1RHgN}

      Tree *root;

};

template <class Type>

class Tree

{

  public:

    //## Constructors (generated)

      Tree();

    //## Destructor (generated)

      ~Tree();

  protected:

  private:

    // Data Members for Class Attributes

      Type el;

      //## begin Tree::left%41B4519E0205.attr preserve=no  private: Tree {R} NULL

      Tree *left;

      //## begin Tree::right%41B4520F0009.attr preserve=no  private: Tree {R} NULL

      Tree *right;

    friend class SearchTree;

};

·  Незакрашенная окружность

class Figura

{

  public:

    //## Constructors (generated)

      Figura();

    //## Destructor (generated)

      ~Figura();

      //## Operation: view%41B5CA590268

      void view ();

      //## begin Figura::settings%41B5CA0301CE.attr preserve=no  public: int[7] {U}

      int settings[7];

  protected:

  private:

};

class FiguraKontur : public Figura  //## Inherits: <unnamed>%41B5C9B3002E

{

  public:

    //## Constructors (generated)

      FiguraKontur();

    //## Destructor (generated)

      ~FiguraKontur();

      //## Operation: view%41B8227900DA

      void view ();

  protected:

  private:

};

·  Закрашенная окружность

class Zakras

{

  public:

    //## Constructors (generated)

      Zakras();

    //## Destructor (generated)

      ~Zakras();

    //## Operation: zalit%41B5CE5301AD

      void zalit ();

  protected:

  private:

      //## begin Zakras::color%41B5CE0203BA.attr preserve=no  public: int {U} 0

      int color;

      //## begin Zakras::style%41B5CE1E025B.attr preserve=no  public: int {U} 1

      int style;

};

class ZakrasFigura : public FiguraKontur, //## Inherits: <unnamed>%41B5CDBD02B6

                              public Zakras  //## Inherits: <unnamed>%41B5CDC200BF

{

  public:

    //## Constructors (generated)

      ZakrasFigura();

    //## Destructor (generated)

      ~ZakrasFigura();

    //## Other Operations (specified)

      //## Operation: view%41B823B70073

      void view ();

  protected:

  private:

};

·  Инстанцированние

typedef SearchTree <  > ZakrasFigura;

3. Описания классов (оригинальный вариант)

·  Контейнер

template <class T> class Tree

{

    T val;

    Tree *left, *right;

    Tree();

    friend SearchTree<T>;

};

template <class T> class SearchTree

{

 public:

    SearchTree();

    void install();

    void show_all();

  ~SearchTree();

  private:

    Tree<T> *root;

    void add();

    int del(int key);

    int search(int key);

};

·  Незакрашенная окружность

class Figura

{

  public:

    virtual void view()=0;

    int settings[7];

};

class FiguraKontur: public Figura

{

public:

   void view();

};

·  Закрашенная окружность

class Zakras

{

  private:

    int color;

    int style;

  public:

    Zakras();

    void zalit();

};

class ZakrasFigura : public FiguraKontur, public Zakras

{

 public:

   void view();

   ZakrasFigura();

 };

·  Инстанцированние

                      SearchTree< ZakrasFigura > okr;

Похожие материалы

Информация о работе