- •Факультет информатики и вычислительной техники
- •Содержание
- •1 Содержание курсовой РаБоТы и ее оформление
- •2 ТеМы курсовых работ
- •3 Задания к курсовым работам
- •Тема 1
- •Тема 3
- •Тема 4
- •Тема 5
- •Тема 6
- •Тема 7
- •Тема 8
- •Тема 9
- •Тема 10
- •Тема 11
- •Тема 12
- •Тема 13
- •Тема 14
- •Тема 15
- •Тема 16
- •Тема 17
- •Тема 18
- •Тема 19
- •Тема 20
- •Тема 21
- •Тема 22
- •Тема 23
- •Тема 24
- •Тема 25
- •4 Общие методические указания
- •5 Стиль записи программ
- •Void poligon::draw() // Заголовок функции пишем с // 3 позиции
- •Void main() // Функция main такая же, как и другие
- •6 Литература
Тема 12
Класс "Стек" на основе одномерного массива
1. Создать класс Stack для роботы со структурами типа стек. Стек представляет собой одномерную структуру, которая работает по принципу "последний вошел - первый вышел" (или LIFO - last-in, first-out). Тип элементов создаваемого стека должен определяться шаблоном. В качестве базовой структуры для построения стека использовать одномерный динамический массив.
2. Для создания объектов типа Stack, их инициализации и правильного их удаления предусмотреть соответствующие конструкторы и деструктор. Предусмотреть в классе конструктор копирования.
3. Количество мест для значений, помещаемых в стек (размер стека), должна быть константой для данного стека-объекта. Значение этого параметра должно устанавливаться при создании стека-объекта.
4. Для программирования операций над объектами класса Stack выполнить перегрузку следующих символов операций:
- динамическое присваивание, символ "=" ;
- проверка, являются ли два стека одинаковыми по размеру и содержимому, символ "==";
- прокрутка содержимого стека вперед на одну позицию, символ ">>" ;
- прокрутка содержимого стека назад на одну позицию, символ "<<" .
4. Предусмотреть следующие функции - члены класса:
int Stack::num() - количество элементов, сохраняемых в стеке в данный момент;
bool Stack::empty() - проверка, является ли стек пустым;
void Stack::push(type x) - загрузить новое значение x в стек;
type Stack::pop() - извлечь значение из вершины стека;
type Stack::top() - прочитать значение из вершины стека.
5. Разработать демонстрационно-тестирующую программу. Выполнить тестирование созданного класса.
Литература: [17]
Тема 13
Класс "Стек" на основе связного списка
1. Создать класс Stack для роботы со структурами типа стек. Стек представляет собой структуру типа "последний вошел - первый вышел" (или LIFO - last-in, first-out). Тип элементов стека должен определяться шаблоном. В качестве базовой структуры для построения стека использовать структуру связного списка.
2. Для создания объектов типа Stack, их инициализации и правильного их удаления предусмотреть соответствующие конструкторы и деструктор. Предусмотреть в классе конструктор копирования.
3. Для программирования операций над объектами класса Stack выполнить перегрузку следующих символов операций:
- динамическое присваивание, символ "=" ;
- проверка, являются ли размеры и содержимое двух стеков одинаковыми, символы "==";
- прокрутка стека вперед, символ ">>" ;
- прокрутка стека назад, символ "<<" .
4. Предусмотреть следующие функции - члены класса:
int Stack::num() - количество элементов, сохраняемых в стеке в данный момент;
bool Stack::empty() - проверка, является ли стек пустым;
void Stack::push(type) - загрузить новое значение в стек;
type Stack::pop() - извлечь значение из вершины стека;
type Stack::top() - прочитать значение из вершины стека.
5. Разработать демонстрационно-тестирующую программу. Выполнить тестирование созданного класса.
Литература: [17]