Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП Лаборатор_2011.doc
Скачиваний:
6
Добавлен:
07.02.2016
Размер:
279.04 Кб
Скачать

Лабораторна робота 5 Введення/виведення потоками, робота з файлами, створення нових потокових операцій

Варіант 1

Створити динамічний клас для роботи з одновимірними масивами чисел дійсного типу. Здійснити перевантаження символів операцій:

" = " - динамічне присвоєння,

" + " - по елементне додавання,

" - " - по елементне віднімання,

"[ ] " - доступ до елементу по індексу з контролем.

Крім того перевантажити операції введення із файлу і виведення у файл з символами " << " , " >> " таким чином:

f << A - виведення (запис) значення A у файл f,

f >> A - введення (читання) значення A із файлу f.

Тип елементу масиву обрати самостійно (один з дійсних типів).

Написати програму, яка доводить правильність роботи створеного класу.

Варіант 2

Створити динамічний клас для роботи з рядками символів. Максимальна довжина послідовності - 65535, код завершення послідовності - нуль. Здійснити перевантаження символів операцій:

" + " - конкатенація (з’єднання) рядків,

" - " - вилучення підрядку,

" < " - відношення "менше",

" > " - відношення "більше",

" == " - відношення "дорівнює".

За відношення порядку ("менше", "більше") вважати відношення лексикографічного порядку.

Крім того перевантажити операції введення із файлу і виведення у файл з символами " << " , " >> " таким чином:

f << A - виведення (запис) значення A у файл f,

f >> A - введення (читання) значення A із файлу f, де f - покажчик на файл або поток.

Написати програму, яка доводить правильність роботи створеного класу.

Варіант 3

Створити динамічний клас для роботи з рядками однобайтових символів. Максимальна довжина послідовності - 254. Перший байт робочого масиву повинен містити інформацію про фактичну кількість символів у рядку. Здійснити перевантаження символів операцій:

" + " - конкатенація (з’єднання) рядків,

" < " - відношення "менше",

" > " - відношення "більше",

" == " - відношення "дорівнює".

За відношення порядку ("менше", "більше") вважати відношення лексикографічного порядку.

Крім того перевантажити операції введення із файлу і виведення у файл з символами " << " , " >> " таким чином:

f << A - виведення (запис) значення A типу "рядок" у файл f,

f >> A - введення (читання) значення A із файлу f, де f - покажчик на файл або поток.

Передбачити обробку виключної ситуації - перевищення кількості символів рядка максимальної припустимої величини - 254.

Написати програму, яка доводить правильність роботи створеного класу.

Варіант 4

Створити клас для роботи з множинами. Максимальна кількість елементів множини - 65534. Здійснити перевантаження символів операцій:

" + " - об’єднання множин,

" - " - віднімання множин,

" * " - переріз множин,

" == " - еквівалентність множин.

Крім того перевантажити операції введення із файлу і виведення у файл з символами " << " , " >> " таким чином:

f << A - виведення (запис) значення A типу "множина" у файл,

f >> A - введення (читання) значення A із файлу f, де f - покажчик на файл або поток.

Написати програму, яка доводить правильність роботи створеного класу.

Варіант 5

Написати програму, яка здійснює побайтне копіювання інформації з одного файлу в інший при умові, що імена файлів вказуються у командній стрічці. Якщо ім’я файлу-приймача не вказано, програма повинна виводити інформацію із файлу-джерела на екран. Для виконання операцій обміну застосувати потокові операції.

Варіант 6

Створити класи bifstream i bofstream для виконання файлових операцій читання і запису значень дійсного типу у бінарному режимі (без форматних перетворювань). Застосувати потокові операції введення/виведення. Тип значень обрати самостійно з наступних:float,double,extended.

Написати програму, яка доводить правильність роботи створеного класу.

Варіант 7

Перевантажити символ операції “>>” таким чином, щоб можна було робити копіювання файлу за допомогою такого оператору:

fa >> fb ;

де fa, fb – потоки, що пов’язані з файлами.

Операція “>>” повинна повертати значення потоку fa так, щоб можна було робити множинне копіювання:

fa >> fb >> fc;

де fb, fc  потоки файлів-дублікатів.

Взяти до уваги, що операція ">>"має асоціативність "зліва-направо".

Варіант 8

Написати функцію, яка повертає значення дескриптору файла, пов’язаного з потоком. Функцію треба створити так, щоб вона працювала для потоків ifstream, ofstream, fstream. Створити файли, відкрити їх для читання, запису і введення/виведення за допомогою вказаних вище потоків і отримати їх дескриптори.

Варіант 9

Створити макрос-функцію, яка повертає значення дескриптору файла, пов’язаного з наданим потоком. Створити файли, відкрити їх для читання, запису і введення/виведення за допомогою потоків ifstream, ofstream, fstream і отримати їх дескриптори.