Автор работы: Пользователь скрыл имя, 12 Сентября 2013 в 11:06, курсовая работа
Разработать информационную систему гостиничного комплекса, которая несет собой следующую информацию: занятость номеров, заказ (дата заказа, дата въезда/выезда, стоимость), сведения о клиенте, занимающего тот или иной номер (ФИО, сведения о документе, удостоверяющем личность, адрес) и о самом номере (расположение, вид, стоимость периодичность обслуживания), а также использование служб быта: ежедневная уборка номера, прачечная, химчистка, питание (рестораны, бары) и развлечения (бассейн, сауна, бильярд и пр.).
Введение 3
1. Задание 4
2. Построение инфологической концептуальной модели (ER-модели) 6
3. Построение реляционной схемы из ER-модели данных 10
4. Описание приложения 13
5. Проектирование форм, запросов и отчетов 16
6. Код программы 21
7. Тестирование базы данных 22
Список использованной литературы 28
Таблица 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![Заказ
услуг]![Заказ подчиненная
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. Отчет «Номер/Клиент/Услуги»
Заключение
В результате выполнения курсовой работы мною была создана база данных, содержащая следующую информацию: занятость номеров, заказ (дата заказа, дата въезда/выезда, стоимость), сведения о клиенте, занимающего тот или иной номер (ФИО, сведения о документе, удостоверяющем личность, адрес) и о самом номере (расположение, вид, стоимость периодичность обслуживания), а также использование служб быта: ежедневная уборка номера, прачечная, химчистка, питание (рестораны, бары) и развлечения (бассейн, сауна, бильярд и пр.).
Разработан пакет, состоящий из процедур и функций, позволяющий:
А также закреплены знания и умения по дисциплине «Базы данных», получены навыки разработки ИС, выработаны новые навыки для разработки реляционных баз данных.
Список использованной литературы