GitHunt
PA

PavelAlexee/Railway-station-management-system

Система управления железнодорожным вокзалом

📖 Описание

Добро пожаловать в проект "Система управления железнодорожным вокзалом" — консольное приложение, реализованное на языке программирования Ruby. Этот проект предназначен для отработки навыков и принципов программирования, включая:

  • Объектно-ориентированный дизайн
  • Композицию и наследование
  • Работа с исключениями
  • Принципы DRY (Don't Repeat Yourself), SoC (Separation of Concerns) и SOLID
  • Продвинутые техники, такие как метапрограммирование и работа с модулями
  • Чистый и читаемый стиль кода

🎮 Особенности

  • Консольный интерфейс для взаимодействия с пользователем
  • Обработка исключений для устойчивости приложения
  • Использование ООП для организации кода

✔️ Возможности

Управление станциями:

  • Создание станций: Пользователь может создать станцию, указав ее название.
  • Прием поездов: На станцию можно принимать поезда.
  • Просмотр поездов: Доступен список всех поездов, находящихся на станции в данный момент.
  • Фильтрация по типу: Пользователь может фильтровать поезда по типу (грузовые или пассажирские).
  • Отправка поездов: Поезда можно отправлять со станции.

Управление маршрутами:

  • Создание маршрутов: Пользователь может создать маршрут, указав начальную и конечную станции.
  • Добавление промежуточных станций: В маршрут можно добавлять промежуточные станции.
  • Удаление промежуточных станций: Также можно удалять промежуточные станции из маршрута.
  • Просмотр станций маршрута: Доступен список всех станций маршрута в порядке их следования.

Управление поездами:

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

🚀 Запуск

Для запуска системы необходимо открыть файл main.rb в вашей среде разработки или терминале и выполнить его.

ruby main.rb