Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
###Cpp_лкц1_1.09_11_#дляБАК#29_01_12.doc
Скачиваний:
40
Добавлен:
29.04.2019
Размер:
6.42 Mб
Скачать

Часть II. Объектно-ориентированное программирование

Написать тестовую программу, которая:

  • динамически выделяет массив указателей на базовый класс (4-6);

  • в режиме диалога заполняет этот массив указателями на производные классы, при этом экземпляры производных классов создаются динамически с заданием начальных значений;

  • для созданных экземпляров производных классов выполняет проверку всех разработанных методов с выводом исходных данных и результатов на дисплей.

Для конструкторов копирования каждого класса предусмотреть диагностическую печать количества его вызовов в определенное место дисплея (рекомендуется использовать статические члены класса).

Режим диалога обеспечивается с помощью иерархического меню.

Шаблоны классов Вариант 1

Создать шаблон класса «стек». Использовать его при решении задачи 1 из раздела «Классы».

Вариант 2

Создать шаблон класса «стек». Использовать его при решении задачи 7 из раздела «Динамические структуры данных» (см. упражнения к первой части).

Вариант 3

Создать шаблон класса «стек». Использовать его при решении задачи 8 из раздела «Динамические структуры данных» (см. упражнения к первой части).

Вариант 4

Создать шаблон класса «однонаправленный линейный список». Использовать его при решении задачи 1 из раздела «Динамические структуры данных» (см. упражнения к первой части).

Вариант 5

Создать шаблон класса «однонаправленный линейный список». Использовать его при решении задачи 3 из раздела «Динамические структуры данных» (см. упражнения к первой части).

Вариант 6

Создать шаблон класса «бинарное дерево». Использовать его при решении задачи 2 из раздела «Динамические структуры данных» (см. упражнения к первой части).

Вариант 7

Создать шаблон класса «бинарное дерево». Использовать его при решении задачи 4 из раздела «Динамические структуры данных» (см. упражнения к первой части).

Упражнения к части II

261

Варианте

Создать шаблон класса «бинарное дерево». Использовать его для сортировки целых чисел и строк, задаваемых с клавиатуры или из файла.

Вариант 9

Создать шаблон класса «очередь». Написать программу, демонстрирующую работу с этим шаблоном для различных типов параметров шаблона.. Программа должна содержать меню, позволяющее осуществить проверку всех методов шаблона.

Вариант 10

Создать шаблон класса «очередь с приоритетами». При добавлении элемента в такую очередь его номер определяется его приоритетом. Написать программу, демонстрирующую работу с этим шаблоном для различных типов параметров шаблона. Программа должна содержать меню, позволяющее осуществить проверку всех методов шаблона.

Вариант 11

Создать шаблон класса для работы с комплексными числами (см. вариант 5 из раздела «Классы»). Написать программу, использующую этот шаблон, задавая вещественную и мнимую части как числами типа double, так и целыми числами.

Вариант 12

Параметризовать класс одномерных массивов чисел (см. вариант 8 из раздела «Классы»). Написать программу, использующую созданный шаблон для создания массивов различного типа.

Вариант 13

Параметризовать класс, описанный в задаче 12 из раздела «Классы». Написать программу, использующую созданный шаблон для создания матриц различного типа.

Вариант 14

Описать шаблон класса «множество», позволяющий выполнять основные операции — добавление и удаление элемента, пересечение, объединение и разность множеств.

Написать программу, демонстрирующую работу с этим шаблоном для различных типов данных.

Вариант 15

Создать шаблон класса «однонаправленный кольцевой список». Использовать его при решении задачи 5 из раздела «Динамические структуры данных» (см. упражнения к первой части).

Вариант 16

Создать шаблон класса «двунаправленный кольцевой список». Использовать его при решении задачи 6 из раздела «Динамические структуры данных» (см. упражнения к первой части).

262