- •Факультет інформатики та обчислювальної техніки
- •1 Зміст та оформлення лабораторної роботи
- •2 Теми лабораторних робот
- •3 Варіанти завдань до лабораторних робот
- •Лабораторна робота 1
- •Лабораторна робота 2
- •Лабораторна робота 3
- •Лабораторна робота 4
- •Лабораторна робота 5
- •Лабораторна робота 6
- •Лабораторна робота 7
- •Лабораторна робота 8
- •4 Довідкова інформація
- •5 Література
- •Запорізький національний технічний університет
- •Застосування конструкторів і деструкторів у класах
Лабораторна робота 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 і отримати їх дескриптори.