Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 курс Курсовая работа / Пояснительная записка к курсовой работе по БСБД.pdf
Скачиваний:
0
Добавлен:
13.07.2026
Размер:
4.24 Mб
Скачать

3 ОПИСАНИЕ ПРИКЛАДНОЙ ПРОГРАММЫ

3.1 Создание функций для работы прикладной программы

Для работы с разработанной базой данных было создано оконное приложение с применением WindowsForms на языке C# для роли гостя. Приложение обеспечивает взаимодействие пользователя с базой данных через набор специализированных функций, реализованных непосредственно на уровне СУБД PostgreSQL.

На рисунке 3.1 представлен скрипт функции get_all_rooms() для отображения таблицы гостиничных номеров в приложении. Функция возвращает все столбцы таблицы «Гостиничный номер» с помощью SELECT.

Рисунок 3.1 – Функция отображения таблицы гостиничных номеров

На рисунке 3.2 представлена функция get_room_numbers(), которая возвращает значения столбца «Номер комнаты» в порядке возрастания из таблицы «Гостиничный номер» для списка в форме для заполнения новой заявки.

Рисунок 3.2 – Функция отображения списка комнат

35

На рисунке 3.3 представлен скрипт функции create_request() для создания новой записи в таблице «Заявка». Функция принимает на вход значения для столбцов «Номер комнаты», «Код гостя», «Количество гостей», «Дата и время заселения», «Дата и время выселения», оставшиеся столбцы («Код администратора» и «Итоговая цена») записываются как NULL.

Рисунок 3.3 – Функция добавления новой заявки на заселение

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

36

Рисунок 3.4 – Функция отображения информации о госте

На рисунке 3.5 представлен скрипт функции update_guest_data() для изменения информации о пользователе в таблице «Гость». Функция принимает на вход значения, вводимые в форме и изменяет соответствующую текущему пользователю запись с помощью UPDATE.

Рисунок 3.5 – Функция изменения информации о госте

37

На рисунке 3.6 представлен скрипт функции get_user_requests() для отображения истории заявок пользователя в виде таблицы. Функция соединяет информацию из таблиц «Заявка» и «Администратор» с помощью LEFT JOIN, в качестве столбцов пользователю возвращаются «Номер заявки» (имеется в виду порядковый номер в списке заявок гостя), «Менеджер» (имя и фамилия администратора, который обрабатывал заявку), «Контактный телефон», «Гостиничный номер», «Количество гостей», «Заселение», «Выселение» и «Итоговая стоимость».

Рисунок 3.6 – Функция отображения истории заявок пользователя

На рисунке 3.7 представлен скрипт функции register_guest() для регистрации новых пользователей в системе. Функция принимает на вход информацию о пользователе, вводимую в форме, и формирует новую запись в таблице «Гость» и нового пользователя базы данных с ролью «Гость».

Рисунок 3.7 – Функция для регистрации новых гостей в системе

38

В приложении И представлен полный скрипт с функциями, реализованными на уровне СУБД.

Все созданные на уровне СУБД функции вызываются в приложении в классе «DatabaseFunctions», который хранит в себе определения используемых функций и методов. В методах и функциях также прописана дополнительная обработка ошибок.

На рисунке 3.8 представлена функция GetConnectionString(), использующаяся для формирования параметров подключения к СУБД. В качестве параметров «username» и « password» задаются данные текущего пользователя, вводимые в форме авторизации.

Рисунок 3.8 – Функция формирования параметров подключения к СУБД

Для регистрации новых пользователей также есть отдельная функция

GetRegistrationConnectionString(), с параметрами подключения от имени администратора (рисунок 3.9).

Рисунок 3.9 – Функция подключения от имени администратора БД

При каждом обращении к базе данных вызывается функция TestConnection() для проверки доступа к базе, в случае ошибки пользователю выводится сообщение об ошибке на уровне СУБД (рисунок 3.10).

Рисунок 3.10 – Функция проверки подключения к базе данных

39

При авторизации в систему из логина текущего пользователя извлекается уникальный идентификатор (цифры в конце логина) записи в таблице «Гость» с помощью функции GetGuestIdByUsername() (рисунок

3.11).

Рисунок 3.11 – Функция извлечения уникального идентификатора текущего пользователя

Метод GetAllRooms() вызывает функцию СУБД get_all_rooms(),

получает записи из таблицы «Гостиничный номер» и выводит их в элементе

DataGridView (рисунок 3.12).

Рисунок 3.12 – Метод для отображения таблицы «Гостиничный номер» внутри формы

40

Функция GetRoomNumbers() вызывает функцию СУБД get_room_numbers(), получает номера комнат из таблицы «Гостиничный номер» и добавляет их в список roomNumbers, который впоследствии будет отображаться в форме для заполнения новой заявки (рисунок 3.13).

Рисунок 3.13 – Функция получения списка комнат гостиничных номеров

Функция CreateRequest() вызывает функцию СУБД create_request() для формирования новой записи в таблице «Заявка» (рисунок 3.14).

Рисунок 3.14 – Функция формирования новой заявки

41

Функция GetGuestData() вызывает функцию СУБД get_guest_data() для получения информации о текущем пользователе системы из таблицы «Гость»

(рисунок 3.15).

Рисунок 3.15 – Функция получения информации о госте из базы данных

Функция UpdateGuestData() вызывает функцию СУБД update_guest_data() для изменения информации о текущем пользователе системы в таблице «Гость» (рисунок 3.16).

42

Рисунок 3.16 – Функция обновления информации о госте в базе данных

Функция RegisterNewGuest() вызывает функцию СУБД register_guest() для регистрации пользователя в таблице «Гость» и в качестве пользователя базы данных, при успешной регистрации появляется окно с логином и паролем для последующей авторизации (рисунок 3.17).

Рисунок 3.17 – Функция регистрации новых пользователей системы

43

Метод GetUserRequests() вызывает функцию СУБД get_user_requests(), получает данные из таблиц «Заявка» и «Администратор» и выводит их в элементе DataGridView (рисунок 3.18).

Рисунок 3.18 – Метод для отображения столбцов таблиц «Заявка» и «Администратор» в виде единой таблицы внутри формы

Содержимое класса «DatabaseFunctions» со всеми описанными методами, функциями и атрибутами класса для хранения информации о текущем пользователе системы представлено в приложении К.

44