Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/8974| Title: | Автоматизована система готелю: підсистема керування та аналізу розміщення клієнтів |
| Authors: | Чичужко, Марина Володимирівна Ломаний, Роман Анатолійович |
| Issue Date: | Jun-2022 |
| Abstract: | Під час виконання бакалаврської роботи були вирішені такі задачі: – розглянуті питання обґрунтування необхідності побудови автоматизованої системи з метою передачі його в робочу експлуатацію для адміністраторів готелю; – зроблений аналіз існуючих аналогів програмного забезпечення; – виконана постановка задачі на проектування web сайту; – з’ясовані основні вимоги до граяічного інтерфейсу; – обґрунтований вибір програмних і технічних засобів розробки проекту; – визначено питання щодо основних правил та вимог проектування автоматизованих систем; – зроблені висновки щодо основних етапів проектування та структурних рішень розробки автоматизованої системи; – розроблена та описана інформаційна структура системи. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/8974 |
| Appears in Collections: | 174 Автоматизація, комп'ютерно-інтегровані технології та робототехніка (Автоматизація та комп'ютерно-інтегровані системи та компоненти) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| Б_174_2022_Ломаний.pdf Restricted Access | 1.19 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОІЧНИЙ УНІВЕРСИТЕТ
Факультет інформаційних технологій і систем
Кафедра робототехніки та спеціалізованих комп’ютерних систем
Пояснювальна записка
до кваліфікаційної роботи
освітнього ступеня «бакалавр»
на тему:
АВТОМАТИЗОВАНА СИСТЕМА ГОТЕЛЮ: ПІДСИСТЕМА КЕРУВАННЯ ТА
АНАЛІЗУ РОЗМІЩЕННЯ КЛІЄНТІВ
Виконав:студент __4__курсу, групи АКІТС-2099
Спеціальність
151 «Автоматизація та комп'ютерно-інтегровані
технології»
(шифр і назва напряму підготовки)
Студент_________Ломаний Р.А.______________
( прізвище та ініціали)
Керівник _________Чичужко М.В.______________
( прізвище та ініціали)
Рецензент _________Пономар Л.Л.__________
(прізвище та ініціали)
Черкаси 2022 року
ЗМІСТ
ВСТУП .................................................................................................................. 6
1 ОБГРУНТУВАННЯ ПРОЦЕСУ РОЗРОБКИ АВТОМАТИЗОВАНОЇ
СИСТЕМИ ТА АНАЛІТИЧНИЙ ОГЛЯД ІСНУЮЧИХ АНАЛОГІВ .... 8
1.1 Обґрунтування розробки ...................................................................................................... 8
1.2 Огляд існуючих аналогів ..................................................................................................... 8
2 ПОСТАНОВКА ЗАДАЧІ. ОПИС ЗАСОБІВ РОЗРОБКИ .................. 15
2.1 Постановка задачі ............................................................................................................... 15
2.2 Вимоги до інтерфейсу програми ....................................................................................... 15
2.3 Опис програмних засобів розробки .................................................................................. 16
2.4 Вимоги до обчислювального середовища ........................................................................ 20
3 ПРОЕКТНІ І СТРУКТУРНІ РІШЕННЯ ............................................... 21
3.1 Етапи проектування автоматизованої системи готелю: підсистема керування та
розміщення клієнтів ....................................................................................................................... 21
3.2 Розробка системи ................................................................................................................ 22
3.3 Стуктурний Java-додаток ................................................................................................... 25
ВИСНОВКИ ...................................................................................................... 30
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ..................................................... 31
ДОДАТОК А ..................................................................................................... 33
ДОДАТОК Б ...................................................................................................... 34
ДОДАТОК В ...................................................................................................... 64
ДОДАТОК Г………………………………………………………………….66
ЧДТУ.222082.001 ПЗ
Змн. Лист № докум. Підпис Дата
Розроб. Ломаний Автоматизована система Літ. Лист Листів
Перевір. Чичужко готелю: підсистема керування У 2 70
Реценз.
та аналізу розміщення клієнтів
Н. Контр. Пояснювальна записка ЧДТУ, АКІТС-2099
Затверд. Лукашенко
СПИСОК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ
Java – об'єктно-орієнтована мова програмування, випущена
компанією SunMicrosystems у 1995 році.
СУБД – Система управління базами даних
SQL – Structured query language – мова структурованих
запитів
БД – база даних
Гб – гігабайт, кратна одиниця виміру кількості інформації,
що дорівнює 1024 мегабайтам
JSP – технологія, що дозволяє веб-розробникам динамічно
генерувати HTML, XML та інші веб-сторінки
ПЗ – програмне забезпечення
ПП – програмний продукт
ТЗ – технічне завдання
Лист
ЧДТУ. 222082.001 ПЗ
5
Змн. Лист № докум. Підпис Дата
ВСТУП
Темою кваліфікаційної роботи освітнього ступеня «бакалавр»
являється розробка проекту «Автоматизована інформаційно-аналітична
система готелю: підсистема керування та аналізу розміщення клієнтів».
На даний момент все більше галузей діяльності людини
використовують персональні комп’ютери і прикладне спеціалізоване
програмне забезпечення для вирішення різного виду задач. Така потреба
в автоматизації роботи виникає і в готельному господарстві, де щодня
працюють з різними типами задач, для задоволення клієнтів.
Актуальною стала потреба в створенні web - орієнтованої
інформаційної системи за допомогою сучасних технологій для
полегшення поточної роботи з працівниками та клієнтами а також із
застосуванням архітектури клієнт-сервер та використання додатку, який
допомагає як клієнтам так і співробітникам у повсякденній рутинній
роботі. Такий програмний продукт можливо використовувати в любому
типу готелів.
Автоматизована система – це поєднання керованого об’єкта й
автоматичних керуючих пристроїв, у якій частку функцій управління
бере на себе людина. Насамперед це організаційно-технічна комплексна
система, що складається із засобів автоматизації визначеного виду чи
декількох видів діяльності персоналу готелю, що здійснює цю діяльність.
Програмний продукт розроблений з пов'язаних між собою
jsp - сторінок. JSP–сторінка являє собою текстовий файл з розширенням
*.HTML, який вміщає текстову інформацію та спеціальні
команди – HTML-коди, що визначають в якому виді ця інформація буде
відтворюватися у вікні браузера.
Існують JSP - сторінки різних видів. Тип сторінки майже завжди
визначається його цілями і завданнями.
Лист
ЧДТУ. 222082.001 ПЗ
6
Змн. Лист № докум. Підпис Дата
Метою дипломної бакалаврської роботи є створення сучасної
автоматизованої системи, яка буде направлена на професійну практику
окремого спеціаліста готелю та адміністратора.
Даний програмний продукт буде надавати можливість
адміністратору отримати поточну інформацію у зручний для нього час, а
також надає можливість зареєструватися та забронювати номер або
декілька номерів в готелі. Користувач має можливість замовити додаткові
послуги, задати питання або подати пропозицію або скаргу
адміністратору з приводу готелю та номерів.
Процесс проектування та розробки автоматизованої системи
складається з наступних етапів:
– затвердження первинного ТЗ;
– визначення базової структури програми – розділів, головного
меню, навігації;
– розробка та створення дизайну проекту, макету та графічних
елементів;
– розробка програмного коду, основних модулів, створення,
оптимізація та підключення БД;
В пояснювальній записці даної бакалаврської роботи прийнято такі
особливі позначення:
– посилання на використовувані Інтернет-
ресурси – підкресленням;
– посилання на об’єкти – курсивом;
– тексти розроблених програми – шрифтом Courier New.
Лист
ЧДТУ. 222082.001 ПЗ
7
Змн. Лист № докум. Підпис Дата
1 ОБГРУНТУВАННЯ ПРОЦЕСУ РОЗРОБКИ
АВТОМАТИЗОВАНОЇ СИСТЕМИ ТА АНАЛІТИЧНИЙ ОГЛЯД
ІСНУЮЧИХ АНАЛОГІВ
1.1 Обґрунтування розробки
Завданням бакалаврської роботи є розробка сучасної
автоматизованої інформаційно-аналітичної системи готельного
господарства: підсистема керування та аналізу розтащування клієнтів.
Впровадження такого проекту дозволить швидко та надійно дати
можливість всім зацікавленим користувачам отримати інформацію про
готель, провести швидку реєстрацію та бронювання місць за клієнтами.
На сьогодні майже кожний сучасний готель має автоматизовану
систему керування та аналізу розтащування клієнтів. В умовах існування
сучасних інформаційних технологій – це абсолютно необхідний аспект,
що дозволяє розширити поле продуктивної діяльності та розширити базу
клієнтів.
Розроблений програмний продукт надає змогу пришвидшити
роботу працівників готелю, розміщення клієнтів, бронювання місць та їх
реєстрацію. Користувачі додатку матимуть змогу в будь-який час
ознайомитися з переліком послуг, ознайомитись із цікавими доступними
додатковими послугими, задавати разнообразні питання адміністраторам.
Пройшовши реєстрацію користувачу додатку надається можливість
перевірити правильність заказу, оплатити замовлені послуги та
завершити процес реєстрації.
1.2 Огляд існуючих аналогів
Аналогів програми бакалаврської роботи поширено в мережі
Інтернет та існує досить багато різновидностей. Кожен розробник прагне
бути відомим спеціалістом в своїй галузі програмного забезпечення, а
Лист
ЧДТУ. 222082.001 ПЗ
8
Змн. Лист № докум. Підпис Дата
розміщений сайт допомагає поширити інформацію про професійну
діяльність. На відміну від вказаних ресурсів даний проект є широко
спеціалізованим та достатньо зручним у використанні, а також наділений
спеціальними унікальними функціями.
Огляд існуючих аналогів проведено на таких сторінках в Інтернет:
– web-сайт Готелю «“Надія” - відчуй себе вдома!»;
– web-сайт Готелю «АПЕЛЬСИН»;
– web-cайт Готелю «Тернопіль».
1.2.1 Сайт Готелю «“Надія” - відчуй себе вдома!»
Сайт Готелю «“Надія” - відчуй себе вдома!» ромішенний в інтернет
за адресою http://www.nadia.if.ua/. На головній сторінці готелю (рисунок
1.1) розміщене меню бронювання номерів, приведено інформацію про
контактні дані готелю, його адреса, та розміщена інформація щодо послуг
які можливо отримати, відвідавши готель.
Рисунок 1.1 – Зовнішній вигляд головної сторінки сайту Готелю
“Надія”
Лист
ЧДТУ. 222082.001 ПЗ
9
Змн. Лист № докум. Підпис Дата
На головній сторінці сайту розміщено перехід на сторінку з даними
про готель, типи номерів готелю та види послуг. За допомогою головної
сторінки можна більш детальніше дізнатися про види номерів, їх
розташування та набір додаткових послуг. Також можна перейти до
розділу спеціальних пропозиції, та отримати економію коштів в процессі
бронювання номерів.
На сайт можлитво заказати такі послуги:
– можливість бронювання місць та реєстрацію в номерах он-
лайн;
– організація конференції;
– можливість отримати інші види послуг.
1.2.2 Сайт Готелю «Апельсин»
Сайт Готелю «Апельсин» розміщено і інтернеті за адресою
http://apelsin.ck.ua/site/. На головній сторінці сайту (рисунок 1.2)
приведено зовнішній вигляд готелю та реалізовано меню пошуку та
бронювання номерів готелю. Також головна сторінка містить інформацію
про контактні дані та адресу готелю для подальшої поселення.
На головній сторінці web-сайту структуровано та детально надано
інформація про перелік послуг, які надає готель. Наведено види номерів
готелю, які існують в даному господарстві.
Головне меню сайту складається із переходів на головну сторінку,
на сторінку з новинами готелю, на сторінку з меню ресторану, на сторінку
з галереєю та панорамами, на сторінку з 3D туром по території готелю, а
також головне меню містить контакти установи.
На сайті Готелю «Апельсин» можливо отримати наступну
інформацію та замовити послуги:
– інформація про готельне господарство, види номерів та їх
наповнення;
Лист
ЧДТУ. 222082.001 ПЗ
10
Змн. Лист № докум. Підпис Дата
– інформація про організацію конференцій;
– інформація про розміщення, меню та інтер’єр ресторану;
– контактні телефонні номера, гаряча лінія;
Рисунок 1.2 – Скріншот головної сторінки сайту Готелю
«Апельсин»
1.2.3 Сайт Готелю «Тернопіль»
Сайт Готелю «Тернопіль» розміщено в інтернеті за адресою:
http://www.hotelternopil.com/. На головній сторінці сайту (рисунок 1.3)
розташовано панель меню, з допомогою якої клієнти зможуть зручно
переходити на потрібні їм сторінки. Головне меню сайту складається з
допоміжноно меню, з використанням якого ви можете забронювати місця
та провести реєстрацію клієнтів, а також дізнатися інформацію про
готель.
На сайті Готелю «Тернопіль» можливо отримати наступну
інформацію та замовити послуги:
Лист
ЧДТУ. 222082.001 ПЗ
11
Змн. Лист № докум. Підпис Дата
– детальна інформація про умови проживання в готелі та перелік
послуг;
– інформація про номера та можливість бронювання місць в
готелі;
– інформацію про спеціальні пропозиції готелю та замовлення
додаткових послуг;
– контактна інформація.
Рисунок 1.3 – Скріншот головної сторінки сайту Готелю
«Тернопіль»
Оформлення сайту не є достатньо вдалим дизайнерським рішенням.
На головній сторінці не приведено панель для бронювання та реєстрації
в готелі та контактні номери телефонів та адреса готелю. Також на
розглянутому сайті відсутня інформація про перелік заброньованих
номерів, та їх зовнішній інтер’єрний вигляд.
1.2.4 Аналіз існуючих аналогів
Лист
ЧДТУ. 222082.001 ПЗ
12
Змн. Лист № докум. Підпис Дата
В результаті аналізу аналогічних за тематикою сайтів можна
визначити, що кожен власник готелю намагається максимально
привернути увагу відвідувачів до його готелю, надати інформацію про
перелік послуг, полегшити процесс реєстрації та бронювання місць для
клієнтів.
Аналоги роботи містять в собі додаткові інформаційні матеріали,
для залучення нових відвідувачів: додаткові послуги, опис
конференц – залів, галерей, меню ресторанів.
Сайт Готелю “Надія” - відчуй себе вдома!» містить різнобічну
інформацію, яка стосується як процесу бронювання і надання всіх видів
послуг. На сайті розміщено головне меню, яке має різноманітне,
контрастне забарвлення, також з заданим часовим проміжком
відбувається перелистування фотографій внутрішніх та зовнішніх
виглядів готелю. З головного меню можливо встановити контактні
номера та адреса готелю, також існує простий досуп до головного меню.
Сайт Готелю «Апельсин» має досить яскравий зовнішній вигляд. На
головній сторінці сайту розміщені фотознімки номерів готелю, відразу
доступна панель бронювання номерів, що досить зручно для користувача.
Меню бронювання реалізовано досить вдало. Сайт можна назвати досить
вдалим проектним рішенням, але текст виконано невеликим шрифтом,
який робить незручним весь контент Інтернет-ресурсу.
Сайт Готелю «Тернопіль» не містить достатньої інформації про
готель. Щоб переглянути потрібну клієнтам інформацію потрібно
переходити по іншим закладкам, і це є не вдалим проектуванням. Для
реалізації процесу бронювання клієнту потрібно здійснити значну
кількість зусиль. Це є не достатньо зручно та коректно.
На основі розглянутих аналогів можна зробити висновки які
проектні рішення потрібно застосувати в дипломній роботі, щоб
зацікавити майбутніх відвідувачів сайту.
Лист
ЧДТУ. 222082.001 ПЗ
13
Змн. Лист № докум. Підпис Дата
Висновок. Враховуючи інформацію, яка була отримана під час
огляду існуючих аналогів, можна виділити такі переваги, як:
– швидке бронювання номерів для клієнтів;
– основна інформація, що стосуються роботи готелю та надання
основних та додаткових послуг, які розраховані на нових та постійних
відвідувачів сайту готелю;
– доступна галерея зображень номерів кімнат та внутрішніх
інтерєрів готелю;
– можливість переглянути панорами готелюу 3D.
– обладнання конференц–залів;
– можливість онлайн бронювання;
Лист
ЧДТУ. 222082.001 ПЗ
14
Змн. Лист № докум. Підпис Дата
2 ПОСТАНОВКА ЗАДАЧІ. ОПИС ЗАСОБІВ РОЗРОБКИ
2.1 Постановка задачі
Головна задача розробки полягає в створенні сучасної
автоматизованої інформаційно-аналітичної системи готелю: підсистеми
керування роботою та аналізу розміщення клієнтів готелю, яка надає
можливість легко реалізувати процесс практичного бронювання та
реєстрації клієнтів. Також існує необхідність в швидкому користуванні
пропонованими послугами, та можливість забезпечити інформацією
користувача.
Розроблений програмний продукт повинен надавати змогу
адміністратору реалізовувати процесс бронювання клієнтів за дуже
швидкий час, без збоїв у програмі. Повинно бути передбачено всі
можливі випадки бронювання номерів, не залежно від часу та дати
поселення чи виселення клієнтів готелю. Розроблений програмний
продукт повинен підтримувати створення графіків щодо популярності
номерів готелю. Програма повинна цілодобово працювати без збоїв. Для
того, щоб привернути увагу нових відвідувачів було створено розділ з
бонусними картками. Тобто чим частіше клієнт готелю використовував
додаткові послуги, тим більше у нього могла бути знижка на замовлення
номерів. Розроблена програма надасть відвідувачам можливість в любий
час отримати повну інформацію щодо їхнього поселення, номер готелю,
та бонус карти.
2.2 Вимоги до інтерфейсу програми
Інтерфейс автоматизованої інформаційно-аналітичної системи
готелю має бути розроблений українською мовою. Важливим етапом
розробки сайту є визначення складових його дизайну. Основним
завданням, яке необхідно вирішувати при розробці дизайну
сайту – зручність адміністратора реалізувати поставленні перед ним цілі.
Лист
ЧДТУ. 222082.001 ПЗ
15
Змн. Лист № докум. Підпис Дата
На головній сторінці реалізовано процесс бронювання, так як бронювання
виконується найчастіше, а потім реєстрація клієнтів.
Зовнішній вигляд повинен бути зручним та легким в використанні.
2.3 Опис програмних засобів розробки
Засобами програмної реалізації проекту бакалаврської роботи
вибрано Hibernate, Java, MySQL.
2.3.1 Hibernate
Hibernate – засіб відображення між реляційними структурами та
об’єктами для платформи Java. Hibernate є вільно
розповсюдженим програмним забезпеченням, яке поширюється на
умовах GNU Lesser General Public License. Hibernate предоставляє легкий
для використання каркас (фреймворк) для зв’язку між об'єктно-
орієнтованою моделлю даних і традиційною реляційною базою даних.
Метою Hibernate є звільнення розробника від значних рутинних
типових завдань із створенням взаємодії з базою даних. Розробник може
застосовувати Hibernate як при розробці з нуля, так і для вже існуючої
розробки бази даних.
Hibernate реалізує зв'язок класів з таблицями бази даних (і типів
даних мови програмування із типами даних SQL), і містить засоби
автоматичної побудови SQL запитів й зчитування/запису даних, і може
значно скоротити час розробки, який типово витрачається на ручне
написання типового SQL і JDBC коду. Hibernate генерує SQL виклики і
звільняє процесс розробки від ручної обробки отримуємого набору даних,
конвертації об'єктів і забезпечення повної сумісності із різними базами
даних.
2.3.2 Мова програмування Java
Java — об'єктно-орієнтована мова програмування, розроблена
компанією Sun Microsystems у 1995 році як основний компонент
Лист
ЧДТУ. 222082.001 ПЗ
16
Змн. Лист № докум. Підпис Дата
платформи програмування Java. У офіційній реалізації програми Java
проходить компіляція у байткод, який при виконанні інтерпретується
віртуальною машиною для конкретної платформи.
Програма Java вплинула на розвиток J++, яка поширювалась
компанією Microsoft. Роботу над J++ було призупинено через судовий
позов колрпорації Sun Microsystems, оскільки ця мова програмування
була частковою модифікацією Java. Пізніше в новій програмній
платформі Microsoft .NET випустило J#, щоб полегшити міграцію
програмістів J++ або Java на нову програмну платформу. З часом більш
нова мова програмування С#, стала базовою мовою платформи, взявши
багато чого з Java. J# востаннє включався до складу версії Microsoft Visual
Studio 2005. Мова сценаріїв JavaScript має схожість із Java і синтаксис, але
не так пов'язана із Java.
В якості мови програмування було обрано Java, у цієї мови є багато
суттєвих переваг перед іншими мовами програмування, що дозволяє
реалізувати з її допомогою практично будь-які завдання.
Мова Java нічим не залежить від платформи. Одна з
основоположних переваг мови Java - незалежність її від платформи, на
якій розробляються програми: один і той же код працює під управлінням
операційних систем Windows, Solaris, Linux, Machintosh та інші.
Це дійсно вигідно, коли програми завантажуються через Інтернет
для подальшого використання під управлінням любих операційних
систем.
Мова Java дуже проста для вивчення. При розробці Java було
приділено велику увагу зрозумілості мови, тому програми на Java, в
порівнянні з аналогічними програмами на інших мовах, простіше
складати, компілювати, налагоджувати і вивчати.Це дозволяє створювати
прості модульні програми, вихідний код яких можливо використовувати
багато разів.
Лист
ЧДТУ. 222082.001 ПЗ
17
Змн. Лист № докум. Підпис Дата
2.3.3 СУБД MySQL
Система СУБД MySQL являє собою достатньо невелику та
швидкодійну реляційну СУБД. MySQL – надійна СУБД на базі SQL,
розроблена і підтримувана фірмою Т.с.Х DataKonsultAB (Стокгольм,
Швеція). Починаючи з 1995 року, MySQL стала однієї з найвідоміших
СУБД у світі, що обумовлено її швидкістю, надійністю і достатньо
гнучкою ліцензійною політикою.
Мова SQL – найпоширеніша мова програмування для роботи з
базами даних і закладена в основу роботи практично всіх існуючих СУБД.
Завдяки набору характеристик і великому стандартному набору
інтерфейсних функцій, досить простих у використанні, MySQL стала
самим популярним програмним засобом для роботи з базами даних у РНР.
База даних MySQL – це реляційна база даних.
Реляційна база даних – є результатом сучасного розвитку
теоретичної частини дискретної математики, а саме теорії відносності та
булевої алгебри. Основні поняття реляційної моделі набору даних – це
таблиці та база даних. Зазвичай таблиць у базі даних роміщено багато і
обмежуючим фактором стосовно їхньої кількості є лише об’єм
встановленої на конкретному комп’ютері пам’яті (у тому числі
оперативної та фізичної). У багатьох випадках декілька таблиць
застосовується для подання інформації про один і той же описуємий
об’єкт. У подальшому для складання цілісної інформації про цей об’єкт
відбувається індексування кожної з таблиць по певним полям (які в
такому випадку визначаються ключовими полями або просто ключами)
та подальше зв’язування частини таблиць між собою. Зазвичай
індексування реалізується із наступним записом до конкретного
індексного файлу, який створено з одного чи декількох полів та
впорядкований за ними конкретним чином. Це реалізовано для
підвищення швидкодії роботи з проіндексованими таблицями, яка
Лист
ЧДТУ. 222082.001 ПЗ
18
Змн. Лист № докум. Підпис Дата
набагато швидша, ніж для випадку звичайних таблиць, і для реалізації
зв’язування двох таблиць між собою. Процес видалення зайвої інформації
з бази даних називається нормалізацією, цей процесс полегшує роботу
даної програми а також збільшується продуктивність.
Система СУБД MySQL – це компактно реалізований багато
поточний сервер баз даних. Тому MySQL є ідеальним рішенням для
розробки малих та середніх додатків. Вихідний код сервера
компілюються на майже всіх платформах. Найбільш широко можливості
сервера проявляються на Unix-серверах, де є підтримка реалізації багато
поточності, що дає суттєвий приріст продуктивності. MySQL-сервер є
повністю безкоштовним для некомерційного використання. Основні
переваги та можливості MySQL:
– підтримка необмеженої кількості активних користувачів, що
одночасно працюють з базами даних;
– кількість рядків у таблицях може складати 50 млн.;
– швидке виконання всіх команд. Можливо, MySQL – найшвидший
існуючий сервер;
– проста та достатньо ефективна система безпеки. MySQL реально
дуже швидкий сервер, але для досягнення цього розробникам довелося
пожертвувати частиною вимог до реляційних СУБД.
У MySQL відсутні наступні компоненти:
– підтримка роботи вкладених запитів;
– підтримка використання зовнішніх ключів;
– підтримка застосування тригерів та частини збережених
процедур.
Також порівняно вагомим аргументом при виборі бази даних, що не
залишило сумнівів про вірність вибору користувачів зробив той факт, що
сервер реляційних баз даних MySQL є сучасним стандартним сервером
більшості хост серверів, що надає можливість безперешкодного
Лист
ЧДТУ. 222082.001 ПЗ
19
Змн. Лист № докум. Підпис Дата
встановлення розробленого сайту на будь-який сервер. Якщо сайт
повинен реалізувати довантаження різних видів скриптів на різні
сторінки одночасно (динамічний сайт), тоді лише розмітки HTML і
редактора HTML коду буде недостатньо. Для реалізації динамічного
сайту на комп'ютері, необхідно завантажити та налагодити безкоштовний
локальний сервер Xxamp, який працює на комп'ютері без доступу до
Інтернету. І тільки після встановлення цього програмного забезпечення,
можна приступити до вивчення таких мов програмування, як PHP і
MySQL.
2.4 Вимоги до обчислювального середовища
Для поставленої задачі висуваються наступні вимоги до технічних
характеристик комп'ютера з мінімальною продуктивністю, на якому
розроблена система буде успішно робити:
– процесор Intel Pentium 1,6 Ггц і вище;
– як мінімум 1 Гб оперативної пам'яті;
– 2 Гб вільного місця на жорсткому диску;
– монітор і графічна карта повинні бути оснащені матрицею IPS або
E-IPS та підтримувати розподільчу здатністю 1024768 (оптимальна
розподільча здатність 19201080);
Ці вимоги висунуті, виходячи з можливостей багатозадачної
операційної системи Windows ХР/Vista/7/10 та вищих версій, які самі по
собі достатньо вимогливі до апаратного забезпечення комп'ютера. Проте,
чим більша продуктивність комп’ютера, тим швидше будуть загружатися
web-сторінки.
Висновок. В розділі наведено основні етапи проектування
автоматизованої програмної системи готелю, описані основні вимоги до
інтерфейсу, програмні засоби розробки та наведено мінімальні технічні
вимоги для роботи над проектом бакалаврської роботи.
Лист
ЧДТУ. 222082.001 ПЗ
20
Змн. Лист № докум. Підпис Дата
3 ПРОЕКТНІ І СТРУКТУРНІ РІШЕННЯ
3.1 Етапи проектування автоматизованої системи готелю:
підсистема керування та розміщення клієнтів
Проектування компонентів додатку – один з процесів, якому
приділяють достатньо мало уваги. Варто відзначити, що процес
проектування майбутнього додатку, це процедура економії фінансів і
часу. Чим більш докладно і задовільно сформульовані задачі, чим менше
нерозкритих питань, тим точнішим будуть витрати і тим менше часу піде
на реалізацію проекту і на просування продукту в подальшу її реалізацію.
Проектування додатку на початковому етапі дозволяє поділити роботу і
побачити цикл життя конкретного проекту в довгостроковій перспективі.
Спроектувавши заздалегідь поточний розвиток масштабування ресурсу,
можливо здійснювати його побудову з меншими втратами і без переробки
базових елементів, що призводить до суттєвої економії ресурсів як для
розробника, так частково і для замовника.
Проектування та розробка автоматизованої системи поділяється на
наступні етапи:
– затвердження ТЗ на розробку проекту;
– визначення та затвердження базової структури додатку;
– розробка дизайну – складових графічних елементів, макету
додатку, графічних стилів, елементів навігації;
– розробка програмного коду, модулів бази даних і інших
елементів, необхідних для підтримки подальшої роботи проекту;
Пропонуються наступні навігаційні структури додатку:
– лінійна структура (сторінки документа слідують сурово одна за
іншою, є можливість повернення назад на один рівень);
– нелінійна структура (існує можливість переходу між
сторінками незалежно від ієрархії);
Лист
ЧДТУ. 222082.001 ПЗ
21
Змн. Лист № докум. Підпис Дата
– ієрархічна структура (існує головна сторінка, можливість
переходів по дереву посилань, відокремлюються основні розділи);
– комбінована структура (створена на базі ієрархічної та присутні
елементи лінійної).
3.2 Розробка системи
При проектуванні затверджується загальний вид основної
структури програми. Вона реалізується через групу, яка називається
процес створення проекту, прототипу, прообразу розроблюємого об'єкта,
стану та способів його виробництва. У проектуванні застосовують
системний підхід, який полягає у визначенні структури системи, типу
зав’язків, визначені атрибутів, дослідженні впливів зовнішнього
середовища на досягнення цілей програми з урахуванням компенсації
впливу змін в оточенні.
В бакалаврській роботі використано модель MVC ] (Model-view-
controller) – архітектурний шаблон, який застосовується під час
проектування та розробки програмного забезпечення і добре вписується
в розподілену систему.
Шаблон MVC розділяє систему на три частини: модель даних,
вигляд даних та керування. Приміняється для відокремлення даних
(модель) від інтерфейсу користувача (вигляду) так, щоб зміни інтерфейсу
користувача незначно впливали на роботу з даними, а зміни в моделі
даних могли проходити без змін інтерфейсу користувача. Таким чином
будуємо схему (Рисунок 3.1). Суцільними лініями вказано прямі зв'язки
(виклики методів, присвоєння значень полів), переривчастими лініями –
непрямі зв'язки (повідомлення через події).
Лист
ЧДТУ. 222082.001 ПЗ
22
Змн. Лист № докум. Підпис Дата
Рисунок 3.1 – Діаграма MVC (Model-View-Controller)
Архітектурний шаблон Модель-Вид-Контролер (MVC) розділяє
програму на три частини. У тріаді до обов'язків компонентів Модель
(Model) входить зберігання даних і забезпечення роботи інтерфейсу до
них. Вигляд (View) відповідальний за представлення цих даних
користувачу. Контролер (Controller) керує всіма компонентами, отримує
сигнали у вигляді реакції на дії користувача, і повідомляє про зміни
компоненту Модель. Така внутрішня структура в цілому поділяє систему
на достатньо самостійні частини і розподіляє відповідальність між
різними компонентами.
MVC поділяє цю частину системи на три окремі частини: введення
даних, компонент оброблення даних і виведення інформації. Модель, як
вже було відмічено, інкапсулює ядро даних і частковий функціонал з їх
Лист
ЧДТУ. 222082.001 ПЗ
23
Змн. Лист № докум. Підпис Дата
обробки. Також компонент Модель не залежить від дії процесів введення
або виведення даних. Компонент виводу Вигляд може мати декілька
взаємопов'язаних частин, наприклад, різні таблиці і поля форм, в яких
відображається інформація. У функції Контролера входить моніторинг за
подіями, що виникають в результаті роботи користувача (зміна геометрії
курсора миші, натиснення кнопки або введення даних в текстове поле).
Клієнт-сервер – обчислювальна або мережева архітектура, в якій
задача або мережеве навантаження розділено між постачальниками
послуг (сервісів), окремими серверами, і замовниками послуг, окремими
клієнтами. Нерідко клієнти і сервери взаємодіють через комп'ютерну
мережу і можуть бути як окремими фізичними пристроями, так і різним
програмним забезпеченням.
Для забезпечення зв’язку між додатками та передачі даних між
ними використаєм клієнт-серверну архітектуру (Рисунок 3.2).
Рисунок 3.2 – Клієнт-серверна модель
Лист
ЧДТУ. 222082.001 ПЗ
24
Змн. Лист № докум. Підпис Дата
Побудову архітектури системи здійснюється шляхом визначення
складових системи, її вхідних і вихідних даних, декомпозиції системи на
окремі підсистеми, компоненти, модулі та розробки її загальної
структури.
Процес розроблення, що виконується після етапу аналізу і
формування вимог. Задача такого проектування — перетворення вимог
до системи у вимоги до ПЗ і побудова на їхній основі архітектури
системи. Проектування системи реалізується на основі об'єкто-
орієнтованого моделювання методом UML, який дозволяє враховувати
аспекти, властиві діючим акторам системи.
3.3 Стуктурний Java-додаток
Програма запускається у своєму власному середовищі. Вона
ізольована від інших працюючих додатків,тому інші додатки не можуть
нашкодити запущеному. При запуску програми створюється статичне
представлення структури моделі. Статичні елементи, такі як: пакети, класи,
їх зміст генерують дане середовище.
Відображаємо пакети, які містять у собі класи(Рисунок 3.3,3.7, Г.4).
Вони згруповані за типом застосування, в саме:
a) controller – призначений для управління усіма вхідними запитами і
для створення моделі (Рисунок 3.4);
b) dao – динамічне управління транзакціями (Рисунок 3.5);
c) entity – встановлюється відповідність з таблицями у базі даних
(Рисунок .3.6);
Лист
ЧДТУ. 222082.001 ПЗ
25
Змн. Лист № докум. Підпис Дата
Рисунок 3.3– Діаграма пакетів
Рисунок 3.4– Діаграма класів пакету controller
Рисунок 3.5 – Діаграма класів пакету dao
Рисунок 3.6 – Діаграма класів пакету entity
Лист
ЧДТУ. 222082.001 ПЗ
26
Змн. Лист № докум. Підпис Дата
Рисунок 3.7 – Принцип роботи Model, View, Conrtoler
Структура системи яка зображена (Рисунок 3.8),складається з:
1. src – вихідний код на Java;
– css – каскадні таблиці стилів, використовується для зображення
сторінок, написаних на мові розмітки;
– js – написання сценаріїв для веб-сторінок, застосовується для
автоматизації обробки і маніпуляції даними;
– manifest.mf – файл, який описує додаток, а також утримує в собі
дані для забезпечення нормальної його роботи;
– jsp – технологія, що дозволяє динамічно генерувати HTML та
XML
2. Web-INF – файли стилів, javascript, jsp та файли конфігурації;
Лист
ЧДТУ. 222082.001 ПЗ
27
Змн. Лист № докум. Підпис Дата
Лист
ЧДТУ. 222082.001 ПЗ
28
Змн. Лист № докум. Підпис Дата
Рисунок 3.8 – Структура web-додатку
Лист
ЧДТУ. 222082.001 ПЗ
29
Змн. Лист № докум. Підпис Дата
ВИСНОВКИ
В кваліфікаційній роботі освітнього ступеня «бакалавр»
розроблена сучасна автоматизована інформаційно-аналітична система
готелю: модулі керування та аналізу розміщення клієнтів.
Під час виконання бакалаврської роботи були вирішені такі задачі:
– розглянуті питання обґрунтування необхідності побудови
автоматизованої системи з метою передачі його в робочу експлуатацію
для адміністраторів готелю;
– зроблений аналіз існуючих аналогів програмного забезпечення;
– виконана постановка задачі на проектування web-сайту;
– з’ясовані основні вимоги до граяічного інтерфейсу;
– обґрунтований вибір програмних і технічних засобів розробки
проекту;
– визначено питання щодо основних правил та вимог проектування
автоматизованих систем;
– зроблені висновки щодо основних етапів проектування та
структурних рішень розробки автоматизованої системи;
– розроблена та описана інформаційна структура системи.
Використання розробленої в бакалаврській роботі автоматизованої
системи дозволить власнику розробленого програмного продукту значно
підвищити продуктивність його професійної діяльності, прорекламувати
свою діяльність в мережі Інтернет, залучити більше клієнтів та підвищити
продуктивність роботи програмістів.
Мета бакалаврської роботи досягнута і всі вимоги технічного
завдання виконані до неї в повному обсязі.
Лист
ЧДТУ. 222082.001 ПЗ
30
Змн. Лист № докум. Підпис Дата
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1 Давидова О. Ю. Інноваційні технології в готельно-ресторанному
бізнесі: навч. посібник [Текст] / О. Ю. Давидова. – Харків : ХНУМГ
ім. О. М. Бекетова, 2021. – 264 с.
2 Нечаєва І. О. Інформаційні системи та технології в готельній індустрії :
навч. посібник [Текст] / І. О. Нечаєва. – Київ : КНТЕУ, 2019. – 312 с.
3 Мельниченко С. В. Автоматизація управління готельним
підприємством [Текст] / С. В. Мельниченко, М. В. Ведмідь // Вісник
КНТЕУ. – 2020. – № 2. – С. 82-95.
4 Ткаченко Т. І. Інтелектуальні системи аналізу даних у готельному
бізнесі [Текст] / Т. І. Ткаченко, С. С. Романов // Журнал стратегічних
економічних досліджень. – 2022. – № 3(8). – С. 44-51.
5 Байлик С. І. Організація готельного господарства : підручник [Текст] /
С. І. Байлик. – Харків : ХНУМГ, 2018. – 330 с.
6 Buhalis, D. "Information Technology in Hospitality: Managing the Future"
[Text] / D. Buhalis, R. Law // International Journal of Contemporary
Hospitality Management. – 2021. – Vol. 33, No. 11. – P. 3912-3935.
7 Sigala, M. "Artificial Intelligence in the Hospitality Industry: A Review of
Current Applications and Future Trends" [Text] / M. Sigala // Journal of
Hospitality and Tourism Management. – 2020. – Vol. 43. – P. 31-44.
8 Mainardes, E. W. "The Effectiveness of Property Management Systems
(PMS) in Small and Medium-sized Hotels" [Text] / E. W. Mainardes, S.
C. Lourenço // Journal of Hospitality and Tourism Technology. – 2019. –
Vol. 10, No. 4. – P. 625-641.
9 Ivanov, S. "Hotel Revenue Management: From Theory to Practice" [Text] /
S. Ivanov // Varna : Zangador. – 2022. – 350 p.
10 O'Connor, P. "Hospitality Information Technology: Learning How to Use
It" [Text] / P. O'Connor, G. Piccoli // Kendall Hunt Publishing. – 2021. –
412 p.
Лист
ЧДТУ. 222082.001 ПЗ
31
Змн. Лист № докум. Підпис Дата
11 Xiang, Z. "Big Data Analytics in Hospitality and Tourism" [Text] / Z.
Xiang, D. R. Fesenmaier // Springer. – 2018. – 320 p.
12 Albahari B. A ComparativeOverviewof C #. [Текст] / B. Albahari, 2010 —
355 с.
13 Banker K. MongoDBinAction (1st ed.). [Текст] / K. Banker, 2011 —
375 с.
14 Жидецький В. Охорона праці користувачів комп’ютерів. [Текст] / В.
Жидецький . — К. Львів: «Афіша», 2000.
15 Kristina D. MongoDB: TheDefinitiveGuide. [Текст] / O'ReillyMedia - D.
Kristina, 2010 — 216 с.
16 Жидецький В. Основи охорони праці. [Текст] / В. Жидецький. — . —
К. Львів : УАД, 2010 — 336 с.
17 ДСанПіН 3.3.2-007-98 «Державні санітарні правила і норми роботи з
візуальними дисплейними терміналами електронно-обчислювальних
машин».
18 НПАОП 0.00 1.28 10 «Правила охорони праці під час експлуатації
електронно-обчислювальних машин».
Лист
ЧДТУ. 222082.001 ПЗ
32
Змн. Лист № докум. Підпис Дата
ДОДАТОК А
Автоматизована інформаційно-аналітична система готелю:
підсистема керування та аналізу розміщення клієнтів. Специфікація
Позначення Найменування Примітка
Документи
UA.ЧДТУ. 22000-01 12-01 ДОДАТОК Б Лістинг
програми
UA.ЧДТУ. 22000-01 34-01 ДОДАТОК В Інструкція
користувачеві
UA.ЧДТУ. 22000-01 90-01 ДОДАТОК Г Графічні
матеріали
Лист
ЧДТУ. 222082.001 ПЗ
33
Змн. Лист № докум. Підпис Дата
ДОДАТОК Б
Автоматизована інформаційно-аналітична система готелю:
підсистема керування та аналізу розміщення клієнтів. Лістинг
програми
1 Компоненти web-додатка
1.1 Conroler
package org.newhotel.controller;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import org.newhotel.dao.SpringProjectDAO;
import org.newhotel.entity.Orders;
import org.newhotel.entity.Rooms;
import org.newhotel.entity.TypeRoom;
import
org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import
org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.xml.crypto.Data;
@Controller
public class FirstController {
final String selectedRoomNamePrefix = "roomId";
@Autowired
SpringProjectDAO dao;
@RequestMapping("/start.do")
public ModelAndView start(HttpServletRequest request) {
ModelAndView mav = new ModelAndView("booking");
List<TypeRoom> roomType = dao.getAllRooms();
request.getSession().setAttribute("typeRoom",
roomType);
return mav;
Лист
ЧДТУ. 222082.001 ПЗ
34
Змн. Лист № докум. Підпис Дата
}
@RequestMapping(value = "/booking.do", method =
RequestMethod.POST)
public ModelAndView registrationOrder(@RequestParam
String surname, @RequestParam String name,
@RequestParam
String dataArrival,
@RequestParam
String dataDeparture, HttpServletRequest request) {
Enumeration<String> names =
request.getParameterNames();
List<Integer> orderedRoomIds = new
ArrayList<Integer>();
while (names.hasMoreElements()) {
String paramName = names.nextElement();
if
(paramName.startsWith(selectedRoomNamePrefix))
orderedRoomIds.add(Integer.parseInt(paramName.substring(sele
ctedRoomNamePrefix.length())));
}
ModelAndView mav = new ModelAndView("booking");
Date dateArrivalOrders = null;
Date dateDepartureOrders = null;
Date dateOrderOrders = null;
try {
dateArrivalOrders = new SimpleDateFormat("yyyy-
MM-dd").parse(dataArrival);
dateDepartureOrders = new
SimpleDateFormat("yyyy-MM-dd").parse(dataDeparture);
dateOrderOrders = new Date();
} catch (ParseException e) {
e.printStackTrace();
}
for (Integer id : orderedRoomIds) {
Orders order = new Orders();
order.setSurname(surname);
order.setName(name);
order.setMiddlename(null);
order.setDateArrival(dateArrivalOrders);
order.setDateDeparture(dateDepartureOrders);
Лист
ЧДТУ. 222082.001 ПЗ
35
Змн. Лист № докум. Підпис Дата
order.setDateOrder(dateOrderOrders);
order.setCustomer(null);
order.setRoom(dao.readRoom(id));
dao.storeOrder(order);
}
return mav;
}
@RequestMapping("/roomsForType.do")
public ModelAndView roomsForType(String startDate,
String endDate, int typeRoomId) throws ParseException {
ModelAndView mav = new ModelAndView("roomsForType");
Date d = new SimpleDateFormat("yyyy-MM-
dd").parse(startDate);
Date d1 = new SimpleDateFormat("yyyy-MM-
dd").parse(endDate);
List<Orders> rooms = dao.getFreeOrders(d, d1,
typeRoomId);
mav.addObject("rooms", rooms);
return mav;
}
@RequestMapping(value = "/searchNewOrder.do", method =
RequestMethod.GET)
public String find() {
return "searchNewOrder";
}
@RequestMapping(value = "/searchNewOrder.do", method =
RequestMethod.POST)
public ModelAndView searchNewOrder(String nameSecond,
String nameFirst) {
ModelAndView mav = new
ModelAndView("searchNewOrder");
List<Orders> orderses = dao.readOrders(nameSecond,
nameFirst);
mav.addObject("orderses", orderses);
return mav;
}
Лист
ЧДТУ. 222082.001 ПЗ
36
Змн. Лист № докум. Підпис Дата
@RequestMapping(value = "/registration.do", method =
RequestMethod.GET)
public String reg() {
return "registration";
}
@RequestMapping(value = "/registration.do", method =
RequestMethod.POST)
public ModelAndView registrations(String surname, String
name, String middlename, @RequestParam int number_passport,
String country, String city) {
ModelAndView mav = new ModelAndView("registration");
List<Orders> orderses = dao.registrations(surname,
name, middlename, number_passport, country, city);
mav.addObject("orderses", orderses);
return mav;
}
}
1.2 Dao
package org.newhotel.dao;
import java.util.Date;
import java.util.List;
import org.newhotel.entity.Customers;
import org.newhotel.entity.Orders;
import org.newhotel.entity.Rooms;
import org.newhotel.entity.ServiceType;
import org.newhotel.entity.TypeRoom;
public interface SpringProjectDAO {
public void storeOrder(Orders saveOrders);
public Rooms readRoom(int id);
public List<TypeRoom> getAllRooms();
public List<Orders> readOrders(String nameSecond, String
nameFirst);
public List<Orders> getFreeOrders(Date startDate, Date
endDate, int roomType);
Лист
ЧДТУ. 222082.001 ПЗ
37
Змн. Лист № докум. Підпис Дата
public List<Orders> registrations(String surname, String
name, String middlename, int number_passport, String
country, String city);
}
package org.newhotel.dao;
import java.util.List;
import org.hibernate.*;
import org.hibernate.criterion.*;
import org.newhotel.entity.Customers;
import org.newhotel.entity.Orders;
import org.newhotel.entity.Rooms;
import org.newhotel.entity.ServiceType;
import org.newhotel.entity.TypeRoom;
import
org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import
org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import static
com.sun.corba.se.impl.util.Utility.printStackTrace;
@Repository
@Transactional
public class SpringProjectDAOImpl implements
SpringProjectDAO {
@Autowired
SessionFactory sessionFactory;
public List<TypeRoom> readTypeRoom() {
Session session =
sessionFactory.getCurrentSession();
List<TypeRoom> list = null;
try {
list = session.createQuery("from
TypeRoom").list();
Лист
ЧДТУ. 222082.001 ПЗ
38
Змн. Лист № докум. Підпис Дата
} catch (Exception e) {
printStackTrace();
}
return list;
}
public List<ServiceType> readServiceType() {
return
sessionFactory.getCurrentSession().createQuery("from
ServiceType").list();
}
public List<Customers> readCustomers() {
Session session =
sessionFactory.getCurrentSession();
List<Customers> list = null;
try {
list = session.createQuery("from
Customers").list();
} catch (Exception e) {
printStackTrace();
}
return list;
}
public List<Orders> readOrders() {
return
sessionFactory.getCurrentSession().createQuery("from
Orders").list();
}
public void storeOrder(Orders saveOrders) {
Session session =
sessionFactory.getCurrentSession();
try {
session.save(saveOrders);
} catch (Exception e) {
printStackTrace();
}
}
public List<Rooms> readRooms() {
Лист
ЧДТУ. 222082.001 ПЗ
39
Змн. Лист № докум. Підпис Дата
return
sessionFactory.getCurrentSession().createQuery("from
Rooms").list();
}
public Rooms readRoom(int id) {
List<Rooms> r =
sessionFactory.getCurrentSession().createQuery("from Rooms
where id = " + id).list();
return r.get(0);
}
public List<Rooms> readRoomForType(int typeRoomId) {
return
sessionFactory.getCurrentSession().createQuery("from Rooms
where typeRoom.id=:id")
.setParameter("id", typeRoomId)
.list();
}
public Customers readCustomer(int id) {
List<Customers> r =
sessionFactory.getCurrentSession().createQuery("from
Customers where id = " + id).list();
return r.get(0);
}
@Override
public List<TypeRoom> getAllRooms() {
List<TypeRoom> typeRooms = sessionFactory
.getCurrentSession()
.createQuery("from TypeRoom").list();
return typeRooms;
}
@Override
public List<Orders> readOrders(String nameSecond, String
nameFirst) {
String sql = "from Orders where surname='" +
nameSecond + "' and name='" + nameFirst + "'";
return
sessionFactory.getCurrentSession().createQuery(sql).list();
}
Лист
ЧДТУ. 222082.001 ПЗ
40
Змн. Лист № докум. Підпис Дата
@Override
public List<Orders> getFreeOrders(Date startDate, Date
endDate, int roomType) {
Query query = sessionFactory
.getCurrentSession()
.createQuery("from Rooms r where
r.typeRoom.id = :room_id and r.id not in " +
"(select o.room.id from Orders o
where (o.dateArrival < :dateArrival and o.dateDeparture >
:dateArrival)" +
" or (o.dateArrival > :dateArrival
and o.dateDeparture < :dateDeparture)" +
" or (o.dateArrival > :dateArrival
and o.dateArrival < :dateDeparture)" +
" or (o.dateArrival > :dateArrival
and o.dateDeparture < :dateDeparture) )");
query.setParameter("room_id", roomType);
query.setParameter("dateArrival", startDate);
query.setParameter("dateDeparture", endDate);
return query.list();
}
@Override
public List<Orders> registrations(String surname, String
name, String middlename, int number_passport, String
country, String city) {
String sql = "INSERT INTO orders (surname, name,
middlename, number_passport, country, city) VALUES ('" +
surname + "', '" + name + "', '" + middlename + "', " +
number_passport + ", '" + country + "', '" + city + "')";
return
sessionFactory.getCurrentSession().createQuery(sql).list();
}
}
1.3 Entity
package org.newhotel.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
Лист
ЧДТУ. 222082.001 ПЗ
41
Змн. Лист № докум. Підпис Дата
import javax.persistence.Table;
@Entity
@Table(name = "customers")
public class Customers {
@Id
@GeneratedValue
private Integer id;
private String name;
private String surname;
private String middlename;
@Column(name = "number_card")
private String numberCard;
@Column(name = "type_card")
private String typeCard;
@Column(name = "bonus_card")
private String bonusCard;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
Лист
ЧДТУ. 222082.001 ПЗ
42
Змн. Лист № докум. Підпис Дата
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getMiddlename() {
return middlename;
}
public void setMiddlename(String middlename) {
this.middlename = middlename;
}
public String getNumberCard() {
return numberCard;
}
public void setNumberCard(String numberCard) {
this.numberCard = numberCard;
}
public String getTypeCard() {
return typeCard;
}
public void setTypeCard(String typeCard) {
this.typeCard = typeCard;
}
public String getBonusCard() {
return bonusCard;
}
public void setBonusCard(String bonusCard) {
this.bonusCard = bonusCard;
}
}
package org.newhotel.entity;
Лист
ЧДТУ. 222082.001 ПЗ
43
Змн. Лист № докум. Підпис Дата
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(name = "orders")
public class Orders {
@Id
@GeneratedValue
private Integer id;
private String surname;
private String name;
private String middlename;
private Integer tel;
private Integer number_passport;
private String country;
private String sity;
@Column(name = "date_arrival")
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date dateArrival;
@Column(name = "date_departure")
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date dateDeparture;
@Column(name = "date_order")
Лист
ЧДТУ. 222082.001 ПЗ
44
Змн. Лист № докум. Підпис Дата
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date dateOrder;
@ManyToOne
@JoinColumn(name = "customer_id")
private Customers customer;
@ManyToOne
@JoinColumn(name = "id_room")
private Rooms room;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMiddlename() {
return middlename;
}
public void setMiddlename(String middlename) {
this.middlename = middlename;
}
Лист
ЧДТУ. 222082.001 ПЗ
45
Змн. Лист № докум. Підпис Дата
public java.util.Date getDateArrival() {
return dateArrival;
}
public void setDateArrival(java.util.Date dateArrival) {
this.dateArrival = dateArrival;
}
public java.util.Date getDateDeparture() {
return dateDeparture;
}
public void setDateDeparture(java.util.Date
dateDeparture) {
this.dateDeparture = dateDeparture;
}
// public Integer getTel() { return tel; }
// public void setTel(Integer tel) {
// this.tel = tel;
// }
public Integer getNumber_passport() {
return number_passport;
}
public void setNumber_passport(Integer number_passport)
{
this.number_passport = number_passport;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getSity() {
return sity;
}
Лист
ЧДТУ. 222082.001 ПЗ
46
Змн. Лист № докум. Підпис Дата
public void setSity(String sity) {
this.sity = sity;
}
public Customers getCustomer() {
return customer;
}
public void setCustomer(Customers customer) {
this.customer = customer;
}
public Rooms getRoom() {
return room;
}
public void setRoom(Rooms room) {
this.room = room;
}
public java.util.Date getDateOrder() {
return dateOrder;
}
public void setDateOrder(java.util.Date dateOrder) {
this.dateOrder = dateOrder;
}
@Override
public String toString() {
return "Orders{" +
"id=" + id +
", surname='" + surname + '\'' +
", name='" + name + '\'' +
", middlename='" + middlename + '\'' +
", dateArrival=" + dateArrival +
", dateDeparture=" + dateDeparture +
", dateOrder=" + dateOrder +
", customer=" + customer +
", room=" + room +
'}';
Лист
ЧДТУ. 222082.001 ПЗ
47
Змн. Лист № докум. Підпис Дата
}
}
package org.newhotel.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "rooms")
public class Rooms {
@Id
@GeneratedValue
private Integer id;
private Integer number;
@ManyToOne
@JoinColumn(name = "type_room_id")
private TypeRoom typeRoom;
private Double price;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Double getPrice() {
return price;
Лист
ЧДТУ. 222082.001 ПЗ
48
Змн. Лист № докум. Підпис Дата
}
public void setPrice(Double price) {
this.price = price;
}
public TypeRoom getTypeRoom() {
return typeRoom;
}
public void setTypeRoom(TypeRoom typeRoom) {
this.typeRoom = typeRoom;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
}
package org.newhotel.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "service_type")
public class ServiceType {
@Id
@GeneratedValue
private Integer id;
private String name;
Лист
ЧДТУ. 222082.001 ПЗ
49
Змн. Лист № докум. Підпис Дата
private Integer price;
@Column(name = "type_count")
private String typeCount;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public String getTypeCount() {
return typeCount;
}
public void setTypeCount(String typeCount) {
this.typeCount = typeCount;
}
}
package org.newhotel.entity;
Лист
ЧДТУ. 222082.001 ПЗ
50
Змн. Лист № докум. Підпис Дата
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "type_room")
public class TypeRoom {
@Id
@GeneratedValue
@Column(name = "id")
Integer id;
String name;
double price;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
Лист
ЧДТУ. 222082.001 ПЗ
51
Змн. Лист № докум. Підпис Дата
}
1.4 Configuration
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context
"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-
3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-
context-3.0.xsd">
<import resource="db-config.xml"/>
<!-- @Controller, @Service, @Configuration, etc. -->
<context:component-scan base-
package="org.newhotel.dao"/>
<context:component-scan base-
package="org.newhotel.entity"/>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context
" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/be
ans http://www.springframework.org/schema/beans/spring-
beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-
context-3.0.xsd">
Лист
ЧДТУ. 222082.001 ПЗ
52
Змн. Лист № докум. Підпис Дата
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlac
eholderConfigurer"
p:location="/WEB-INF/jdbc.properties"/>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-
method="close"
p:driverClassName="${jdbc.driverName}"
p:url="${jdbc.url}" p:username="${jdbc.username}"
p:password="1111"/>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactor
yBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation">
<value>/WEB-INF/hibernate.cfg.xml</value>
</property>
<!--<property name="configurationClass">-->
<!--
<value>org.hibernate.cfg.AnnotationConfiguration</value>-->
<!--</property>-->
<property name="hibernateProperties">
<props>
<prop
key="hibernate.dialect">${jdbc.dialect}</prop>
<prop
key="hibernate.show_sql">${jdbc.show_sql}</prop>
</props>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransacti
onManager">
<property name="sessionFactory"
ref="sessionFactory"/>
</bean>
<tx:annotation-driven/>
</beans>
Лист
ЧДТУ. 222082.001 ПЗ
53
Змн. Лист № докум. Підпис Дата
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-
configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<mapping class="org.newhotel.entity.Orders"/>
<mapping class="org.newhotel.entity.Customers"/>
<mapping class="org.newhotel.entity.Rooms"/>
<mapping class="org.newhotel.entity.ServiceType"/>
<mapping class="org.newhotel.entity.TypeRoom"/>
</session-factory>
</hibernate-configuration>
jdbc.url=jdbc:mysql://localhost:3306/hotel?useUnicode=true&a
mp;characterEncoding=utf8
jdbc.username=root
jdbc.password=1111
jdbc.driverName=com.mysql.jdbc.Driver
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.show_sql=true
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context
"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-
3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-
context-3.0.xsd">
<context:component-scan base-
package="org.newhotel.controller"/>
Лист
ЧДТУ. 222082.001 ПЗ
54
Змн. Лист № докум. Підпис Дата
<mvc:annotation-driven/>
<context:annotation-config/>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResource
ViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
<property name="contentType"
value="text/html;charset=UTF-8"/>
</bean>
<!--<bean
class="org.springframework.web.servlet.handler.BeanNameUrlHa
ndlerMapping" />-->
<!--<mvc:resources mapping="/css/**" location="/css/"
/>-->
<!--<mvc:resources mapping="/images/**" location="/img/"
/>-->
<!--<mvc:resources mapping="/js/**" location="/js/" />--
>
<!--</bean>-->
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>New Hotel Project</display-name>
<description>New Hotel application</description>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/application-
context.xml</param-value>
</context-param>
Лист
ЧДТУ. 222082.001 ПЗ
55
Змн. Лист № докум. Підпис Дата
<listener>
<listener-
class>org.springframework.web.context.ContextLoaderListener<
/listener-class>
</listener>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-
class>org.springframework.web.servlet.DispatcherServlet</ser
vlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<filter>
<filter-name>charsetFilter</filter-name>
<filter-
class>org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
Лист
ЧДТУ. 222082.001 ПЗ
56
Змн. Лист № докум. Підпис Дата
<filter-name>charsetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>openSessionInViewFilter</filter-name>
<filter-
class>org.springframework.orm.hibernate4.support.OpenSession
InViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<session-config>
<session-timeout>10</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>start.do</welcome-file>
</welcome-file-list>
</web-app>
1.5 View
<%@ page contentType="text/html;charset=UTF-8"
language="java" %>
<%@include file="header.jsp" %>
<form action="booking.do" class="jumbotron form-horizontal"
method="post">
<div class="jumbotron">
<h1>Бронирования</h1>
</div>
<div class="form-group">
<label for="inputSurname" class="col-sm-2 control-
label">Фамилия</label>
<div class="col-sm-10">
<input style="width: 275" type="text"
class="form-control" id="inputSurname" placeholder="Фамилия"
name="surname">
</div>
Лист
ЧДТУ. 222082.001 ПЗ
57
Змн. Лист № докум. Підпис Дата
</div>
<div class="form-group">
<label for="inputName" class="col-sm-2 control-
label">Имя</label>
<div class="col-sm-10">
<input style="width: 275" type="text"
class="form-control" id="inputName" placeholder="Имя"
name="name">
</div>
</div>
<div class="form-group">
<label for="undefined_display1" class="col-sm-2
control-label">Дата въезда</label>
<div class="col-sm-10">
<input type="text" size="40" style="display:
inline-block;" class="date" id="undefined_display1"
name="dataArrival"/>
<input type="text" size="40" style="display:
none;"/>
</div>
</div>
<div class="form-group">
<label for="undefined_display2" class="col-sm-2
control-label">Дата отъезда</label>
<div class="col-sm-10">
<input type="text" size="40" style="display:
inline-block;" class="date" id="undefined_display2"
name="dataDeparture"/>
<input type="text" size="40" style="display:
none;"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Тип
номера</label>
<div class="btn-group">
<select class="form-control" id="typeRoom"
onchange="chooseRoomType();">
<c:forEach items="${typeRoom}" var="room">
<option name="idRoom"
value="${room.id}">${room.name} ${room.price} грн</option>
Лист
ЧДТУ. 222082.001 ПЗ
58
Змн. Лист № докум. Підпис Дата
</c:forEach>
</select>
</div>
</div>
<div id="rooms"></div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-
primary">Забронировать</button>
</div>
</div>
</form>
<%@include file="footer.jsp" %>
<%@ page contentType="text/html;charset=UTF-8"
language="java" %>
<%@ taglib prefix="c"
uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt"
uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<meta charset="utf-8">
<title>Бронирования клиента</title>
<link
href="${pageContext.request.contextPath}/resources/css/style
.css" rel="stylesheet" type="text/css"/>
<link
href="${pageContext.request.contextPath}/resources/css/boots
trap.min.css" rel="stylesheet" type="text/css"/>
<link
href="${pageContext.request.contextPath}/resources/css/calan
dar.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript"
src="${pageContext.request.contextPath}/resources/js/jquery-
1.7.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/resources/js/test.ca
landar.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/resources/js/jquery.
mousewheel.js"></script>
Лист
ЧДТУ. 222082.001 ПЗ
59
Змн. Лист № докум. Підпис Дата
<script type="text/javascript"
src="${pageContext.request.contextPath}/resources/js/will_pi
ckdate.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/resources/js/bootstr
ap.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/resources/js/main.js
"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/resources/js/bootstr
ap.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/resources/js/prettif
y.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/resources/js/bootstr
ap-datepicker.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/resources/js/calanda
r.js">
</script>
</head>
<body>
<div class="container">
<div class="header">
<ul class="nav nav-pills pull-right">
<li><a href="start.do">Бронирования</a></li>
<li><a
href="registration.do">Регистрация</a></li>
<li><a href="searchNewOrder.do">Поиск
клиента</a></li>
</ul>
<h3 class="text-muted"><a href="/">Готель
Нива</a></h3>
</div>
</div>
</body>
</html>
Лист
ЧДТУ. 222082.001 ПЗ
60
Змн. Лист № докум. Підпис Дата
<%@ page contentType="text/html;charset=UTF-8"
language="java" %>
<%@include file="header.jsp" %>
<form action="registration.do" class="jumbotron form-
horizontal" method="post">
<div class="jumbotron">
<h1>Регистрация</h1>
</div>
<div class="form-group">
<label for="inputSurname" class="col-sm-2 control-
label">Фамилия</label>
<div class="col-sm-10">
<input style="width: 275" type="text"
class="form-control" id="inputSurname" placeholder="Фамилия"
name="surname">
</div>
</div>
<div class="form-group">
<label for="inputName" class="col-sm-2 control-
label">Имя</label>
<div class="col-sm-10">
<input style="width: 275" type="text"
class="form-control" id="inputName" placeholder="Имя"
name="name">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-
label">Отчество:</label>
<div class="col-sm-10">
<input style="width: 275" type="text"
class="form-control" placeholder="Отчество"
name="middlename">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-
label">Телефон:</label>
<div class="col-sm-10">
<input style="width: 275" type="text"
class="form-control" placeholder="Телефон" name="tel">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Номер
паспорта:</label>
Лист
ЧДТУ. 222082.001 ПЗ
61
Змн. Лист № докум. Підпис Дата
<div class="col-sm-10">
<input style="width: 275" type="text"
class="form-control" placeholder="Номер паспорта"
name="number_passport">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Страна:</label>
<div class="col-sm-10">
<input style="width: 275" type="text"
class="form-control" placeholder="Страна" name="country">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Город:</label>
<div class="col-sm-10">
<input style="width: 275" type="text"
class="form-control" placeholder="Город" name="city">
</div>
</div>
<button type="submit" class="btn btn-
info">Добавить</button>
</form>
</div>
<%@include file="footer.jsp" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"
%>
<%@ page contentType="text/html;charset=UTF-8"
language="java" %>
<html>
<table class="table table-bordered">
<c:forEach var="room" items="${rooms}">
<tr>
<td>${room.number}</td>
<td>${room.typeRoom.name}</td>
<td>${room.price}</td>
<td><input type="checkbox"
name="roomId${room.id}"/></td>
</tr>
</c:forEach>
</table>
<%@ page contentType="text/html;charset=UTF-8"
language="java" %>
<%@include file="header.jsp" %>
Лист
ЧДТУ. 222082.001 ПЗ
62
Змн. Лист № докум. Підпис Дата
<div class="jumbotron">
<form action="searchNewOrder.do" class="form-inline"
method="post">
<div class="form-group">
<input type="text" name="nameSecond" class="form-
control" placeholder="Фамилия">
</div>
<div class="form-group">
<input type="text" name="nameFirst" class="form-
control" placeholder="Имя">
</div>
<button type="submit" class="btn btn-
info">Поиск</button>
</form>
<table class="table table-bordered">
<c:forEach var="orders" items="${orderses}">
<tr>
<td>${orders.surname}</td>
<td>${orders.name}</td>
<td><fmt:formatDate pattern="dd-mm-yyyy"
value="${orders.dateArrival}"/></td>
<td><fmt:formatDate pattern="dd-mm-yyyy"
value="${orders.dateDeparture}"/></td>
<td>${orders.room.number}</td>
</tr>
</c:forEach>
</table>
</div>
<%@include file="footer.jsp" %>
Лист
ЧДТУ. 222082.001 ПЗ
63
Змн. Лист № докум. Підпис Дата
ДОДАТОК В
Автоматизована інформаційно-аналітична система готелю:
підсистема керування та аналізу розміщення клієнтів. Інструкція
користувачеві.
1 Інструкція для web додатку
Система описана за характеристиками стандарту ISO/IEC 9126 та за
методом чорного ящика.
1.1 Запуск програми
Для запуску програми необхідно ввести localhost:8080. Після
введення в адресну строку наведений запис, ви попадете на головну
сторінку.
Вводимо localhost:8080, натискаємо Enter.
1. Потім ми бачимо головну сторінку, форму бронювання.
1.2 Метод бронювання
На головній сторінці розташовані поля для бронювання клієнта.У
відповідні поля вносимо дані, і після цього вибираємо необхідну дату
для бронювання номера в готелі. Лише коли будуть вибрані дати
бронювання номеру, буде можливість вибрати тип номеру для
бронювання.
При вибраній даті відбувається пошук номерів. Пошук
відбувається бо типу номера, тобто на певному періоді часу, ми
виконуємо пошук номерів. Пошук відбувається по типу номера.
Але існує момент, коли на дану дату, тип номера який ми
вибираємо, може бути зайнятим
1.3 Реєстрація клієнта
1. Для реєстрації клієнта потрібно перейти по вкладці
реєстрація
2. З’явиться вікно з полями для ввод у в якому потрібно ввести
дані клієнта.
Лист
ЧДТУ. 222082.001 ПЗ
64
Змн. Лист № докум. Підпис Дата
ДОДАТОК Г
Автоматизована інформаційно-аналітична система готелю:
підсистема керування та аналізу розміщення клієнтів. Графічні
матеріали
Рисунок Г.1 – Технологічна схема до бронювання та реєстрації клієнтів
Рисунок Г.2 – Головна сторіка web додатку
Лист
ЧДТУ. 222082.001 ПЗ
65
Змн. Лист № докум. Підпис Дата
Лист
ЧДТУ. 222082.001 ПЗ
66
Змн. Лист № докум. Підпис Дата
Рисунок Г.3 – Структура web-додатку
Період року Параметр мікроклімату Величина
Температура повітря в приміщенні 22-24°С
Холодний Відносна вологість 40-60 %
Швидкість руху повітря до 0,1м/с
Температура повітря в приміщенні 23-25°С
Теплий Відносна вологість 40-60 %
Швидкість руху повітря 0,1-0,2м/с
Рисунок Г.4 – Параметри мікроклімату
Число Витрати
Оплата
Найменування Міс.посад. дн. на зароб.
за роб.
посади оклад, грн. робот плату, гр
день, грн.
и н.
1.Програміст1 3150,00 150,00 25 3750,00
2.Програміст2 2730,00 130,00 20 2600,00
3.Web-дизайне
2310,00 110,00 12 1320,00
р
Разом: 7670,00
Рисунок Г.5. – Основна заробітня плата
Лист
ЧДТУ. 222082.001 ПЗ
67
Змн. Лист № докум. Підпис Дата
Рисунок Г.6. – Технології та засоби
Рисунок Г.7. – База даних
Лист
ЧДТУ. 222082.001 ПЗ
68
Змн. Лист № докум. Підпис Дата