Изменить демонстpационную пpогpамму.
7.3. Лабораторная работа №3. Использование наследования. Обработка исключений.
Для задач из предыдущей лабораторной работы реализовать иерархию классов, изменяя отдельные методы и добавляя некоторые члены-данные (по усмотрению студента и преподавателя). В иерархию должно входить 3-4 производных класса. Несколько методов (по смыслу) должны быть виртуальными. Изменить демонстрационную программу так, чтобы она демонстрировала полиморфическое поведение классов. Исследовать, как реализуется механизм полиморфизма.
Добавить обработку исключений при возникновении ошибок: недостатка памяти, выход за пределы диапазона допустимых значений и т. д. Обработку исключений реализовать на уровне методов и демонстрационной программы. Изменить демонстрационную программу так, чтобы она демонстрировала механизм исключений.
7.4. Лабораторная работа №4. Применение шаблонов.
Задание представляет собой типовую задачу по разработке шаблонов стандартных структур данных.
Структура данных:
Номер варианта для структуры данных | Вариант структуры данных |
1 | Стек |
2 | Циклическая очередь |
3 | Массив (массив ссылок) |
4 | Односвязный список |
5 | Двусвязный список |
6 | Циклический список |
7 | Двоичное дерево |
Способ хранения объектов в структуре данных:
Номер варианта | Вариант |
1 | Хранение ссылок объектов |
2 | Хранение самих объектов |
Способ определения размерности:
Номер варианта | Вариант |
1 | Статический параметр шаблона |
2 | Динамический массив ссылок или элементов |
Операция:
Номер варианта | Вариант |
1 | Включение элемента с сохранением упорядочености |
2 | Включение элемента по индексу (номеру). |
3 | Исключение (удаление) элемента по индексу |
4 | Двоичный поиск на основе сравнения с объектом-ключом |
5 | Поиск элемента по индексу |
6 | Сортировка |
Вариант 1
Структура данных: стек.
Способ хранения объектов: об"екты.
Размерность структуры данных: параметр шаблона.
Операция: загрузка об"екта в стек.
Операция: извлечение из стека.
Вариант 2
Структура данных: стек.
Способ хранения объектов: ссылки на об"екты.
Размерность структуры данных: динамический массив.
Операция: загрузка об"екта в стек.
Операция: извлечение из стека.
Вариант 3
Структура данных: циклическая очередь.
Способ хранения объектов: об"екты
Размерность структуры данных: параметр шаблона.
Операция: включение в конец очереди.
Операция: исключение из очереди.
Вариант 4
Структура данных: циклическая очередь.
Способ хранения объектов: ссылки на об"екты.
Размерность структуры данных: динамический массив.
Операция: включение в конец очереди.
Операция: исключение из очереди.
Вариант 5
Структура данных: массив.
Способ хранения объектов: об"екты.
Размерность структуры данных: параметр шаблона.
Операция: сортировка при наличии переопределенной операции
сравнения об"ектов.
Операция: Двоичный поиск на основе сравнения с объектом
-ключом.
Вариант 6
Структура данных: массив ссылок.
Способ хранения объектов: ссылки на об"екты.
Размерность структуры данных: динамический массив.
Операция: сортировка при наличии переопределенной операции
сравнения об"ектов.
Вариант 7
Структура данных: односвязный список, содержащий ссылки
на элементы данных.
Операция: сортировка при наличии переопределенной
операции сравнения об"ектов.
Операция: включение с сохранением упорядоченности при
наличии переопределенной операции сравнения об"ектов.
Операция: включение элемента по заданному номеру
Вариант 8
Структура данных: двоичное дерево, содержащее ссылки на
элементы данных.
Операция: включение с сохранением упорядоченности при
наличии переопределенной операции сравнения об"ектов.
Вариант 9
Структура данных: двоичное дерево, содержащее элементы данных.
Операция: включение с сохранением упорядоченности при
наличии переопределенной операции сравнения об"ектов.
Вариант 10
Структура данных: односвязный список, содержащий элементы
данных.
Операция: включение с сохранением упорядоченности при
наличии переопределенной операции сравнения об"ектов.
Вариант 11
Структура данных: двусвязный циклический список, содержащий
элементы данных.
Операция: включение с сохранением упорядоченности при
наличии переопределенной операции сравнения об"ектов.
Операция: поиск и возвращение элемента данных по заданному
номеру.
Вариант 12
Структура данных: двусвязный циклический список, содержащий
элементы данных.
Операция: включение по заданному номеру.
Операция: удаление по заданному номеру.
Операция: поиск и возвращение элемента данных по заданному
номеру.
8. Курсовые работы.
8.1. Темы курсовых работ
8.1.1. Шаблон иерархической структуры данных в памяти
Для заданной двухуровневой структуры данных, содержащей указатели на объекты (или сами объекты) - параметры шаблона, разработать полный набор операций (добавление, включение и извлечение по логическому номеру, сортировка, включение с сохранением порядка, загрузка и сохранение объектов в бинарном файле, балансировка – выравнивание размерностей структур данных нижнего уровня). Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т. д..).
Проверить шаблон на простых типах и сложных типах. В качестве сложного типа можно использовать объекты - строки. Программа должна реализовывать указанные выше действия. Протестировать шаблон. Программа тестирования должна содержать меню, обеспечивающее выбор операций.
1. Шаблон структуры данных – двухуровневый массив указателей на объекты. Массив верхнего уровня - статический, массивы нижнего уровня – динамические, размерность – параметр конструктора, последовательность указателей в каждом массиве ограничена NULL. Если после включения указателя массив заполняется полностью, то создается еще один массив указателей, в который переписывается половина указателей из старого.
2. Шаблон структуры данных – двухуровневый массив указателей на объекты с типом – параметром шаблона. Массив верхнего уровня – статический. Массивы нижнего уровня – динамические, размерность каждого следующего в 2 раза больше размерности предыдущего, последовательность указателей в каждом массиве ограничена NULL.
3. Шаблон структуры данных – односвязный список, содержащий статический массив указателей на объекты. Последовательность указателей в каждом массиве ограничена NULL. При переполнении текущего массива указателей создается новый элемент списка, в который переписывается половина указателей из текущего.
4. Шаблон структуры данных – односвязный список, содержащий динамический массив указателей на объекты. Размерность массива указателей в каждом последующем элементе списка в 2 раза больше, чем в предыдущем. Последовательность указателей в каждом массиве ограничена NULL. При переполнении текущего массива указателей последний указатель переносится в следующий элемент списка.
5. Шаблон структуры данных – двусвязный циклический список, содержащий статический массив указателей на объекты. Последовательность указателей в каждом массиве ограничена NULL. При переполнении текущего массива указателей создается новый элемент списка, в который переписывается половина указателей из текущего.
6. Шаблон структуры данных – двусвязный список (нециклический), каждый элемент списка содержит указатель на объект. Для ускорения процедуры обхода структуры данные имеется динамический массив указателей на каждый 10-ый эле6мент списка (0,10,20 и т. д.).
7. Шаблон структуры данных - массив указателей на заголовки списков. Элемент списка содержит указатель на строку. (При включении последним предусмотреть ограничение длины текущего списка и переход к следующему).
8. Шаблон структуры данных - cписок, каждый элемент является заголовком односвязного списка. Элемент списка второго уровня содержит указатель на объект. (Включение элемента последним в список производить с учетом выравнивания длины текущего и следующего списков).
9. Шаблон структуры данных – дерево. Конечная вершина дерева содержит статический массив указателей на объекты (ограниченный NULL-указателем), промежуточная вершина содержит счетчик вершин дерева и два указателя на правое и левое поддерево. Значения в дереве не упорядочены. Естественная нумерация значений производится путем обхода дерева по принципу “левое поддерево - вершина - правое поддерево”. Если при включении указателя в найденный массив последний переполняется, он становится промежуточной вершиной.
10.
![]() |
Шаблон структуры данных – дерево. Вершина дерева содержит два указателя на объекты и три указателя на поддеревья. Данные в дереве упорядочены..
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |



