Student.gomel.by
На главную ... Контакты ... Университеты ... Частые вопросы ...
Заказать курсовую в Гомеле ...
Репетитор по информатике ...
Условия ...
Так сколько же стоит?


Заказать лабораторную работу на С++ (Гомель)


ЛАБОРАТОРНАЯ РАБОТА №6. ШАБЛОНЫ


1) Определите класс Vector для хранения векторных данных:



template
class Vector
{
T vec[size];
...
};


Определите в классе следующие функции:


Vector(); – конструктор по умолчанию, который устанавливает значения элементов вектора в 0;
T& operator[](int index); – получение элемента по его индексу;
friend ostream& operator<<(ostream&, Vector&); – перенаправление вывода;
friend istream& operator>>(istream&, Vector&); – перенаправление ввода.
2) Определите класс Matrix для хранения двумерной матрицы:



template
class Matrix
{
T mat[M][N];
...
};


Определите в классе следующие функции:


Matrix(); – конструктор по умолчанию, который устанавливает значения элементов матрицы в 0;
T* operator[](int index); – получение указателя на начало строки матрицы с индексом index;
friend ostream& operator<<(ostream&, Matrix&); – перенаправление вывода;
friend istream& operator>>(istream&, Matrix&); – перенаправление ввода.
3) Определите узел бинарного дерева следующим образом:



template
class Node
{
T * data; //данные хранящиеся в узле
Node * left; //левая ветвь
Node * right; //правая ветвь
...
};


4) Определите элемент односвязного списка и список:



template
struct ListItem
{
T * data; //указатель на данные
ListItem * next; //указатель на следующий элемент
};
template
class List
{
ListItem * list;
...
};


5) Имеется элемент стека (дисциплина обслуживания LIFO) и стек:



template
struct StackItem
{
T * data; //указатель на данные
StackItem * prev; //указатель на предыдущий элемент
};
template
class Stack
{
StackItem * stack;
...
};


6) Имеется элемент очереди и очередь (дисциплина обслуживания FIFO):



template
struct QueueItem
{
T * data; //указатель на данные
QueueItem * next; //указатель на следующий элемент
};
template
class Queue
{
QueueItem * queue;
...
};


7) Определите класс Complex:



template
class Complex
{
T re; //вещественная часть
T im; //мнимая часть
...
};


8) Определите класс TreeNode – узел:



template
class TreeNode
{
char name[10]; //имя узла
T * data; //данные хранящиеся в узле
TreeNode * nodes; //список дочерних узлов
TreeNode * next; //следующий узел на том же уровне
...
};


9) Смотри вариант №2.


10) Определите структуру Pair – пара «ключ = значение» и класс Pairs – массив пар:



template
struct Pair
{
T1 key; //имя
T2 value; //значение
};
template
class Pairs
{
Pair * prs; //массив пар
int length; //размер массива
int count; //количество имеющихся пар в массиве
...
};


11) Определите класс Array – одномерный массив вещественных чисел:



template
class Array
{
T * arr; //непосредственно массив
unsigned size; //размер массива
...
};



ЛАБОРАТОРНАЯ РАБОТА №1. ПЕРЕХОД ОТ ЯЗЫКА С К ЯЗЫКУ С++

ЛАБОРАТОРНАЯ РАБОТА №2. КЛАССЫ

ЛАБОРАТОРНАЯ РАБОТА №3. ОБЪЕКТЫ КЛАССОВ

ЛАБОРАТОРНАЯ РАБОТА №4. ПЕРЕОПРЕДЕЛЕНИЕ ОПЕРАТОРОВ

ЛАБОРАТОРНАЯ РАБОТА №5. ПРОИЗВОДНЫЕ КЛАССЫ И ИЕРАРХИИ КЛАССОВ

ЛАБОРАТОРНАЯ РАБОТА №6. ШАБЛОНЫ

ЛАБОРАТОРНАЯ РАБОТА №7. ОБРАБОТКА ИСКЛЮЧЕНИЙ

ЛАБОРАТОРНАЯ РАБОТА №8. ДИНАМИЧЕСКАЯ ИДЕНТИФИКАЦИЯ И ПРИВЕДЕНИЕ ТИПА




Вы на сайте:


Student.Gomel.by