- •«Московский государственный технический университет гражданской авиации»
- •Лабораторная работа № 12 Обработка данных текстовых и бинарных файлов.
- •1.1. Цель лабораторной работы
- •1.2. Теоретические сведения Работа с файлами
- •Текстовые и бинарные (двоичные) файлы
- •Потоковый ввод - вывод на базе библиотеки классов
- •Создание потоков
- •Закрытие файла
- •Определение потоков - объектов классов с присоединением потока к физическому файлу
- •1.3. Задание на выполнение лабораторной работы
- •1.4. Порядок выполнения работы
- •1.5. Пример выполнения лабораторной работы
- •Листинг программы
- •1.6. Контрольные вопросы
- •2 Лабораторная работа № 13 Разработка шаблонов абстрактных типов данных с перегрузкой в них ряда операций.
- •Цель лабораторной работы
- •2.2. Теоретические сведения Абстрактные типы данных (атд)
- •Шаблоны функций и классов
- •Шаблоны функций
- •Шаблоны классов
- •Использование шаблона классов
- •Внешнее определение методов и дружественных функций шаблонных классов.
- •2.3 Задание на выполнение лабораторной работы
- •2.4. Порядок выполнения работы
- •2.5. Методические указания
- •2.6. Содержание отчета
- •Контрольные вопросы
- •Варианты заданий лабораторной работы
- •3. Лабораторная работа № 14 Демонстрация использования алгоритмов stl для обработки элементов контейнерных классов, встроенных и пользовательских типов.
- •3.1. Цель лабораторной работы
- •3.2. Теоретические сведения Стандартная библиотека шаблонов (stl)
- •Состав stl
- •Контейнеры
- •Алгоритмы
- •Контейнеры и итераторы.
- •Продолжим рассмотрение контейнеров
- •Общие свойства контейнеров
- •Последовательные контейнеры
- •Методы, которые поддерживают последовательные контейнеры
- •Адаптеры контейнеров
- •Очередь
- •Очередь с приоритетами
- •Ассоциативные контейнеры
- •Словари (map)
- •Словари с дубликатами (multimap)
- •Множество (set)
- •Множества с дубликатами (multiset)
- •Обобщенные алгоритмы stl
- •Не модифицирующие операции с последовательностями
- •Функциональные объекты
- •3.3. Задание на выполнение лабораторной работы
- •3.4. Порядок выполнения работы
- •Часть 1
- •3.5. Методические указания
- •3.6. Контрольные вопросы
- •3.7. Варианты заданий лабораторной работы
- •1.1. Цель лабораторной работы 3
- •1.2. Теоретические сведения 3
2.3 Задание на выполнение лабораторной работы
Создать шаблон заданного контейнерного класса и реализовать его для данных различных типов.
2.4. Порядок выполнения работы
Определить шаблон заданного класса, в соответствии с вариантом. Определить конструкторы, деструктор, перегруженную операцию присваивания ("=") и операции, заданные в варианте задания.
Написать программу тестирования, в которой проверяется использование шаблона для стандартных типов данных. Выполнить тестирование.
Определить пользовательский класс, который будет использоваться в качестве параметра шаблона. Определить в классе необходимые функции и перегруженные операции.
Написать программу тестирования, в которой проверяется использование шаблона для пользовательского типа. Выполнить тестирование.
2.5. Методические указания
Класс одномерный массив реализовать
Как динамический массив (вектор), для этого определение класса должно иметь следующие поля:
указатель на начало массива;
текущий размер массива.
Как массивов ограниченной размерности, должен иметь паля:
одномерный массив и размер массива,
размер массива определяется нетипизирующем параметром шаблона.
Для ввода и вывода определить в классе функции input и print.
Аккуратно работать с константными объектами. Например:
- конструктор копирования следует определить так:
MyTmp (const MyTmp& ob);
- операцию присваивания перегрузить так:
MyTmp& operator = (const MyTmp& ob);
Для шаблонов списков, стеков и очередей в качестве стандартных типов использовать символьные, целые и вещественные типы. Для пользовательского типа взять класс из лабораторной работы № 8.
Для шаблонов массивов в качестве стандартных типов использовать целые и вещественные типы. Для пользовательского типа взять пользовательский класс "комплексное число" - complex.
class complex {
int re, im; // действительная и мнимая части
public: // необходимые функции и перегруженные операции
};
Определение шаблона следует разместить вместе с определением пользовательского класса в заголовочном файле.
Тестирование должно быть выполнено для всех типов данных и для всех операций.
2.6. Содержание отчета
Титульный лист: название дисциплины, номер варианта и наименование работы, фамилия, имя, отчество студента, дата выполнения.
Краткие теоретические сведения.
Техническое задание в соответствии с вариантом работы.
Следует дать конкретное задание, то есть указать шаблон, какого класса должен быть создан, какие должны быть в нем конструкторы, компонентные функции, перегруженные операции и т.д.
То же самое следует указать для пользовательского класса.
Определение шаблона класса с комментариями.
Определение пользовательского класса с комментариями.
Реализация конструкторов, деструктора, операции присваивания и перегружаемых операций, которые заданы в варианте задания.
То же самое для пользовательского класса.
Реализация перегруженных операций.
Результаты тестирования (экранные формы). Следует указать для каких типов, и какие операции проверены.
