
- •Огляд літератури
- •2.Формулювання задачі
- •Алгоритм розв’язання задачі
- •Програмні реалізації алгоритму
- •1.Загальна характеристика програми
- •2.Призначення програми
- •3.Вхідна інформація
- •4.Результуюча інформація
- •5.Таблиця ідентифікаторів прогрими
- •6.Структура програми
- •Інструкція користувачеві програми
- •Контрольні приклади та аналіз їх реалізації
- •Висновок
- •Список використаних джерел
- •Додаток (код програми)
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
КАФЕДРА АВТОМАТИЗОВАНІ СИСТЕМИ УПРАВЛІННЯ
Розрахункова робота №1 та №2
з дисципліни «Проблемно-орієнтоване програмування»
на тему
Комп’ютерний каталог домашньої бібліотеки
Виконав:
студент гр. КН-22
Олекса Володимир
Прийняв:
Доцент кафедри АСУ
Шпак З. Я.
Львів 2013
Зміст стор.
Вступ ………………………………………………………………………3
1. Огляд літератури ……………………………………………….………6
2. Формулювання задачі ………………………………………………….7
3. Алгоритм розв’язання задачі …………………………………...……..8
3.1. Загальний опис алгоритму ……………………………………8
3.2. Укрупнена блок-схема алгоритму ……………………………9
3.3 Блок-схеми підпрограм ………………………………..………10
4. Програмна реалізація алгоритму ……………………………………..16
4.1. Загальна характеристика та призначення програми..……….16
4.3. Вхідна та вихідна інформація ………………………………..16
4.4. Таблиця ідентифікаторів .……………………………………17
4.5. Структура програми та опис функцій ………………………18
5. Інструкція користувачеві програми …………………………………..19
6. Контрольні приклади та результати їх реалізації ……………………20
Висновки …………………………………………………………………..21
Список літератури ………………………………………………………...22
Додатки …………………………………………………………………….24
Додаток 1. Тексти програмних файлів ……………………………24
Додаток 2. Роздруки вхідних та відформатованих файлів контрольних прикладів ……………………………………………….28
Вступ
Бібліоте́ка або книгозбі́рня (грец. βιβλιον — книжка і θηκη — сховище, скриня) — культурно-освітній заклад, що здійснює збирання друкованих і рукописних матеріалів, проводить їх опрацювання і відображення у каталогах, організовує відповідне їх зберігання, збереження і обслуговування ними читачів.
Катало́г (рос. каталог, англ. catalogue, нім. Katalog m) — список, перелік книжок, карт, рукописів, картин тощо, складений у певному порядку, щоб полегшити їхній пошук.
Рядки. У мові програмування С не визначено спеціального типу для опрацювання рядків. Рядок символів розглядається як масив елементів типу char, який закінчується символом ‘\0’(нуль-символ), що є ознакою кінця рядка. Сталі типу рядок записуються у лапках. У сталих рядках нуль-символ записується автоматично.Підчас оголошення символьного масиву необхідно до фактичної довжини рядка додати одиницю для нульового символа (не у всіх компіляторах). Якщо масив символів оголошують й ініціалізують одночасно, то довжину можна не зазначати, компілятор визначить її. Оскільки рядки є масивами символів, то назва рядка вказівником на його початок (на його перший елемент). Для опрацювання масивів символів у мові С є стандартні функції, які описуються у модулі string.h.
Масиви. Масив – впорядкований скінчений набір даних одного типу, які зберігаються в послідовно розташованих комірках оперативної пам’яті і мають спільну назву. Назву масиву дає користувач.
Масив складається з елементів. Кожен елемент має індекс, за яким його можна знайти у масиві. Кількість Індексів визначає розмірність масиву. Розрізняють одно та багатовимірні масиви. Двовимірний масив – це таблиця яка складається з декількох рядків і стовпців. У математиці поняттю масив відповідає поняття вектора та матриці.
Розмір – це кількість елементів масиву. Розмір масиву треба задати заздалегідь, оскільки компілятор має зарезервувати для нього необхідний обсяг пам’яті. Розміром може бути лише стала величина.
Звернутись до елементів масиву можна двома способами: за допомогою імені масиву та використовуючи вказівники. Нумерація елементів масиву починається від нуля.
Проініціалізувати масив можна одним із способів:
Використовуючи принцип замовчування;
Безпосередньо підчас його оголошення;
Застосовуючи команду присвоювання;
Підчас введення даних з клавіатури.
За замовчанням усім елементам масиву надається значення 0.
Підчас компіляції програмного коду для статичного оголошення масивів надається пам'ять. Для ефективного використання пам'яті призначене динамічне оголошення масивів. Динамічною змінною можна використовувати операції, визначені для даних відповідного базового типу.
Якщо елемент масиву має не один а декілька індексів, то такі масиви називаються багатовимірними. Прикладами багатовимірних масивів можуть бути різноманітні табличні дані. Двовимірному масиву у математиці відповідає поняття матриці.
Кількість індексів визначає вимірність масиву. Усі двовимірні масиви можна опрацьовавути як одновимірні.
Елементи двовимірного масиву визначаються іменем масиву та двома індексами. Перший індекс означає номер рядка а другий номер стовпця. Двовимірні масиви компілятор розглядає як послідовність одновимірних, тому до елементів можна звертатись і через вказівники. В такому випадку це вказівника на вказівник одновимірного масиву.
Лінійні списки. Лінійний список - це скінченна послідовність однотипних елементів (вузлів). Кількість елементів у цій послідовності називається довжиною списку. Наприклад :
F=(1,2,3,4,5,6) - лінійний список, його довжина 6.
При роботі зі списками дуже часто доводиться виконувати такі операції :
• додавання елемента в початок списку;
• вилучення елемента з початку списку;
• додавання елемента в будь-яке місце списку;
• вилучення елемента з будь-якого місця списку;
• перевірку, чи порожній список;
• очистку списку;
• друк списку.
Основні методи зберігання лінійних списків поділяються на методи послідовного та зв'язаного зберігання.
Послідовне зберігання списків. Метод послідовного зберігання списків ґрунтується на використанні масиву елементів деякого типу та змінної, в якій зберігається поточна кількість елементів списку.
Двійкові файли. Двійковий файл представляє собою просто послідовність символів. Що саме і в якій послідовності зберігається в двійковому файлі - повинна знати програма.
Двійкові файли мають переваги, порівняно з текстовими при зберіганні числових даних. Операції читання і запису з такими файлами виконуються набагато швидше, ніж з текстовими, так як відсутня необхідність форматування (переведення в текстове представлення та навпаки). Двійкові файли зазвичай мають менший розмір, ніж аналогічні текстові файли. В двійкових файлах можна переміщуватися в будь-яку позицію і читати або записувати дані в довільній послідовності, в той час, як в текстових файлах практично завжди виконується послідовна обробка інформації.
Про те, як відкривати двійкові файли було згадано раніше. Запис і читання в двійкових файлах виконується відповідно функціями fwrite і fscanf.
size_t fwrite(const void *ptr, size_t size, size_t n, FILE*stream);
size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
В обидві функції повинен передаватися покажчик ptr на дані, які вводяться або виводяться. Параметр size задає розмір в байтах даних, які читаються або записуються.
Огляд літератури
Б. Керниган, Д. Ритчи - Язык Си.
Уэйт Митчел и др. Язык Си: руководство для начинающих.
Сергей Сабуров - Языки программирования C и C++.
Стефан Р. Дэвис - C++ Для чайников.
Учебник по программированию на языке Си - http://www.languagec.info/.
Ю. Громов - Программирование на языке C.
Методичні вказівки до розрахункової роботи з дисциплiни "Проблемно-орієнтовані мови програмування"
Програмування мовою С - З.Я. Шпак
2.Формулювання задачі
У даному завданні мені потрібно було створити комп’ютерний каталог домашньої бібліотеки. Передбачити можливість додавати книгу в бібліотеку , видалити її ,реалізувати пошук по бібліотеці. Створити можливість змінювати статус книги ,а також заносити данні у файл і зчитувати їх з файлу.
Алгоритм розв’язання задачі
Виводимо меню, де запропоновано 5 пунктів для роботи з програмою і відкриваємо файл для зчитування і редагування.
Зчитуємо номер пункту, який вибрав користувач.
Після натиснення “1” просимо ввести дані для запису в файл.
Після натиснення “2” просимо ввести дані для їх пошуку і видалення з файлу.
Після натиснення “3”виводимо вміст файлу на екран.
Після натиснення “4” просимо ввести дані для їх пошуку книги по певним параметрам.
Після натиснення “5” просимо ввести дані для їх пошуку і змінення статусу даних.
Після натиснення “0” завершуємо програму і перезаписуємо файл з даними.
Main
Print_file
Search
Search_d
Status
Програмні реалізації алгоритму
1.Загальна характеристика програми
Дана програма називається – «Комп’ютерна бібліотека», «Biblio.cpp» - файл в якому записано код програми (розмір – 8 061байт, кількість рядків – 298 ), «library» – бінарний файл, в якому зберігається перелік книг бібліотеки, з якого будуть зчитуватись і в який будуть заноситись дані. Дана програма написана мовою С.
2.Призначення програми
Дана програма призначенаа для зручної систематизації і впорядкування домашньої бібліотеки за допомогою комп’ютера.
3.Вхідна інформація
Після запуску програми на екран виводяться 5 пунктів меню:
Додати книгу в бiблiотеку.
Видалити книгу в бібліотеці
Показати всi книги в бібліотеці
Шукати книгу
Змiнити статус книги
Вихід
При вводі невірного номеру пункту меню нічого не відбувається.
Після натиснення ‘1’ нас просять ввести назву,автора і рік видання книги. Після введення даних,програма сповіщає вас про їх успішне збереження.
При натисненні ‘2’ потрібно ввести назву,автора і рік видання книги або щось одне з цих даних( якщо ми введемо, наприклад, 2005 ,то будуть видаленні все книги 2005 року, а якщо повністю данні про книгу – тоді тільки ця книга).
Програма виведе список знайдених книг і повідомить про успішне їх видалення.
При натисненні ‘3’ програма зчитає з файлу всі данні і виведе їх на екран.
При натисненні ‘4’ ми розпочнемо пошук по бібліотеці по файлу за заданими параметрами: назва або автор книги або рік видання.
При натисненні ‘5’ нами запропонують пошук книги для змінення її статусу
присутності в бібліотеці чи ні. Потрібно ввести данні про книгу і натиснути Enter.
Приклад введення даних
Введніть назву,автора і рік видання книги
Геодизичні прилади О.І.Мороз 2006