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

Лабораторна робота 5

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

Варіант 1

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

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

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

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

" * " - скалярне множення масивів,

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

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

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

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

Тип елементу масиву обрати самостійно.

Варіант 2

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

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

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

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

" <= " - відношення "менше чи дорівнює",

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

" >= " - відношення "більше чи дорівнює",

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

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

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

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

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

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

Варіант 3

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

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

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

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

" <= " - відношення "менше чи дорівнює",

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

" >= " - відношення "більше чи дорівнює",

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

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

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

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

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

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

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

Варіант 4

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

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

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

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

" <= " - відношення включення (перевіряється, чи є множина, що надана лівим операндом, підмножиною множини, що надана правим операндом),

" >= " - відношення включення (перевіряється, чи є множина, що надана правим операндом, підмножиною множини, що надана лівим операндом),

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

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

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

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

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

Варіант 5

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

Варіант 6

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

Варіант 7

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

fa >> fb ;

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

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

fa >> fb >> fc;

Варіант 8

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

Варіант 9

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

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