double arrow

Задания для самостоятельного выполнения. 5.1.Разработать шаблонный класс Set

5.1. Разработать шаблонный класс Set. Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Кроме этого перегрузить операторные функции * и *=, которые вычисляют пересечение двух множеств. Создать с помощью этого класса множество символов.

5.2. Разработать шаблонный класс Set. Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Кроме этого перегрузить операторные функции + и +=, которые вычисляют объединение двух множеств. Создать с помощью этого класса множество целых чисел.

5.3. Разработать шаблонный класс Set. Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Кроме этого перегрузить операторные функции ++ и –- (инкремент и декремент, соответственно), которые должны увеличивать/уменьшать на единицу значение каждого элемента множества. Создать с помощью этого класса множество вещественных чисел.

5.4. Разработать шаблонный класс Set для работы с множеством символов. Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Перегрузить также операторные функции - и -=, которые должны обеспечивать исключение из первого множества тех элементов, которые имеются во втором множестве. Создать с помощью этого класса множество символов.

5.5. Разработать шаблонный класс Set. Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Кроме этого перегрузить операторные функции, возвращающие логические значения: >=, <= и ==, которые должны обеспечивать соответствующие сравнения двух множеств. Создать с помощью этого класса множество целых чисел.

5.6. Разработать шаблонный класс Set. Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Кроме этого перегрузить операторную функцию << (сдвиг влево), которая обеспечивает удаление с начала множества элементов, количество которых определяется правым операндом операции сдвига влево. Создать с помощью этого класса множество вещественных чисел.

5.7. Разработать шаблонный класс Set. Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Кроме этого перегрузить операторную функцию >> (сдвиг вправо), которая обеспечивает удаление с конца множества элементов, количество которых определяется правым операндом операции сдвига вправо. Создать с помощью этого класса множество символов.

5.8. Разработать шаблонный класс Set. Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Кроме этого перегрузить операторную функцию! (логическое отрицание), которая определяет количество элементов в данном множестве. Создать с помощью этого класса множество целых чисел.

5.9. Разработать шаблонный класс Set. Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Кроме этого перегрузить операторную функцию отношения < (меньше), которая позволяет определить, содержится ли данный элемент во множестве. Создать с помощью этого класса множество вещественных чисел.

5.10. Разработать шаблонный класс Set. Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Кроме этого перегрузить операторную функцию + (унарный плюс), которая возвращает максимальный элемент множества. Создать с помощью этого класса множество символов.

5.11. Разработать шаблонный класс Set для работы с множеством символов. Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Кроме этого перегрузить операторную функцию - (унарный минус), которая возвращает минимальный элемент множества. Создать с помощью этого класса множество целых чисел.

5.12. Разработать шаблонный класс Number для работы с численной информацией. Класс должен содержать основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса. Перегрузить для этого класса все арифметические операции (сложение, вычитание, деление, умножение). Дополнительно перегрузить операцию! (логическое отрицание), которая должна возвращать корень квадратный из объекта типа Number.

5.13. Создать шаблонный класс Vector для работы с одномерными массивами (векторами) чисел. Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Дополнительно перегрузить операторную функцию для операции | (побитовая дизъюнкция), котораявозвращает угол в градусах между двумя векторами, имеющими одинаковую размерность.

5.14. Создать шаблонный класс Vector для работы с одномерными массивами (векторами) чисел. Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Дополнительно перегрузить операторную функцию для операции | (побитовая дизъюнкция), которая вычисляет векторное произведение двух исходных векторов. Исходные вектора должны быть третьего порядка.

5.15. Создать шаблонный класс List для работы со списком элементов любого типа. В качестве членов-данных рекомендуется брать два элемента (определяющие начало и конец списка) самоссылочного класса (должен быть другом основному классу) следующего вида:

class Node { Type data; Node *next; };

Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Определить в этом классе функции-члены класса, обеспечивающие: добавление элементов в список, удаление элемента из списка, проверку, не является ли список пустым, распечатку элементов списка на экране дисплея. Дополнительно перегрузить операторную функцию для операции + (сложение), которая вставляет на третье место списка новый элемент списка. Новый список отобразить на экране дисплея.

5.16. Создать шаблонный класс Stack для работы со стеком элементов любого типа. В качестве членов-данных рекомендуется брать два элемента (определяющие начало и конец стека) самоссылочного класса (должен быть другом основному классу) следующего вида:

class Node { Type data; Node *next; };

Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Определить в этом классе функции-члены класса, обеспечивающие: добавление элементов в стек, удаление элемента из стека, распечатку элементов стека на экране дисплея. Дополнительно перегрузить операторную функцию для операции! (логическое отрицание), которая возвращает максимальный элемент стека.

5.17. Создать шаблонный класс Queue для работы с очередью элементов любого типа. В качестве членов-данных рекомендуется брать два элемента (определяющие начало и конец очереди) самоссылочного класса (должен быть другом основному классу) следующего вида:

class Node { Type data; Node *next; };

Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Определить в этом классе функции-члены класса, обеспечивающие: добавление элементов в очередь, удаление элемента из очереди, распечатку элементов очереди. Дополнительно перегрузить операторную функцию для операции! (логическое отрицание), которая возвращает минимальный элемент очереди.

5.18. Создать шаблонный класс Tree, для работы с элементами произвольного типа. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:

struct Node { Type data; Node *LeftPtr, *RightPtr; };

где LeftPtr и RightPtr адрес левого и правого узла, соответственно.

Класс должен содержать конструктор по умолчанию и основной конструктор, конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса. Определить в этом классе функции-члены класса, обеспечивающие: добавление элементов дерева, удаление элемента дерева. Дополнительно перегрузить для элементов этого класса операцию! (логическое отрицание), которая возвращает количество узлов дерева.

5.19. Создать шаблонный класс Tree, для работы с элементами произвольного типа. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:

struct Node { Type data; Node *LeftPtr, *RightPtr; };

где LeftPtr и RightPtr адрес левого и правого узла, соответственно.

Класс должен содержать основной конструктор. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса. Определить в этом классе функции-члены класса, обеспечивающие: добавление элементов дерева, удаление элемента дерева. Дополнительно перегрузить для элементов этого класса операцию! (логическое отрицание), которая возвращает количество листьев (узлов, не имеющих узлов-потомков) в этом дереве.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: