Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание для 2го курса.doc
Скачиваний:
6
Добавлен:
04.06.2015
Размер:
105.47 Кб
Скачать

Задание на лабораторную работу №2 Цель работы

Модульная организация программы, структуры (тип struct), работа с функциями, передача значений по значению, по ссылке, через указатели.

Задание

Измените лабораторную работу №1следующим образом:

  1. Создайте несколько структур, описывающих считываемые данные.

  2. Создайте для каждой структуры две функции:

    1. Функция Readдля чтения из файла.

    2. Функция Writeдля записи в файл.

  3. Приведите модульную структуру программы к объектному стилю:

    1. Описание абстракций и функций их обработки группируются по виду абстракций. Т.е. различные структуры размещаются в разных заголовочныхфайлах (*.h).

    2. Описания типов, сигнатур и классов размещаются отдельно от их реализации. Т.е. структура и предварительные объявления функций размещаются в заголовочном файле, а их тела в отдельном файле исходного кода (*.cpp).

  4. Модифицируйте алгоритм чтения и записи файлов следующим образом:

    1. Создайте два массива размером в 1000 элементов. Первый массив содержит структуры первого типа из лабораторной работы №1 (например треугольники), второй массив содержит структуры другого типа (прямоугольники).

    2. Считайте исходные данные из файла в соответствующие массивы. После этого закройте файл.

    3. Запишите данные из массивов в файл с результатом. Порядок следования элементов можно не соблюдать.

Задание на лабораторную работу №3 Цель работы

Классы и методы, перегрузка функций, перегрузка операторов.

Задание

Измените лабораторную работу №1аналогичнолабораторной работе №2, но вместо структур и функций используйте классы и методы:

  1. Под каждый считываемый набор тип данных выделяется отдельный класс.

  2. Данные должны быть размещены в защищенной области видимости, методы в открытой.

  3. У каждого класса должен быть:

    1. Конструктор, инициализирующий поля класса значениями по умолчанию.

    2. Перегруженный оператор <<, осуществляющий чтение из файла.

    3. Перегруженный оператор >>, осуществляющий запись в файл.

Пункты 3 и 4 аналогичны лабораторной работе №2.

Задание на лабораторную работу №4 Цель работы

Работа с памятью и указателями, динамические типы данных, стек.

Задание

В лабораторную работу №3 добавьте двакласса, реализующих динамический тип данных -стек. Добавление производите в новых модулях, один заголовочный файл для описания класса и один файл исходного кода с реализацией его методов (всего 4 файла).

Первый стек должен хранить узлы с данными первого типа из лабораторной работы №1 (например треугольники), второй стек предназначен для хранения данных другого типа (прямоугольники).

Каждый стек должен иметь следующие методы:

  1. Добавление нового узла.

  2. Удаление последнего добавленного узла.

  3. Удаление всех элементов.

  4. Перегруженный оператор <<для вывода содержимого стека в поток.

  5. Конструктор.

  6. Деструктор.

Замените массивы, хранящие считываемые данные, на стеки.

Задание на лабораторную работу №5

Цель работы

Изучение шаблонов типов.

Задание

В лабораторную работу №4 добавьте стек с использованием шаблонов типа. Получившийся класс должен быть способен хранить узлы с произвольными данными. Он должен иметь конструктор, деструктор, методы для добавления и удаления элементов.

Замените объекты старых стеков на стек нового типа.

Задание на лабораторную работу №6

Цель работы

Динамические типы данных, очередь.

Задание

В лабораторную работу №5 добавьте класс, реализующих динамический тип данных – очередь сиспользованием шаблонов типа.

Очередь должна иметь следующие методы:

  1. Добавление нового узла в конец очереди.

  2. Удаление первого добавленного узла.

  3. Удаление всех элементов.

  4. Перегруженный оператор << для вывода содержимого очереди в поток.

  5. Конструктор.

  6. Деструктор.

Замените объекты стеков на очереди.

Задание на лабораторную работу №7

Цель работы

Динамические типы данных, двусвязный список.

Задание

В лабораторную работу №6 добавьте класс, реализующих динамический тип данных – линейный двусвязный список сиспользованием шаблонов типа.

Двусвязный список должен иметь следующие методы:

  1. Добавление нового узла в начало или конец списка.

  2. Удаление первого первого или последнего узла.

  3. Удаление всех элементов.

  4. Удаление узла из произвольного места.

  5. Перегруженный оператор << для вывода содержимого списка в поток.

  6. Конструктор.

  7. Деструктор.

Замените объекты очередей на двусвязные списки.

Задание на лабораторную работу №8

Цель работы

Работа с вариантными обобщениями.

Задание

  1. Скопируйте класс двусвязного списка в лабораторную работу №2.

  2. Создайте вариантное обобщение на основе имеющихся структур.

  3. Создайте две обобщенных функции, реализующих чтение обобщения из файла с исходными данными и его запись в файл с результатом.

  4. Модифицируйте алгоритм чтения и записи:

    1. Оставьте только один список, специализированный обобщением.

    2. Считайте данные из файла при помощи обобщений и сохраните их в списке.

    3. Сохраните содержимое списка в файл с результатами.

Полученная программа должна при выводе сохранять порядок следования исходных данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]