В каждой ЛР имеется: описание всех действий в коде, шаги выполнения работы, результаты работы программы и сам код!
1 "РАЗРАБОТКА КЛАССОВ,
СОЗДАНИЕ КОНСТРУКТОРОВ И ДЕСТРУКТОРОВ"
Построить класс для работы с дробями. Класс должен включать соответствующие поля: числитель, знаменатель, строковая запись дроби (динамическое выделение памяти для записи), например, «три четверти» или «две пятых».
Класс должен обеспечивать простейшие функции для работы с данными класса: сокращение дроби, сложение двух объектов класса, вывод дроби в удобной форме.
Класс должен обеспечивать набор методов для работы с данными. Создать перегруженные конструкторы: конструктор с параметрами, конструктор копирования, конструктор по умолчанию.
2 «Переопределение операций. Использование статических членов класса»
Реализовать с помощью классов динамическую списочную структуру, содержащую объекты классов, связанных наследованием из лаб. работы №4. В классах реализовать методы добавления, удаления, вставки по номеру, удаления по номеру, поиска и просмотра всей структуры.
Структура данных: дек (deque — double ended queue) с ограниченным выходом (добавление с двух концов, удаление с одного конца), реализованный на однонаправленном списке.
Способ хранения объектов: объекты.
3 «Переопределение операций. Использование статических членов класса ч2»
• Для класса из лабораторной работы №2 перегрузить операции ввода/вывода, позволяющие осуществлять ввод и вывод в удобной форме объектов классов:
• ввод с клавиатуры объекта и вывод на экран;
• запись объектов в текстовый файл и загрузка из текстового файла;
• запись объектов в двоичный файл и загрузка из двоичного файла.
В файл иметь возможность сохранять любое количество созданных объектов. При загрузке в программу создавать объекты с параметрами, записанными в файл. Дополнить демонстрационную программу, продемонстрировав все перегруженные операции.
4 «Наследование»
Для классов предыдущей лабораторной работы реализовать иерархию, перегрузив отдельные методы и добавляя члены-данные и методы (по заданию и/или усмотрению студента и преподавателя). В иерархию должно входить 2-3 производных класса. Один из методов должен быть виртуальным.
Класс для pаботы с рациональными дробями. Создать наследников класса:
• класс, в котором храниться поле - результат вычисления дроби;
• класс смешанная дробь.
Дополнить демонстрационную программу так, чтобы она демонстрировала создание, копирование объектов родственных типов, работу виртуальных функций.
5 «Создание динамического списка объектов, связанных наследованием. полиморфизм»
Реализовать с помощью классов динамическую списочную структуру, содержащую объекты классов, связанных наследованием из лаб. работы №4. В классах реализовать методы добавления, удаления, вставки по номеру, удаления по номеру, поиска и просмотра всей структуры.
Структура данных: дек (deque — double ended queue) с ограниченным выходом (добавление с двух концов, удаление с одного конца), реализованный на однонаправленном списке.
Способ хранения объектов: объекты.
6 «ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ»
Добавить в классы и демонстрационную программу обработку исключений при возникновении ошибок: недостатка памяти, выхода за пределы диапазона допустимых значений, деление на ноль и т.д. Дополнить демонстрационную программу так, чтобы она демонстрировала обработку исключений.
7 «УНИВЕРСАЛЬНОСТЬ. ПРИМЕНЕНИЕ ШАБЛОНОВ ФУНКЦИЙ И КЛАССОВ»
Задание представляет собой типовую задачу по разработке шаблонов стандартных структур данных. В качестве структур данных взять разработанные классы в лабораторной работе №5. Протестировать структуру данных. В качестве хранимых объектов использовать встроенные типы С++.
8 «Шаблонны классов STL (Standard Template Library)»
Для встроенного типа (например, int или char) и класса из лабораторной работы №1 провести временной анализ заданных шаблонных классов на основных операциях: добавление, удаление, поиск, сортировка. Использовать итераторы для работы с контейнерами. Для получения времени выполнения операции засекать системное время начала и окончания операции и автоматически генерировать большое количество данных.