Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод указ к лабораторным работам ООП 3 семест...doc
Скачиваний:
5
Добавлен:
13.11.2019
Размер:
22.34 Mб
Скачать

Вимоги до звіту з лабораторних робіт

Звіт з лабораторних робіт слід підготувати у вигляді гіпертекстового документа у форматі html або chm. Документ має містити меню, яке включає команди, що подані нижче. Слід реалізувати запуск програм на виконання з гіпертекстового документа.

Звіт та проекти лабораторних робіт та розрахунково-графічних робіт слід записати на CD/CDRW – диск. На диску має бути файл readme.tst, який містить відомості про автора звіту та проектів. На одному диску можна записати декілька звітів різних студентів, тоді в файлі readme.tst слід записати прізвища та імена папок усіх студентів – авторів робіт.

Звіт має включати такі розділи:

  1. Постановка задачі (інформаційна сутність задачі, вхідні та вихідні дані).

  2. Алгоритм розв’язання задачі у вербальній формі (сценарій роботи програми).

  3. HIPO діаграма, яка зображує ієрархію викликів функцій та інформаційні потоки даних.

  4. Специфікації функцій у вигляді таблиці з переліком прототипів функцій, семантики функцій та їх параметрів (дивись таблицю).

    Прототип функції

    Семантика

    Параметри

    Призначення (семантика) параметрів

    Clock::tick()

    Відбиття часу

    Без параметрів

    Person::CreateNewPerson( Floor &floor )

    Створення нового пасажира

    Floor &floor

    Посилання на поверх

  5. UML-діаграми (прецедентів (use-cse), класів, станів і переходів, послідовності, діяльності, кооперації)

  6. Файлова структура проекту (скрін шот Solution explorer).

  7. Код програми (посилання на папку з проектом, усіма файлами проекту, виконувальним файлом .ехе).

  8. Запуск ехе-файла та повідомлення про причину неможливості запустити ехе-файл.

  9. Висновки щодо недоопрацьованих можливостей програми та її подального удосконалення.

Класи потоків Лабораторна робота 1

Мета роботи: ознайомитися з особливостями використання класів потоків введення та виведення, розробити програму обробки файлів.

1.1 Теоретичні відомості

1.1.1. Методи класів потоків

Для реалізації введення даних використовується стандартний клас istream, для виведення  клас ostream. Для файлового введення-виведення використовується клас fstream. Класи потоків утворюють таку ієрархію:

Для класу istream визначено об’єкт cin, для класу ostream  об’єкт cout. Об’єкт cerr визначає вихідний потік помилок.

Для виконання операцій запису та зчитування файлів використовуються перевантажені операції << для виведення, >> для введення різних типів даних.

Приклад:

char name[10]; int number; cout<<“HELLO”<<number; cin>>name>>number;

Класи потоків містять різні методи, за допомогою яких здійснюється форматування даних під час виведення, доступ до файлів під час їх відкриття та інші операції. Деякі методи класів потоків подано у табл.9.1.

Таблиця 1.1. Функції –елементи класу ios

Формат функції

Призначення функції

1.

2.

Стан потоку введення та виведення

int bad();

Повертається ненульове значення, якщо встановлено один з прапорів: badbit, hardfail

int good();

Повертається ненульове значення, якщо не встановлено біти помилок

void clear(int);

Біти обнулюються, якщо параметр дорівнює 0, інакше параметр визначається як стан помилок

int rdstate();

Повертається поточний стан потоку

int eof();

Повертається ненульове значення, якщо встановлено біт кінця файлу

int fail();

Повертається ненульове значення, якщо операція завершилася невдало під час перевірки бітів прапорів: badbit, hardfail, failbit

Управління прапорами форматування

long flags();

long flags(long);

Прапори форматування визначають формат потоку даних, які вводяться та виводяться. Прапори є бітовими полями змінної типу long, їх значення повертаються і встановлюються функціями згідно з параметрами

Продовження табл. 1.1

long setf(long) ;

Встановлюються прапори у відповідності до параметру

long unsetf(long);

Прапори формату ігноруються

long setf ( long _setbits, long _field);

Встановлюються прапори формату, присвоює значення бітів першого параметра бітам другого параметра

Функції, що форматують

char fill();

char fill(char);

Повертається поточний символ заповнення, якщо ширина поля менша за задану або встановлює новий символ заповнення. Якщо не вказано заповнювач, то використовується символ пробіл.

int precision(int); int precision();

Встановлюється точність (кількість значущих цифр) дійсних чисел або повертається її поточне значення. Якщо точність не вказано, то використовується значення шість.

int width();

int width(int);

При введенні встановлюють максимальне число символів, які читаються, при виведенні задають мінімальну ширину поля виведення. Якщо ширину не вказано, то приймається значення 0.

Прапори форматування

skipws

Ігноруються пробіли, що передують символам

left

Вирівнюються дані зліва під час виведення

right

Вирівнюються дані справа під час виведення

internal

Знак числа виводиться зліва, число вирівнюється справа

dec

Число у десятковій системі числення

oct

Число у восьмирічній системі числення

hex

Число у шістнадцятковій системі числення

showbase

Під час виведення додається індикатор основи системи числення

showpoint

Виводиться десяткова точка (floating output)

uppercase

Виводяться букви у верхньому регістрі

showpos

Виводиться знак "+" для додатних значень

scientific

Виводяться числа у форматі Х.ХХХХEХХ

fixed

Виводяться числа у форматі ХХХ.ХХ

unitbuf

Очищається буфер потоку після кожної операції розміщення даних у пам’яті

stdio

Очищаються потоки stdout, stderr після кожного розміщення даних у пам’яті

Прапори помилкових станів

goodbit

Немає помилок (no bit set: all is ok)

eofbit

Кінець прапорця

failbit

Помилка форматування

badbit

Поважна помилка

hardfail

Помилка, що не виправляється

Біти відкриття файлів

app

Доповнення даних. Дані записуються завжди в кінець файлу

ate

Перехід до кінця файлу під час його відкриття

in

Відкриття файлу для введення даних (default for ifstreams)

out

Відкриття файлу для виведення даних (default for ofstreams)

binary

Відкриття файлу в бінарному режимі

trunc

Вилучення даних, якщо файл існує

nocreate

Якщо файл не існує, не відкривати його

noreplace

Якщо файл існує, не можливо відкрити його для виведення, доки не встановлено значення ate чи app

Перевантаживши операції << або >> за допомогою операторних функцій operator << і operator >>, користувач може вводити та виводити дані власних типів.