- •Рейтингова система оцінювання знань та умінь з ооп 2012-2013 н.Р.
- •Вимоги до звіту з лабораторних робіт
- •Класи потоків Лабораторна робота 1
- •1.1 Теоретичні відомості
- •1.1.1. Методи класів потоків
- •1.1.2. Маніпулятори
- •1.1.3. Деякі методи класів файлових потоків
- •1.2 Приклад програми Умова задачі
- •Алгоритм задачі
- •Текст програми
- •Результати виконання програми
- •1.3 Варіанти завдань
- •1.4 Контрольні запитання
- •Інкапсуляція. Інтерфейси класів . Діаграми прецедентів і класів Лабораторна робота 2
- •2.1 Теоретичні відомості Етапи об’єктно-орієнтованого проектування та моделювання
- •Діаграма варіантів використання(use-case diagram)
- •Ідентифікація класів
- •Ідентифікація атрибутів
- •Ідентифікація операцій (методів)
- •Типові схеми uml діаграм
- •2.2 Програма роботи
- •2.3 Варіанти завдань
- •2.4 Приклад виконання роботи Задача
- •Об’єктно-орієнтоване проектування Зображення класів в uml
- •Ідентифікація атрибутів
- •Структура проекту
- •Інтерфейси та реалізації класів програми
- •2.5 Контрольні запитання
- •Конструктори та деструктори класів Діаграми прецедентів і класів Лабораторна робота 3
- •3.1 Теоретичні відомості
- •3.2 Програма роботи
- •3.3 Варіанти завдань
- •3.4 Приклад виконання роботи Задача
- •Реалізація конструкторів і деструкторів деяких класів
- •3.5 Контрольні запитання
- •Методи класів: аксесори, ітератори, утілити, предикатні функції . Діаграми класів, діяльності, послідовності Лабораторна робота № 4
- •4.1 Теоретичні відомості
- •4.2 Програма роботи
- •4.3 Варіанти завдань
- •4.4 Приклад виконання роботи Задача
- •Реалізація деяких методів-аксесорів, предикатних функцій, функцій-утілит, методів, які забезпечують функціональність об’єктів
- •Результати виконання роботи
- •4.5 Контрольні запитання
- •Константні та статичні члени класів. Вбудовані функції. Діаграми класів, послідовності Лабораторна робота № 5
- •5.1 Теоретичні відомості
- •5.2 Програма роботи
- •5.3 Варіанти завдань
- •5.4 Приклад виконання роботи Задача 5_1
- •Приклади деяких константних елементів даних і методів класів
- •Фрагмент результатів виконання роботи
- •Задача 5_2
- •Приклади деяких статичних елементів даних і методів класів
- •Фрагмент результатів виконання роботи
- •5.5 Контрольні запитання
- •Перевантаження операцій та функцій. Дружні функції Діаграми класів, станів і переходів Лабораторна робота 6
- •6.1 Теоретичні відомості
- •6.2 Програма роботи
- •6.3 Варіанти завдань
- •6.4 Приклад виконання роботи
- •6.5 Контрольні запитання
- •Просте успадкування класів. Поліморфізм. Віртуальні функції Діаграма класів, кооперацій. Лабораторна робота 7
- •7.1 Теоретичні відомості
- •7.2 Програма роботи
- •9.2. Приклад програми Умова задачі 9
- •Алгоритм задачі 9
- •Текст програми 9
- •Результати роботи програми 9
- •9.3. Варіанти завдань
- •9.4. Контрольні запитання
- •Методи внутрішнього сортування (сортування масивів) Лабораторна робота 10
- •Методи зовнішнього сортування (сортування файлів) Лабораторна робота 11
Вимоги до звіту з лабораторних робіт
Звіт з лабораторних робіт слід підготувати у вигляді гіпертекстового документа у форматі html або chm. Документ має містити меню, яке включає команди, що подані нижче. Слід реалізувати запуск програм на виконання з гіпертекстового документа.
Звіт та проекти лабораторних робіт та розрахунково-графічних робіт слід записати на CD/CDRW – диск. На диску має бути файл readme.tst, який містить відомості про автора звіту та проектів. На одному диску можна записати декілька звітів різних студентів, тоді в файлі readme.tst слід записати прізвища та імена папок усіх студентів – авторів робіт.
Звіт має включати такі розділи:
Постановка задачі (інформаційна сутність задачі, вхідні та вихідні дані).
Алгоритм розв’язання задачі у вербальній формі (сценарій роботи програми).
HIPO діаграма, яка зображує ієрархію викликів функцій та інформаційні потоки даних.
Специфікації функцій у вигляді таблиці з переліком прототипів функцій, семантики функцій та їх параметрів (дивись таблицю).
Прототип функції
Семантика
Параметри
Призначення (семантика) параметрів
Clock::tick()
Відбиття часу
Без параметрів
Person::CreateNewPerson( Floor &floor )
Створення нового пасажира
Floor &floor
Посилання на поверх
UML-діаграми (прецедентів (use-cse), класів, станів і переходів, послідовності, діяльності, кооперації)
Файлова структура проекту (скрін шот Solution explorer).
Код програми (посилання на папку з проектом, усіма файлами проекту, виконувальним файлом .ехе).
Запуск ехе-файла та повідомлення про причину неможливості запустити ехе-файл.
Висновки щодо недоопрацьованих можливостей програми та її подального удосконалення.
Класи потоків Лабораторна робота 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 >>, користувач може вводити та виводити дані власних типів.