Цель выполнения этой работы состоит в изучении особенностей переопределения операций ввода-вывода встроенных типов для использования этих операций в стандартном формате для объектов заданных классов.
Исходные данные для этого задания: объект со структурой, определенной в первом задании.
Требуется составить программу, в которой операции ввода-вывода переопределены для ввода-вывода объектов.
Требования:
· перегрузка быть реализована обязательно с возможностью сцепления операций. Это означает, что должна существовать возможность записи операции ввода-вывода одновременно для нескольких переменных и объектов встроенного типа в виде одной строки. Это означает, переопределяющая функция должна возвращать ссылку на объект, для которого определены операции ввода-вывода.
· Операция вывода(ввода) должна быть реализована для записи по формату следующего вида:
cin<<a<<c<<f<<w
Где a,c, - переменные встроенных типов ;
f, w - объекты разных классов, но для каждого класса должна быть переопределена операция <<.
· В функции, которая переопределяет ввод-вывод объекта, должна быть предусмотрена не только операция чтения или записи, но и некоторая предварительная обработка. Например, функция вывода объекта, которая выводит член-данное, представленное строкой, должна выводить не все символы строки, а только символы с четными номерами.
· Переопределенная операция ввода(вывода) может быть включена в программу первой темы и использоваться для ввода-вывода объектов(вместо открытой функции ввода или вывода данных объекта).
Примеры выполнения типовых заданий
3.1. Пример алгоритма и текста программы типового задания по первой теме
Задание
Задана структура некоторого объекта- библиотеки.
Члены-данные объекта-библиотеки – набор книг.
Члены-функции этого объекта-библиотеки, которые определяют возможное поведение объекта:
- вычисление максимального размера книги в библиотеке, т.е. максимального количества символов в книге.
- Запись в книгу максимального размера заданного заголовка.
Требуется составить на основе заданной структуры объекта программу, которая для заданного набора объектов-библиотек реализует следующий алгоритм:
1. Определение номера библиотеки, в которой находится книга максимального размера, с использованием первой член-функции объекта.
2. Запись заданного заголовка в книгу максимального размера в библиотеке, номер которой вычислен в предыдущем пункте 1. Эта запись должна быть реализована с помощью второй член-функции объекта.
Алгоритм выполнения задания.
1. Выбор структуры данных объекта.
Закрытые член-данные объекта представлены:
a/ 2-мерным символьным массивом сhar kniga [m][к] – где каждая строка символов представляет текст всей книги, который может содержать максимум k – символов; m – максимальное количество книг в объекте-библиотеке.
b/ целой величиной n – которая представляет действительное количество книг в объекте-библиотеке.
3. Для работы с объектом-библиотекой определены следующие открытые член-функции, включая и заданные в определении объекта-библиотеки:
a/ функция ввода исходных данных в объект, которая имеет два формальных параметра : символьный массив строк и целую величину n; эта функция копирует символьный массив, задаваемый формальным параметром, в закрытый символьный массив kniga; количество копируемых строк задается формальным параметром n.
b/ функция вывода символьного массива строк – содержимого книг библиотеки.
c/ функция определения максимальной длины строки или номера книги которая имеет эту максимальную длину – т. е. книги максимального размера ( в комментарии к программе указанo , каким образом меняется интерпретация этого возвращаемого значения).
d/функция записи некоторого текста(заголовка) в строку(книгу) с заданным номером.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Дата: 2019-03-05, просмотров: 276.