Гостиничный комплекс

Автор работы: Пользователь скрыл имя, 12 Сентября 2013 в 11:06, курсовая работа

Описание работы

Разработать информационную систему гостиничного комплекса, которая несет собой следующую информацию: занятость номеров, заказ (дата заказа, дата въезда/выезда, стоимость), сведения о клиенте, занимающего тот или иной номер (ФИО, сведения о документе, удостоверяющем личность, адрес) и о самом номере (расположение, вид, стоимость периодичность обслуживания), а также использование служб быта: ежедневная уборка номера, прачечная, химчистка, питание (рестораны, бары) и развлечения (бассейн, сауна, бильярд и пр.).

Содержание работы

Введение 3
1. Задание 4
2. Построение инфологической концептуальной модели (ER-модели) 6
3. Построение реляционной схемы из ER-модели данных 10
4. Описание приложения 13
5. Проектирование форм, запросов и отчетов 16
6. Код программы 21
7. Тестирование базы данных 22
Список использованной литературы 28

Файлы: 1 файл

Курсовая работа по Базе Данных - Гостиничный комплекс.doc

— 2.71 Мб (Скачать файл)

Таблица 1. Структура таблиц

Название поля

Тип данных

Заказ

Номер заказа

Счетчик

Дата заказа

Дата/время

Дата прибытия

Дата/время

Дата выезда

Дата/время

Номер клиента

Числовой

№ номера

Числовой

Стоимость

Денежный

Клиент

Номер клиента

Числовой

ФИО

Текстовый

Номер паспорта

Числовой

Серия паспорта

Числовой

Адрес

Текстовый

Гражданство

Текстовый

Описание номера

№ номера

Числовой

Расположение

Текстовый

Вид номера

Текстовый

Класс обслуживания

Вид номера

Текстовый

Стоимость номера

Денежный

Периодичность обслуживания

Текстовый

Перечень услуг

Номер услуги

Счетчик

Наименование

Текстовый

Стоимость

Денежный

Единицы измерения

Текстовый

Используемые услуги

Номер заказа

Числовой

Номер услуги

Числовой

Дата

Дата/время

Количество раз

Числовой

Общая стоимость

Денежный


 

Для связи таблиц использовалась следующая  схема, изображенная на рис. 8.

 

Рис. 8. Схема данных

 

Целостность данных обеспечена включением специальной опции «Обеспечение целостности данных», а затем ставших доступными «Каскадное обновление связанных полей» и «Каскадное удаление связанных полей», что изображено на рис. 9.

 

Рис. 9. Целостность данных

 

5. Проектирование форм, запросов и отчетов

 

Разработанное мною приложение состоит  из 2 форм. Подробное описание создания каждой из них следует ниже.

 

Все формы были созданы в режиме конструктора и при помощи встроенного  редактора Visual Basic для некоторых событий элементов этих форм были написаны макросы.

Форма «Клиент» создавалась для  просмотра, изменения, и добавления информации о клиентах и их заказах. Данная форма включает в себя подчиненную форму «Заказ (рис. 10).

 

Рис. 10. Форма «Книга». Режим конструктора

 

Для отображения в поле «Номер» списка свободных относительно данных дат номеров был построен специальный запрос на выборку (рис. 11).

 

Рис. 11. Запрос по свободным номерам

 

При этом были использованы некоторые  параметры объединения (рис. 12).

 

Рис 12. Окно «Параметры объединения»

 

Форма «Заказ услуг» предназначена для работы с информацией об услугах, которыми клиент пользовался в течение пребывания в гостинице. Данная форма содержит в себе две подчиненных формы: «Заказ» и «Используемые услуги» (рис. 13).

 

Рис. 13. Форма «Заказ услуг»

 

Помимо форм, для работы с базой данных было создано 5 запросов. Все запросы были спроектированы в мастере запросов и отредактированы в режиме конструктора.

Первый запрос называется «Все свободные номера» и определяет перечень свободных номеров на текущий момент (рис. 14).

 

