- •Задание №1 (Калькулятор)
- •Задание №2 (Внешняя функция)
- •Лабораторная работа № 2
- •Задание № 3 (Динамический массив – объект класса)
- •Задание № 4 (Динамическая таблица – объект класса)
- •Лабораторная работа №3
- •Задание № 5 ( Класс Stack и наследование)
- •Задание № 6 (Динамический полиморфизм и шаблоны)
- •Лабораторная работа №4
- •Задание № 7 (Библиотека стандартных шаблонов)
- •Задание № 8 (Обработка исключительных ситуаций)
- •Лабораторная работа № 5
- •Задание № 9 (Приложение бд)
- •Задание № 10 (Рисунки)
- •Задание № 12 (Меню)
- •Задание № 13 (Многомодульное приложение)
Задание № 5 ( Класс Stack и наследование)
Задача: Создать новый проект. Определить класс Stack(стек), включающий компонентный динамический массив, компонентные функции для доступа и модификации элементов массива и компонентные функции: Top() (возвращает элемент из вершины стека) и Pop() (удаляет элемент из вершины стека со сдвигом всех последующих элементов в сторону вершины).
Определить производный класс Stack1 с прямым доступом к компонентным данным базового класса. Определить в нем компонентную функцию Push(x) (вставляет элемент x в вершину стека; элемент, ранее находившийся в вершине стека, становится элементом, следующим за вершиной, и так далее).
Обеспечить максимальную инкапсуляцию компонентных данных. Обосновать ключ доступа при определении производного класса.
Создать оконный интерфейс пользователя для демонстрации работы компонентных функций.
Дополнительное задание:
Перегрузить функцию 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();
