Тема № 6 Создание и обработка наборов данных заданной структуры с использованием перегрузки операторов ввода-вывода
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

Цель выполнения этой работы состоит в изучении особенностей переопределения операций ввода-вывода встроенных типов для использования этих операций в стандартном формате для объектов заданных классов.

Исходные данные для этого задания: объект со структурой, определенной в первом задании.

Требуется составить программу, в которой операции ввода-вывода переопределены для ввода-вывода объектов.

Требования:

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

· Операция вывода(ввода) должна быть реализована для записи по формату следующего вида:

  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/функция записи некоторого текста(заголовка) в строку(книгу) с заданным номером.


Выполнение открытой член-функции change , которая записывает введенный заголовок в книгу с номером nomerkn в объект-библиотеку с номером nomer
Выполнение открытой член-функции maxdlina для вычисления номера книги nomerkn с максимальной длиной в объекте-библиотеке с вычисленным номером nomer
Цикл выполнения для каждого i-го объекта-библиотеки открытой член-функции maxdlina для вычисления максимальной длины книги, записанной в объекте, и вычисление номера объекта nomer , который содержит книгу максимального размера (i=1,2…m)
2
12
11
10
9
8
7
6
5
4
3
1
Определение массива объектов-библиотек заданного класса         
Блок-схема


Дата: 2019-03-05, просмотров: 245.