- •Факультет информатики и вычислительной техники
- •Содержание
- •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 Литература
Тема 8
Класс "Очередь" на основе связного списка
1. Создать класс Queue для работы со структурами типа "Очередь". Тип элемента очереди должен быть представлен шаблоном.
Очередь является структурой данных типа "Первый пришел - первый вышел" (FIFO - first-in, first-out). Действие очереди напомина-ет работу эскалатора в метро. Класс Queue построить на основе связ-ного списка.
2. Для создания объектов и правильного их удаления предусмо-треть соответствующие конструкторы и деструктор. Предусмотреть в классе конструктор копирования.
3. Для программирования операций над структурами типа "Очередь" выполнить перегрузку следующих символов операций:
- динамическое присваивание, символ "=" ;
- ввод очереди из файла, символ "<<";
- вывод очереди в файл, символ ">>".
4. Предусмотреть следующие функции - члены класса:
int Queue::num() - количество элементов, которые находятся в очереди в данный момент;
int Queue::max() - количество мест в очереди (максималь-но возможное количество элементов, помещаемых в очередь);
bool Queue::empty() - проверка, является ли очередь пустой;
elem& Queue::pop() - извлечь первый элемент очереди;
void Queue::push(elem&) - добавить новый элемент в конец очереди;
elem* Queue::find(elem&) - найти заданный элемент в очереди и вернуть его адрес, при отсутствии элемента - вернуть значение NULL;
5. Разработать демонстрационно-тестирующую программу. Вы-полнить тестирование созданных программных средств.
Литература: [17]
Тема 9
Класс "Множество" на основе динамического массива
1. Для программирования операций с объектами типа "Множество" создать класс Set. Тип элемента множества представить шаблоном. Множество представляет собой набор элементов, каждый из которых является уникальным, повторение элементов не допускает-ся. В качестве базовой структуры для создания класса "Множество" использовать одномерный динамический массив.
2. Для создания объектов типа "Множество", их инициализации и правильного их удаления предусмотреть следующие функции класса:
2.1. Конструктор без параметров.
2.2. Конструктор копирования.
2.3. Конструктор для инициализации создаваемого объекта с помощью внешнего массива.
2.4. Деструктор.
3. Для программирования операций над объектами типа "Множество" выполнить перегрузку символов операций, указанных ниже.
3.1. Динамическое присваивание, символ "=". При выполне-нии операции вида A = B, где A и B имеют тип "Множество", объект A должен стать идентичным объекту B. Значение, возвращаемое операцией - ссылка на левый операнд.
3.2. Проверка, являются ли два множества одинаковыми, символ "==". Операция вида A == B, где A и B имеют тип "Множество", должна возвращать значение true, если множества A и B идентичны, и значение false в противном случае.
3.2. Объединение множеств, символ "+". Операция вида A + B, где A и B имеют тип "Множество", должна возвращать множество, которое является объединением множеств A и B.
3.3. Пересечение множеств, символ "*". Операция вида A * B, где A и B имеют тип "Множество", должна возвращать множество, которое является пересечением множеств A и B.
3.4. Вычитание множеств, символ "-". Операция вида A - B, где A и B имеют тип "Множество", должна возвращать множество, которое является разностью множеств A и B.
3.5. Отношение включения, символ "<=". Операция вида A <= B, где A и B имеют тип "Множество", должна возвращать значение true, если множество A является подмножеством B, и значение false в противном случае.
3.6. Ввод множества из файла, символ ">>". Операция вида f >> A, где f - переменная типа ifstream, а A - переменная типа "Множество", должна приводить к считываию значения A из потока f. Операция должна возвращать ссылку на левый операнд (поток f).
3.7. Вывод множества в файл, символ "<<". Операция вида f << A, где f - переменная типа ofstream, а A - переменная типа "Множество", должна приводить к записи значения A в поток f. Операция должна возвращать ссылку на левый операнд (поток f).
4. Предусмотреть следующие функции - члены класса:
void Set::include(type x) - добавить новый элемент к множеству;
void Set::exclude(type x) - удалить значение x из множества;
bool Set::find(type x) - проверить, содержит ли множество заданный элемент.
5. Разработать демонстрационно-тестирующую программу. Выполнить тестирование созданного класса.