Рис. 14 Запрос «Все свободные номера»

Следующий запрос называется «Заняты  до даты». Его назначение состоит  в определении занятых на текущий момент до определенного времени номеров (рис. 15).

 

Рис. 15. Запрос «Заняты до даты»

 

Третий запрос называется «Номер за время». Результатом выполнения этого  запроса является список клиентов, которые проживали в этом номере в течение определенного периода времени (рис. 16).

 

Рис. 16. Запрос «Номер за время»

Четвертый запрос называется «Посещаемость». Он определяет тот факт, как часто  клиент посещал гостиницу. И на основании  этого  мы получаем сведения о наиболее часто посещающих гостиницу постояльцах (рис. 17).

 

 

Рис. 17. Запрос «Посещаемость»

 

Наконец последний запрос называется «Номер/Клиент/Услуги». В результате выполнения запроса (рис. 18) получаем сведения об услугах, которыми пользовались клиенты  данного гостиничного номера.

 

Рис. 18. Запрос «Номер/Клиент/Услуги»

Для отображения данных последнего запроса составим отчет с одноименным названием. В отчете пропишем сведения о постояльце из заданного номера: его счет гостинице за дополнительные   услуги, виды услуг, которыми он пользовался.

 

6. Код программы

Подчиненная форма «Заказ» формы «Клиент»

 

Option Compare Database

Dim kolvo As Single

Private Sub Дата_выезда_AfterUpdate()

kolvo = [Дата_выезда] - [Дата_прибытия]

[Стоимость] = kolvo * [Стоимость_номера]

Refresh

End Sub

Private Sub Дата_прибытия_AfterUpdate()

kolvo = [Дата_выезда] - [Дата_прибытия]

[Стоимость] = kolvo * [Стоимость_номера]

Refresh

End Sub

Private Sub Номер_номера_AfterUpdate()

kolvo = [Дата_выезда] - [Дата_прибытия]

[Стоимость] = kolvo * [Стоимость_номера]

Refresh

End Sub

Private Sub Номер_номера_Click()

End Sub

 

Подчиненная форма «Заказ» формы «Заказ услуг»

 

Option Compare Database

Sub Form_Current()

    Dim ParentDocName As String

    On Error Resume Next

    ParentDocName = Me.Parent.Name

    If Err <> 0 Then

        GoTo Form_Current_Exit

    Else

        On Error GoTo Form_Current_Err

        Me.Parent![Используемые услуги подчиненная форма].Requery

    End If

Form_Current_Exit:

    Exit Sub

Form_Current_Err:

    MsgBox Error$

    Resume Form_Current_Exit

End Sub

 

Подчиненная форма «Используемые услуги» формы «Заказ услуг»

 

Option Compare Database

Private Sub Дата_Change()

Refresh

If [Дата] < Forms![Заказ  услуг]![Заказ подчиненная форма].Form![Дата  прибытия] Or [Дата] > Forms![Заказ услуг]![Заказ  подчиненная форма].Form![Дата выезда] Then

MsgBox "Дата не соответствует времени вашего пребывания в гостинице.", vbExclamation

[Дата].Value = ""

End If

End Sub

Private Sub Количество_раз_AfterUpdate()

[Общая стоимость] = [Стоимость] * [Количество раз]

Refresh

End Sub

Private Sub Номер_услуги_AfterUpdate()

[Общая стоимость] = [Стоимость] * [Количество раз]

Refresh

End Sub

 

7. Тестирование  базы данных

 

Запустим разработанное приложение.

Взаимодействие с пользователем осуществляется при помощи форм и запросов. Подробное их описание следует ниже.

 

         Откроем форму «Клиент», которая предназначена для работы с информацией о клиентах и заказах (рис. 19).

 

Рис. 19. Форма «Книга»

 

Первоначально вводится информация о  клиенте (ФИО, номер и серия паспорта, адрес, гражданство), а затем на подчиненной форме вводятся сведения о самом заказе. В поле со списком «Номер» пользователь может выбрать один из свободных на текущий момент номеров или же изменить свой выбор. В последнем случае информация об общей стоимости заказа обновиться.

