Министерство Общего и Профессионального образования
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Факультет: ПМИ
Группа: ПМИ-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;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.