Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание_ЛР_ООП_89.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
768 Кб
Скачать

Задание № 5 ( Класс Stack и наследование)

Задача: Создать новый проект. Определить класс Stack(стек), включающий компонентный динамический массив, компонентные функции для доступа и модификации элементов массива и компонентные функции: Top() (возвращает элемент из вершины стека) и Pop() (удаляет элемент из вершины стека со сдвигом всех последующих элементов в сторону вершины).

Определить производный класс Stack1 с прямым доступом к компонентным данным базового класса. Определить в нем компонентную функцию Push(x) (вставляет элемент x в вершину стека; элемент, ранее находившийся в вершине стека, становится элементом, следующим за вершиной, и так далее).

Обеспечить максимальную инкапсуляцию компонентных данных. Обосновать ключ доступа при определении производного класса.

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

Дополнительное задание:

  1. Перегрузить функцию Top() так, чтобы она возвращала дополнительно количество элементов в стеке. Продемонстрировать работу родовой и перегруженной функции.

Примечание. Стек – это специальный тип списка, в котором все вставки и удаления выполняются только на одном конце, называемом вершиной стека. Для стека применима дисциплина обслуживания элементов : «Последним вошел – первым вышел».

Задание № 6 (Динамический полиморфизм и шаблоны)

Задача: 1. Используя проект, созданный по заданию 5, исследовать динамический полиморфизм на примере функции Тор(). Переопределенная функция должна возвращать элемент вершины стека, увеличенный на порядок.

2. Определить базовый и производный классы как шаблонные. Продемонстрировать их работу.

Лабораторная работа №4

Тема: Освоение технологии классов. Библиотека стандартных шаблонов и обработка исключительных ситуаций.

Цели:

1. Освоение технологии работы с БСШ.

2. Освоение технологии генерации и обработки исключительных ситуаций.

Вопросы для подготовки:

1. Библиотека стандартных шаблонов. Основные понятия.

2. Обработка исключительных ситуаций. Основные понятия.

3. Использование объектов класса для обработки исключительных ситуаций.

4. Перехват и обработка стандартных исключений.

Задание № 7 (Библиотека стандартных шаблонов)

Задача: Используя БСШ, решить следующие задачи:

1. Создать динамический массив с использованием компонентной функции Pushback() класса Vector. Функция Pushback(х) помещает значение х в конец вектора, увеличивая таким образом длину вектора на единицу;

2. Изменить на обратный порядок следования элементов массива с использованием функции-шаблона revers() раздела алгоритмов БСШ.

Набрать, отладить и протестировать следующий текст программы в консольном режиме

  • include <vector>

  • include <algorithm> using namespace std;

int main()

{

vector <int> v;

int i;

for (i=0; i<10; i++) v.push_back (i); // Создается вектор длиной 10 элементов

for (i=0; i<10; i++) cout<<v[i]<<” “;

reverse( v.begin(), v.end()); // Инвертирование последовательности

for (i=0; i<10; i++) cout<<v[i]<<” “;

}

Функции-элементы begin() и end() класса Vector возвращают соответственно итераторы начального и конечного элемента вектора.

Дополнительное задание:

1. Реализовать работу со стеком, используя библиотеку стандартных шаблонов и следующую справочную информацию:

а)для работы со стеком:

#include <stack>

#include <vector>

stack <int,<vector<int>> s;

s.push(x);

s.pop();

s.top();