Добавил:
выбрасываю тут свой мусор, надеюсь, что он кому-то может пригодится... Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ по ООП Аронова 22ИСТ2.docx
Скачиваний:
27
Добавлен:
03.12.2023
Размер:
8.48 Mб
Скачать

2. Разработка информационной системы

2.1. Разработка модели предметной области и архитектуры системы

Основными объектами предметной области отель являются: гость и комната. Объект «Гость» содержит в себе следующую информацию: фпмилия, имя, пасортные данные, дату заселения и выселения из отеля. Объект «Комната» содержит: номер комнаты, класс (люкс, полулюкс, стандарт), статус(занято/свободно) и стоимости проживания

Для определения связей компонентов системы с данными объектами выделим основные сущности и создадим модель предметной области (рис. 1).

Рис.1. – Модель предметной области информационной системы

В данной информационной системе было реализовано:

  1. Data Layer – работа с БД (ContrDB, Invoice);

  2. Logic Layer – логика работы программы с ипользованием данных из БД и связывает механизм с визуальным представлением. (Hotel, Room, Guests, Guest)

  3. View Layer – визуальный интерфейс (AddGuestsForm, AddRoomForm, ChangeLeaveForm, DeleteGuestsForm, DeleteRoomForm, FindGuestsForm, FindRoomForm, RoomInfoForm, InvoicesForm, MainForm)

2.2. Распределение обязанностей классов системы

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

2.2.1. Применение принципа единственной ответственности (spr)

К аждый класс должен иметь одну ответственность. Исходя из этого принципа, было решено создать классы (рис. 2-4):

Р ис. 2. – Структура классов Hotel, Room

Рис. 3. – Структура классов Guest, Guests

Рис. 4. – Структура класса Invoice

Класс Hotel – класс отвечающий за управление отелем. Этот класс получает из БД количество этажей и комнат, хранит информацию о количестве занятых и свободных комнат, количестве этажей и производит удаление или добавление этажей/комнат. Так же есть возможность производить поиск комнаты по различным параметрам. Связан с формой MainForm, отображающей информацию и позволяющей вносить изменения в структуру отеля.

Класс Room – класс комнаты в отеле. Данный класс предомтавляет информацию о номере комнаты и классе (люкс полулюкс, стандарт) , дате ее освобождения, статусе (свободна/занята), количестве мест, стоимости за сутки и количестве гостей. Cвязан с формой RoomInfoForm, отображающей работу данного класса.

Класс Guest – класс гостя отеля, который хранит информацию о имени, фамилии и паспортных данных гостя, дате зселения и выселения, номер занимаемой комнаты.

Класс Guests - класс управляющий всеми гостями отеля, т.е предоставляет информацию о количестве гостей на данный момнт или количествео гостей которые выезжают «сегодня»

Класс Invoice – статистический класс для создания квитанции о заселении в отель. Данный класс предоставляет так называем чек в формате .txt. Квитанция датирована и содержит информацию о номере комнаты, дате ее заселения и выселения, стоимости за сутки, количество суток, которые будет гость занимать номер и общую скмму чека.

Класс ContrDB - класс для доступа к БД (XML), загружает данные из БД и сохраняет изменения. Сама БД предоставляет информацию о комнате( на каком этаже расположена, номер комнаты, цену за сутки, класс, фамилию и паспортные данные гостя, его дату заселения и выселения)

Соседние файлы в предмете Объектно-ориентированное программирование