- •Технология программирования Задание для лабораторных работ
- •Варианты лабораторных работ
- •Задание на лабораторную работу №2 Цель работы
- •Задание
- •Задание на лабораторную работу №3 Цель работы
- •Задание
- •Задание на лабораторную работу №4 Цель работы
- •Задание
- •Задание на лабораторную работу №5
- •Задание на лабораторную работу №9 Цель работы
- •Задание
- •Задание на лабораторную работу №10 Цель работы
- •Задание
- •Задание на лабораторную работу №11 Цель работы
- •Задание
- •Задание на лабораторную работу №12 Цель работы
- •Задание
Задание на лабораторную работу №2 Цель работы
Модульная организация программы, структуры (тип struct), работа с функциями, передача значений по значению, по ссылке, через указатели.
Задание
Измените лабораторную работу №1следующим образом:
Создайте несколько структур, описывающих считываемые данные.
Создайте для каждой структуры две функции:
Функция Readдля чтения из файла.
Функция Writeдля записи в файл.
Приведите модульную структуру программы к объектному стилю:
Описание абстракций и функций их обработки группируются по виду абстракций. Т.е. различные структуры размещаются в разных заголовочныхфайлах (*.h).
Описания типов, сигнатур и классов размещаются отдельно от их реализации. Т.е. структура и предварительные объявления функций размещаются в заголовочном файле, а их тела в отдельном файле исходного кода (*.cpp).
Модифицируйте алгоритм чтения и записи файлов следующим образом:
Создайте два массива размером в 1000 элементов. Первый массив содержит структуры первого типа из лабораторной работы №1 (например треугольники), второй массив содержит структуры другого типа (прямоугольники).
Считайте исходные данные из файла в соответствующие массивы. После этого закройте файл.
Запишите данные из массивов в файл с результатом. Порядок следования элементов можно не соблюдать.
Задание на лабораторную работу №3 Цель работы
Классы и методы, перегрузка функций, перегрузка операторов.
Задание
Измените лабораторную работу №1аналогичнолабораторной работе №2, но вместо структур и функций используйте классы и методы:
Под каждый считываемый набор тип данных выделяется отдельный класс.
Данные должны быть размещены в защищенной области видимости, методы в открытой.
У каждого класса должен быть:
Конструктор, инициализирующий поля класса значениями по умолчанию.
Перегруженный оператор <<, осуществляющий чтение из файла.
Перегруженный оператор >>, осуществляющий запись в файл.
Пункты 3 и 4 аналогичны лабораторной работе №2.
Задание на лабораторную работу №4 Цель работы
Работа с памятью и указателями, динамические типы данных, стек.
Задание
В лабораторную работу №3 добавьте двакласса, реализующих динамический тип данных -стек. Добавление производите в новых модулях, один заголовочный файл для описания класса и один файл исходного кода с реализацией его методов (всего 4 файла).
Первый стек должен хранить узлы с данными первого типа из лабораторной работы №1 (например треугольники), второй стек предназначен для хранения данных другого типа (прямоугольники).
Каждый стек должен иметь следующие методы:
Добавление нового узла.
Удаление последнего добавленного узла.
Удаление всех элементов.
Перегруженный оператор <<для вывода содержимого стека в поток.
Конструктор.
Деструктор.
Замените массивы, хранящие считываемые данные, на стеки.
Задание на лабораторную работу №5
Цель работы
Изучение шаблонов типов.
Задание
В лабораторную работу №4 добавьте стек с использованием шаблонов типа. Получившийся класс должен быть способен хранить узлы с произвольными данными. Он должен иметь конструктор, деструктор, методы для добавления и удаления элементов.
Замените объекты старых стеков на стек нового типа.
Задание на лабораторную работу №6
Цель работы
Динамические типы данных, очередь.
Задание
В лабораторную работу №5 добавьте класс, реализующих динамический тип данных – очередь сиспользованием шаблонов типа.
Очередь должна иметь следующие методы:
Добавление нового узла в конец очереди.
Удаление первого добавленного узла.
Удаление всех элементов.
Перегруженный оператор << для вывода содержимого очереди в поток.
Конструктор.
Деструктор.
Замените объекты стеков на очереди.
Задание на лабораторную работу №7
Цель работы
Динамические типы данных, двусвязный список.
Задание
В лабораторную работу №6 добавьте класс, реализующих динамический тип данных – линейный двусвязный список сиспользованием шаблонов типа.
Двусвязный список должен иметь следующие методы:
Добавление нового узла в начало или конец списка.
Удаление первого первого или последнего узла.
Удаление всех элементов.
Удаление узла из произвольного места.
Перегруженный оператор << для вывода содержимого списка в поток.
Конструктор.
Деструктор.
Замените объекты очередей на двусвязные списки.
Задание на лабораторную работу №8
Цель работы
Работа с вариантными обобщениями.
Задание
Скопируйте класс двусвязного списка в лабораторную работу №2.
Создайте вариантное обобщение на основе имеющихся структур.
Создайте две обобщенных функции, реализующих чтение обобщения из файла с исходными данными и его запись в файл с результатом.
Модифицируйте алгоритм чтения и записи:
Оставьте только один список, специализированный обобщением.
Считайте данные из файла при помощи обобщений и сохраните их в списке.
Сохраните содержимое списка в файл с результатами.
Полученная программа должна при выводе сохранять порядок следования исходных данных.