Цель проекта — создание библиотеки для системы управления отелем (PMS), которая будет предоставлять функционал для работы с бронированием, гостями, номерами, счетами и ресурсами. Ваша задача — спроектировать и реализовать основные модули системы, используя принципы объектно-ориентированного программирования.
Библиотека должна быть модульной, расширяемой и хорошо документированной. Она станет основой для создания полноценного приложения по управлению отелем.
Подробные сценарии использования и ожидаемое поведение системы можно найти в файле use_cases.MD.
Система состоит из следующих ключевых модулей:
-
Дата и время:
- Обработка операций с датами и временем.
- Поддержка временных промежутков и проверка их пересечения.
-
Номера:
- Управление доступностью номеров, их статусом и графиком уборки.
- Включить функционал для бронирования и проверки статуса номера.
-
Гости:
- Хранение информации о гостях и истории их посещений.
- Отслеживание баллов лояльности и взаимодействий.
-
Бронирование:
- Обработка резервирования номеров и процессов заселения/выселения.
- Точное отслеживание занятых и свободных номеров.
-
Счета:
- Управление счетами гостей, включая начисления и оплаты.
- Поддержка разделения счетов между несколькими гостями.
-
Ресурсы:
- Управление ресурсами отеля, такими как спа-процедуры, массажисты или оборудование.
- Поддержка бронирования ресурсов и проверки их доступности.
-
Горничные:
- Планирование и отслеживание графика уборки номеров.
- Назначение задач горничным на основе настроек системы.
- Использовать принципы объектно-ориентированного проектирования (наследование, композиция, агрегация).
- Обеспечить модульность: каждый модуль должен быть независимым и повторно используемым.
- Добавить управление настройками: позволить конфигурировать систему через внешний файл (например,
settings.ini). - (ОПЦИОНАЛЬНО) Предусмотреть обработку ошибок: система должна корректно обрабатывать некорректные входные данные и крайние случаи.
- (ОПЦИОНАЛЬНО) Реализовать юнит тесты: система должна удачно завершить все предусмотренные тесты, выполненные на базе уточненных Use Cases.
- Скомпилированная библиотека со всеми реализованными модулями.
- Документация в виде файла
README.md. - Следуйте лучшим практикам для структуры кода и соглашений об именах.
- Предоставьте решение в виде Git-репозитория с четкой историей коммитов.
- Разработайте пользовательский интерфейс и продемонстрируйте работу библиотеки.
Подробные сценарии использования и ожидаемое поведение системы можно найти в файле use_cases.MD.
/pms-library
│
├── README.md # Основное описание проекта
├── use_cases.md # Подробные сценарии использования
├── src/ # Исходный код библиотеки
│ ├── DateTime.cpp
│ ├── Room.cpp
│ └── ...
├── include/ # Заголовочные файлы
│ ├── DateTime.h
│ ├── Room.h
│ └── ...
├── tests/ # Юнит-тесты
│ ├── test_Room.cpp
│ └── ...
└── settings.ini # Файл настроек
Удачи, и приятного кодинга!
made with ❤️ by Safaroff