Заполнив сведения о клиенте и заказе мы можем перейти к форме «Заказ услуг» (рис. 20), которая позволяет оформлять на клиента любые услуги, предоставляемые гостиницей.

 

Рис. 20. Форма «Заказ услуг»

 

Подчиненная форма «Заказ» содержит неизменную информацию, которая отображает некоторые сведения о заказе. В подчиненной форме «Используемые услуги» в поле со списком «Номер услуги» пользователь может выбрать любую доступную услугу. Некоторые сведения о ней автоматически появятся в соответствующих полях. В поле «Дата» ведется проверка на значение: дата должна соответствовать времени пребывания клиента в гостинице (в противном случае будет выдано сообщение об ошибке и просьба повторить ввод).

Помимо форм, важную роль играют запросы.

Так, нажав на запрос о свободных  номерах, пользователь в любой момент может узнать список незанятых номеров на текущий момент (рис. 21).

 

Рис. 21 Список свободных номеров

 

Или наоборот, щелкнув по запросу  «Заняты до даты», пользователь сможет узнать перечень номеров, занятых до определенной даты календаря (рис. 22).

 

Рис. 22. Постановка даты

 

Рис. 23 Выполнение запроса «Заняты  до даты»

 

Следующим на очереди идет запрос «Номер за время». После нажатия  на запрос пользователю будет предложено несколько окон ввода (Введите номер номера, Введите начальную дату, Введите конечную дату). После ввода появиться таблица, характеризующая занятость номера в течение определенного периода времени (рис. 24).

 

Рис. 24. Выполнение запроса «Номер за время»

 

Последним запросом является «Посещаемость». В результате выполнения этого запроса на экране отображаются сведения о регулярности посещения гостиницы теми или иными клиентами (рис. 25). На основании этой информации можно сделать вывод о наиболее часто посещающих гостиницу постояльцах.

 

Рис. 25. Выполнение запроса «Посещаемость»

 

Кроме всего вышеперечисленного, немалое  значение имеет отчет «Номер/Клиент/Услуги». По заданному гостиничному номеру выдается список клиентов, проживавших в этом номере и их счета гостинице за использованные дополнительные услуги (рис. 26).

 

 

Рис. 26. Отчет «Номер/Клиент/Услуги»  
Заключение

 

В результате выполнения курсовой работы мною была создана база данных, содержащая следующую информацию: занятость номеров, заказ (дата заказа, дата въезда/выезда, стоимость), сведения о клиенте, занимающего тот или иной номер (ФИО, сведения о документе, удостоверяющем личность, адрес) и о самом номере  (расположение, вид, стоимость периодичность обслуживания), а также использование служб быта: ежедневная уборка номера, прачечная, химчистка, питание (рестораны, бары) и развлечения (бассейн, сауна, бильярд и пр.).

 

Разработан пакет, состоящий из процедур и функций, позволяющий:

  1. получить  перечень  и  общее число  постояльцев,  заселявшихся  в  номера с указанными характеристиками за некоторый период;
  2. получить список свободных номеров на данный момент;
  3. получить сведения о постояльце из заданного номера: его счет гостинице за дополнительные   услуги, виды услуг, которыми он пользовался;
  4. получить сведения о наиболее часто посещающих гостиницу постояльцах;
  5. получить список занятых сейчас номеров, которые освобождаются к указанному сроку;
  6. получить сведения о конкретном номере: кем он был занят в определенный период.

 

А также закреплены знания и умения по дисциплине «Базы данных», получены навыки разработки ИС, выработаны новые навыки для разработки реляционных баз данных.

 

 

Список использованной литературы

 

  1. Лекции по курсу «Базы данных» – Д.Н. Кузнецов, 2007.
  2. Карпов Б. «Microsoft Access 2000 Справочник» – СПб: Питер, 2001.

 

 

 





Информация о работе Гостиничный комплекс