льців в готелі повинна здійснювати наступні операції:
реєстрація нового постояльця;
видалення даних про постояльця;
перегляд всіх зареєстрованих постояльців;
очистка даних про постояльців;
пошук постояльця по № паспорта. Результати пошуку - всі відомості про знайдений постояльця і ??№ готельного номера, в якому він проживає;
пошук постояльця по ПІБ. Результати пошуку - список знайдених постояльців із зазначенням № паспорта та ПІБ;
додавання нового готельного номера;
видалення відомостей про готельному номері;
перегляд всіх наявних готельних номерів;
очистка даних про готельних номерах;
пошук готельного номера по № готельного номера raquo ;. Результати пошуку - всі відомості про знайдений готельному номері, а також ПІБ та № паспортів постояльців, які вселені в цей готельний номер;
пошук готельного номера за фрагментами Обладнання raquo ;. Результати пошуку - список знайдених готельних номерів із зазначенням" № готельного номера, кількості місць, кількості кімнат, обладнання;
реєстрація вселення постояльця;
реєстрація виселення постояльця.
9 Склад даних про постояльців або готельних номерах, видаваних при перегляді всіх зареєстрованих постояльців або перегляді всіх наявних готельних номерів, визначається студентом самостійно, але повинен містити не менше двох полів.
10 Метод пошуку постояльця по ПІБ визначається студентом самостійно. Обраний метод необхідно порівняти з альтернативними методами.
Пошук готельного номера за фрагментами Обладнання повинен здійснюватися шляхом систематичного обходу АВЛ-дерева пошуку. Метод обходу визначається варіантом завдання. При пошуку готельного номера за фрагментами Обладнання можуть бути задані як повний перелік обладнання готельного номера, так і його частина (наприклад, вказаний тільки телевізор). Для виявлення заданого фрагмента в повному переліку обладнання готельного номера повинен застосовуватися алгоритм пошуку слова в тексті, зазначений у варіанті завдання.
Реєстрація вселення постояльця повинна здійснюватися тільки за наявності вільних місць в займаному готельному номері.
Введення
Метою курсового проектування є вивчення структур даних і алгоритмів їх обробки, а також отримання практичних навичок їх використання при розробці програм.
У наш час неможливо уявити життя без автоматизованих комп'ютерних систем. У зв'язку з цим було поставлено завдання з розробки програмного продукту для забезпечення потреб рядовий готелі у якому реалізується наступний функціонал:
введення, зберігання, обробку і виведення даних про постояльців;
введення, зберігання, обробку і виведення даних про готельних номерах;
введення, зберігання, обробку і виведення даних про вселення та виселення постояльців.
1. Алгоритми та структури даних
1.1 Хеш-таблиці. Відкрите Хешування
Хеш-таблиця - це звичайний масив з незвичайною адресацією, що задається хеш-функцією.
Наприклад, на hashTable рис. 1 - це масив з 8 елементів. Кожен елемент являє собою покажчик на лінійний список, який зберігає числа. Хеш-функція в цьому прикладі просто ділить ключ на 8 і використовує залишок як індекс в таблиці. Це дає нам числа від 0 до 7. Оскільки для адресації в hashTable нам і потрібні числа від 0 до 7, алгоритм гарантує допустимі значення індексів.
Хешування корисно, коли широкий діапазон можливих значень повинен бути збережений в малому обсязі пам'яті, і потрібен спосіб швидкого, практично довільного доступу. Хеш-таблиці часто застосовуються в базах даних, і, особливо, в мовних процесорах типу компіляторів і ассемблеров, де вони витончено обслуговують таблиці ідентифікаторів. У таких додатках, таблиця - найкраща структура даних.
Так як всякий доступ до таблиці повинен бути проведений через хеш-функцію, функція повинна задовольняти двом вимогам: Вона повинна бути швидкою, і вона повинна породжувати хороші ключі для розподілу елементів по таблиці. Остання вимога мінімізує колізії (випадки, коли два різних елемента мають однакове значення хеш-функції) і запобігає випадок, коли елементи даних з близькими значеннями потрапляють тільки в одну частину таблиці.
Рис. 1 : ...