<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">procyber</journal-id><journal-title-group><journal-title xml:lang="ru">Вестник кибернетики</journal-title><trans-title-group xml:lang="en"><trans-title>Proceedings in Cybernetics</trans-title></trans-title-group></journal-title-group><issn pub-type="epub">1999-7604</issn><publisher><publisher-name>Бюджетное учреждение высшего образования Ханты-Мансийского автономного округа – Югры «Сургутский государственный университет»</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.35266/1999-7604-2025-3-1</article-id><article-id custom-type="elpub" pub-id-type="custom">procyber-694</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>ТЕХНИЧЕСКИЕ НАУКИ</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>Engeneering</subject></subj-group></article-categories><title-group><article-title>Разработка системы бронирования железнодорожных билетов с использованием Java Swing</article-title><trans-title-group xml:lang="en"><trans-title>Development of railway ticket booking system using Java Swing</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0009-0007-4463-6050</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Богнюков</surname><given-names>А. А.</given-names></name><name name-style="western" xml:lang="en"><surname>Bognyukov</surname><given-names>A. A.</given-names></name></name-alternatives><bio xml:lang="ru"><p>студент</p></bio><bio xml:lang="en"><p>Student</p></bio><email xlink:type="simple">bogniukovv@gmail.com</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0009-0002-3875-9285</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Зорькин</surname><given-names>Д. Ю.</given-names></name><name name-style="western" xml:lang="en"><surname>Zorkin</surname><given-names>D. Yu.</given-names></name></name-alternatives><bio xml:lang="ru"><p>старший преподаватель</p></bio><bio xml:lang="en"><p>Lecturer</p></bio><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-4694-2645</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Самофалова</surname><given-names>Л. В.</given-names></name><name name-style="western" xml:lang="en"><surname>Samofalova</surname><given-names>L. V.</given-names></name></name-alternatives><bio xml:lang="ru"><p>старший преподаватель</p></bio><bio xml:lang="en"><p>Senior Lecturer</p></bio><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Волгоградский государственный технический университет, Волгоград</institution><country>Россия</country></aff><aff xml:lang="en"><institution>Volgograd State Technical University, Volgograd</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2025</year></pub-date><pub-date pub-type="epub"><day>14</day><month>10</month><year>2025</year></pub-date><volume>24</volume><issue>3</issue><fpage>6</fpage><lpage>16</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Богнюков А.А., Зорькин Д.Ю., Самофалова Л.В., 2025</copyright-statement><copyright-year>2025</copyright-year><copyright-holder xml:lang="ru">Богнюков А.А., Зорькин Д.Ю., Самофалова Л.В.</copyright-holder><copyright-holder xml:lang="en">Bognyukov A.A., Zorkin D.Y., Samofalova L.V.</copyright-holder><license license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://www.vestcyber.ru/jour/article/view/694">https://www.vestcyber.ru/jour/article/view/694</self-uri><abstract><p>В данной статье представлена разработка информационной системы для онлайн-бронирования железнодорожных билетов на языке Java с использованием библиотеки Swing. Цель работы – решение задач цифровизации транспортных услуг, обеспечивающей пользователям удобство, скорость и надежность. В статье сформулированы функциональные требования к системе (регистрация, поиск маршрутов, управление бронированиями) и детально описана архитектура на основе объектно-ориентированного программирования. Проектирование включает интуитивный графический интерфейс с валидацией данных, динамическим обновлением списка мест и модулем просмотра фотоальбома вокзалов. Визуализация структуры системы выполнена с помощью диаграмм использования вариантов. Модульность и кросс-платформенность обеспечивается благодаря компонентам Swing. Данные хранятся в файлах для хранения структурированных табличных данных, что упрощает интеграцию. Тестирование подтвердило корректность работы модулей, включая обработку исключений и синхронизацию операций. Практическая значимость заключается в возможности внедрения системы в реальные сервисы. Перспективы развития: интеграция с интерфейсом прикладного программирования, мобильная версия, рекомендательные алгоритмы и переход на облачные базы данных. Результаты демонстрируют эффективность Java Swing для создания сложных приложений с графическим интерфейсом в транспортной логистике.</p></abstract><trans-abstract xml:lang="en"><p>The paper presents the development of an information system for online railway tickets booking in Java Swing library. The goal is to provide users with convenient, fast and reliable service by solving problems in transport services’ digitalization. The authors indicate the functional specifications for the system (registration, route search, booking management) and specify the object-oriented programming architecture. The design includes an intuitive graphical interface with data validation, dynamic updating of the locations’ list and a module for viewing the train stations’ photo album. Unified modeling language (UML) diagrams create a visualization of the system structure. The modularity and cross-platform compatibility are provided through the use of Swing components. Comma-separated values (CSV) store the data, thus simplifying integration. Testing confirms the correct operation of the modules, including exception handling and operations’ synchronization. The system’s integration into real services has practical significance. Prospects involve integrating with Application programming interface (API) payment methods, having a mobile version, employing recommendation algorithms, and switching to cloud databases. The results demonstrate the Java Swing effectiveness for developing graphical user interface (GUI) applications in transport logistics.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>Java Swing</kwd><kwd>бронирование билетов</kwd><kwd>железнодорожный транспорт</kwd><kwd>GUI</kwd><kwd>информа- ционные системы</kwd><kwd>программирование</kwd><kwd>UML</kwd></kwd-group><kwd-group xml:lang="en"><kwd>Java Swing</kwd><kwd>ticket booking</kwd><kwd>railway transport</kwd><kwd>GUI</kwd><kwd>information systems</kwd><kwd>programming</kwd><kwd>UML</kwd></kwd-group></article-meta></front><body><sec><title>ВВЕДЕНИЕ</title><p>Нынешняя эпоха информационных технологий диктует высокие требования к качеству и удобству пользовательских приложений, особенно в сфере автоматизации повседневных сервисов. Одной из актуальных областей является организация онлайн-бронирования транспортных средств, где удобный и интуитивно понятный интерфейс играет решающую роль в повышении удовлетворенности пользователей и оптимизации рабочих процессов. Разработка графического пользовательского интерфейса для бронирования железнодорожных билетов представляет собой важную задачу, которая требует объединения современных методов проектирования программного обеспечения с практическими потребностями транспортной отрасли [<xref ref-type="bibr" rid="cit1">1</xref>].</p><p>Постановка задачи заключается в разработке приложения для бронирования железнодорожных билетов, обеспечивающего удобство и надежность работы пользователей. Система реализует регистрацию и авторизацию, выбор маршрута, даты поездки, типа вагона и места, а также управление бронированиями.</p><p>Для создания графического интерфейса используется Java Swing, обеспечивая гибкость и масштабируемость системы. Особое внимание уделяется навигации между основными разделами: главным меню, формами входа и регистрации, экраном бронирования и личным кабинетом. Также предусмотрены функции просмотра забронированных билетов, их отмены и проверки статуса поездов.</p><p>В ходе разработки создаются диаграммы использования вариантов (UML-диаграммы) для визуализации архитектуры системы, а также анализируются существующие решения в сфере бронирования. Разработка демонстрирует применение принципов объектно-ориентированного программирования (ООП) и интеграцию различных модулей, что позволит адаптировать систему к изменяющимся требованиям рынка.</p></sec><sec><title>МАТЕРИАЛЫ И МЕТОДЫ</title><p>Проведенный обзор подтвердил эффективность объектно-ориентированного подхода и Java Swing для разработки приложений с графическим интерфейсом (GUI-приложений) в транспортной сфере [<xref ref-type="bibr" rid="cit2">2</xref>][<xref ref-type="bibr" rid="cit3">3</xref>]. Исследования К. Коузена (2018) и И. А. Баркова (2023) демонстрируют, что ООП обеспечивает гибкость и масштабируемость систем бронирования. Данная научная работа [<xref ref-type="bibr" rid="cit4">4</xref>] выделяет потенциал интеграции с облачными сервисами для обработки больших данных, что актуально для цифровизации транспортных услуг. Указанные методы легли в основу архитектуры системы, сочетающей классические принципы ООП с современными требованиями к модульности.</p><p>Разработан интуитивный интерфейс с ключевыми модулями:</p><p>Использованы стандартные компоненты Swing для обеспечения кросс-платформенности и отзывчивости.</p><p>Диаграмма вариантов использования (или use case diagram) является одним из важных инструментов моделирования в методологии Unified Modeling Language (UML). Она используется для описания функциональности системы с точки зрения ее взаимодействия с внешними сущностями, называемыми акторами. Акторы представляют роли, которые взаимодействуют с системой, и могут быть как людьми, так и внешними системами.</p><p>Диаграмма вариантов использования помогает установить, как различные виды пользователей будут взаимодействовать с системой и какие действия они совершат [<xref ref-type="bibr" rid="cit4">4</xref>]. Это позволяет лучше понять требования к системе, определить основные функциональные возможности и обеспечить их соответствие потребностям пользователей [<xref ref-type="bibr" rid="cit5">5</xref>] (рис. 1).</p><fig id="fig-1"><caption><p>Рис. 1. Диаграмма вариантов использования для информационной системы по бронированию ж/д билетов</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g001.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/mF7qAnAs7DS6Ad3VxMkXfKrlFbAwqnzN6bWffpKa.jpeg</uri></graphic></fig><p>Основной поток:</p><p>Альтернативные сценарии:</p><p>Диаграмма классов (class diagram) – статическая диаграмма, являющаяся основным логическим представлением системы. Диаграмма классов позволяет понять структуру системы, определить классы объектов, их атрибуты и методы, а также взаимосвязи между классами (рис. 2). Это полезный инструмент для анализа, проектирования и документирования программных систем [<xref ref-type="bibr" rid="cit7">7</xref>]. </p><fig id="fig-2"><caption><p>Рис. 2. Диаграмма классов для информационной системы по бронированию ж/д билетов</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g002.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/GfTsDND1U8FqmxKSO1UJKBeVp8TnGUYpjIZb5auy.jpeg</uri></graphic></fig><p>Сервис Аутентификации – отвечает за вход, регистрацию и сброс пароля. Методы возвращают или проверяют объекты типа «Пользователь». </p><p>Пользователь – представляет как Гостя, так и зарегистрированного пользователя. Помимо стандартных методов регистрации, входа и выхода, содержит методы для просмотра фотоальбома, проверки наличия мест, бронирования билета и отмены брони [<xref ref-type="bibr" rid="cit8">8</xref>].</p><p>Билет – содержит информацию о поездке (дату, время, номер места, статус) и связан с конкретным маршрутом. Билет используется как бронь.</p><p>Маршрут – содержит сведения о маршруте (станции, время отправления/прибытия).</p><p>Сервис Бронирования – реализует логику проверки наличия мест, оформления брони и ее отмены. Методы работают с объектами «Пользователь» и «Билет».</p><p>Фотоальбом и Фото – отвечают за отображение галереи вокзалов.</p><p>Ассоциации отражают направленность связей:</p></sec><sec><title>РЕЗУЛЬТАТЫ И ИХ ОБСУЖДЕНИЕ</title><p>Приложение разработано на Java с использованием Swing. Архитектура основана на принципе разделения ответственности, что обеспечило модульность и упростило поддержку системы. Ключевые компоненты (рис. 3):</p><p>– MainFrame: Главный контейнер (управление панелями через CardLayout, хранение глобальных данных).</p><p>– TopPanel: Отображение информации о пользователе и кнопки выхода.</p><p>– MainPanel: Стартовое меню (вход, регистрация, проверка мест, фотоальбом).</p><p>– LoginPanel/RegisterPanel: Авторизация и регистрация с валидацией данных.</p><p>– BookingPanel: Бронирование билетов (выбор параметров, проверка мест, запись в файл).</p><p>– BookingMenuPanel: Управление бронированиями для авторизованных пользователей.</p><p>– AlbumPanel: Просмотр фотоальбома вокзалов.</p><p>– AuthService: Логика работы с учетными данными (users.csv).</p><p>– HoverEffects: Стилизация интерфейса (эффекты наведения, скругленные контейнеры). </p><fig id="fig-3"><caption><p>Рис. 3. Полученная структура классов графического пользовательского интерфейса</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g003.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/2jntbjNUNv3CjpuOaAgbc111Q0nRolKvQDh6ZiXc.jpeg</uri></graphic></fig><p>Главный класс MainFrame служит контейнером для всех панелей пользовательского интерфейса и реализует механизм навигации между ними посредством CardLayout. Он также хранит глобальное состояние (например, имя текущего пользователя) и обеспечивает корректное обновление верхней панели через вызов метода topPanel.updateProfile (). Особое внимание уделено обработке события нажатия клавиши ESC, чтобы в зависимости от состояния авторизации пользователь не мог вернуться к начальному экрану, если уже авторизован. </p><p>Модуль TopPanel отвечает за отображение верхней части интерфейса, включающей кнопку с иконкой аккаунта и приветственное сообщение. При обновлении профиля через метод updateProfile (String username) панель скрывает или отображает данные компоненты в зависимости от наличия имени пользователя. При выходе из аккаунта данные сбрасываются, что приводит к скрытию иконки и надписи (рис. 4). </p><fig id="fig-4"><caption><p>Рис. 4. Пример отображения верхней панели с элементами профиля</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g004.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/AcTP6HgDHJt9YDCM5C64fgE2vCriqEPHIKc5DToS.jpeg</uri></graphic></fig><p>MainPanel реализует стартовый экран приложения. Здесь расположены кнопки для перехода к авторизации, регистрации, проверки статуса поезда и просмотра фотоальбома. Данный модуль предоставляет интуитивно понятный интерфейс для первичного взаимодействия пользователя с системой (рис. 5). </p><fig id="fig-5"><caption><p>Рис. 5. Внешний вид главной панели приложения</p><p>Примечание: составлено авторами. </p></caption><graphic xlink:href="procyber-24-3-g005.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/TKgZ9xRsXtew59zaUrgSjxMRS5q5KffZmZc70oI6.jpeg</uri></graphic></fig><p>Панели LoginPanel и RegisterPanel обеспечивают сбор учетных данных пользователя для входа и регистрации соответственно. В LoginPanel реализована логика обращения к AuthService для проверки корректности введенных данных, а в RegisterPanel дополнительно производится валидация e-mail с использованием регулярного выражения. Оба модуля оповещают пользователя об успешном выполнении или ошибке посредством диалоговых окон (рис. 6, 7). </p><fig id="fig-6"><caption><p>Рис. 6. Пример формы регистрации пользователя (RegisterPanel)</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g006.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/pMJGvtkquSJiOa0fi8UdUScC6AbYFnGgscxD9hcG.jpeg</uri></graphic></fig><fig id="fig-7"><caption><p>Рис. 7. Пример формы входа пользователя (LoginPanel)</p><p>Примечание: составлено авторами. </p></caption><graphic xlink:href="procyber-24-3-g007.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/EqfRONroElxCPUmdKnE59vBfxUBU8psHPjniwBJO.jpeg</uri></graphic></fig><p>BookingPanel предназначена для оформления брони. Здесь реализовано:</p><p>– выбор станций отправления и прибытия;</p><p>– выбор даты отправления и, при необходимости, даты возврата;</p><p>– выбор типа вагона и номера вагона;</p><p>– выбор места с динамическим обновлением доступных мест (на основе данных, считанных из файла bookings.txt);</p><p>– логика сохранения информации о брони в файл и оповещение пользователя о результате операции.</p><p>Кроме того, в BookingPanel реализована функция проверки статуса поезда, которая отображает количество забронированных билетов и оставшиеся свободные места (рис. 8, 9). </p><fig id="fig-8"><caption><p>Рис. 8. Пример формы меню бронирования билетов</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g008.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/dASbnN1Erp2gVTW6GPjArRUVoLUZ4lVF5ARd0alw.jpeg</uri></graphic></fig><fig id="fig-9"><caption><p>Рис. 9. Забронированный билетв файле bookings.txt</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g009.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/ODwIcorLZ0MnvUVIaQKUy751WQLSOiQrsuSpRXFT.jpeg</uri></graphic></fig><p>Модуль BookingMenuPanel предназначен для предоставления дополнительных возможностей авторизованному пользователю. Здесь реализована функция просмотра забронированных билетов, которая считывает данные из файла и отображает их в виде таблицы с возможностью возврата брони. Также с этой панели пользователь может перейти к оформлению новой брони, проверить статус поезда или просмотреть фотоальбом (рис. 10). </p><fig id="fig-10"><caption><p>Рис. 10. Пример интерфейса панели меню бронирования</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g010.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/wtZa43zhLkSL8vnU9xVkvBVlb9FcHkud0qA8ZhyW.jpeg</uri></graphic></fig><p>AlbumPanel реализует функционал фотоальбома вокзалов. Модуль позволяет пользователю просматривать изображения вокзалов с поддержкой переключения с помощью кнопок (и клавиатурных стрелок). Для масштабирования изображений используется метод scaleImageIcon (), обеспечивающий плавное отображение фото в заданном разрешении (рис. 11). </p><fig id="fig-11"><caption><p> Рис. 11. Пример интерфейса фотоальбома</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g011.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/Ys6VBaUTEk49KJJl4tPotsEnbBRgaSjq8lM1LQFk.jpeg</uri></graphic></fig><p>AuthService представляет собой сервис для работы с учетными записями пользователей. Реализованные методы включают регистрацию, вход и сброс пароля, при этом данные пользователей хранятся в файле users.csv. Логика проверки существования пользователя и корректности учетных данных реализована посредством чтения и записи в файл (рис. 12). </p><fig id="fig-12"><caption><p> </p><p>Рис. 12. Запись данных пользователяв файле users.csv</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g012.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/aLCwguXnRhZJDbCJKQrb3Z8n4k7IuSHisfGtJ03Y.jpeg</uri></graphic></fig><p>Класс HoverEffects содержит утилитные методы для стилизации компонентов интерфейса, таких как добавление эффекта подчеркивания при наведении, создание кнопок с иконками, а также обертывание панелей в скругленные контейнеры для улучшения визуального восприятия (рис. 13). </p><fig id="fig-13"><caption><p> Рис. 13. Пример работы эффекта подчеркивания при наведении на иконку «Домой»</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g013.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/fG4WOWEoJMlnlaHu0qMnUKDgM9Wqf5S4tEjnbQt1.jpeg</uri></graphic></fig><p>Интеграция модулей обеспечивается через класс MainFrame, который связывает все панели с помощью CardLayout. Каждый модуль взаимодействует с MainFrame для получения общего состояния (например, имени пользователя) и перехода между экранами. Сервисы AuthService и BookingService вызываются из соответствующих панелей, что позволяет реализовать чистую архитектуру и модульное тестирование.</p><p>Для тестирования были разработаны следующие сценарии:</p><p>Проверим все возможности регистрации и авторизации. Если пользователь захочет зарегистрировать новый аккаунт, но этот адрес электронной почты уже есть в «базе данных», программа выдаст ошибку регистрации «Пользователь с таким адресом уже зарегистрирован» (рис. 14). </p><fig id="fig-14"><caption><p> Рис. 14. Попытка зарегистрировать второй аккаунт с одним адресом электронной почты</p><p>Примечание: составлено авторами. </p></caption><graphic xlink:href="procyber-24-3-g014.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/PRYBrR0Pb2kECzNkm0cwknv0ZkBmHbUqrmcOE624.jpeg</uri></graphic></fig><p>Если пользователь забыл пароль – ему покажется диалоговое окно «Неверный адрес электронной почты или пароль» (рис. 15). </p><fig id="fig-15"><caption><p> Рис. 15. Попытка авторизоваться с неверным паролем</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g015.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/RSmU4CevkqDNotsh8RRIh5YkqzDVPOgCwT19cdCT.jpeg</uri></graphic></fig><p>Для восстановления пароля необходимо ввести e-mail и имя пользователя, указанные при регистрации (рис. 16). </p><fig id="fig-16"><caption><p> Рис. 16. Меню ввода данных для восстановления пароля</p><p>Примечание: составлено авторами. </p></caption><graphic xlink:href="procyber-24-3-g016.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/Wo18pHJgoHBfvoBuOCHuVk2DEe2XOIZiA7dG1ooH.jpeg</uri></graphic></fig><p>Если данные корректны, система предоставляет возможность сменить пароль (рис. 17). </p><fig id="fig-17"><caption><p> Рис. 17. Меню сброса пароля</p><p>Примечание: составлено авторами. </p></caption><graphic xlink:href="procyber-24-3-g017.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/0JvLWYsIImx90S3eo9YetgYZlj608d8bKtVHCmWa.jpeg</uri></graphic></fig><p>Если пользователь забронирует билет, то в следующий раз это забронированное место пропадет из списка (рис. 18). </p><fig id="fig-18"><caption><p> Рис. 18. Список доступных мест после бронирования</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g018.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/RS2gNfGjETmwjtvdCF9GRb02XAgJ3XmfXCfMMXq0.jpeg</uri></graphic></fig><p>Если пользователи забронируют все билеты на конкретный поезд, то появится надпись «Все билеты забронированы» (рис. 19). </p><fig id="fig-19"><caption><p> Рис. 19. Сообщение «Все билеты забронированы»</p><p>Примечание: составлено авторами. </p></caption><graphic xlink:href="procyber-24-3-g019.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/kB0qjmeGG1TBKsZbSZQNXuUui6ydW2Wg8PfqIjSY.jpeg</uri></graphic></fig><fig id="fig-20"><caption><p>Рис. 20. Проверка механизма отображения и возврата брони</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-24-3-g020.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/lTW7JCAzX1abeS3GjyzLuZucbrmeGJ9nch9J6ho2.jpeg</uri></graphic></fig><p>В результате реализации системы был достигнут высокоуровневый уровень модульности, что позволило разделить функциональность на логически независимые блоки. Каждый модуль отвечает за свою область ответственности: от управления навигацией до обработки учетных данных и оформления брони. Проведенное функциональное тестирование подтвердило корректность работы системы, стабильность ее функционирования и удобство использования конечным пользователем.</p></sec><sec><title>ЗАКЛЮЧЕНИЕ</title><p>Результаты тестирования подтвердили корректность работы всех функциональных модулей. Были проверены сценарии регистрации, авторизации, оформления и отмены бронирования, а также взаимодействие с файлами данных. Приложение демонстрирует надежность и производительность, а его архитектура соответствует принципам модульности, что облегчает его поддержку и дальнейшее развитие.</p><p>Таким образом, поставленные задачи были успешно выполнены, а разработанное программное обеспечение может быть использовано как основа для дальнейшего расширения системы, в том числе путем интеграции с внешними сервисами и добавления дополнительных функций, таких как онлайн-оплата и динамическое обновление данных о расписании поездов. </p></sec></body><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Андреева Т. И. Частный железнодорожный транспорт Сибири : моногр. Барнаул : АлтГПУ, 2021. 276 с.</mixed-citation><mixed-citation xml:lang="en">Андреева Т. И. Частный железнодорожный транспорт Сибири : моногр. Барнаул : АлтГПУ, 2021. 276 с.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Коузен К. Современный Java: рецепты программирования. М. : ДМК Пресс, 2018. 275 с.</mixed-citation><mixed-citation xml:lang="en">Коузен К. Современный Java: рецепты программирования. М. : ДМК Пресс, 2018. 275 с.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Москвитин А. А. Данные, информация, знания: методология, теория, технологии : моногр. 2-е изд., стер. СПб. : Лань, 2023. 236 с.</mixed-citation><mixed-citation xml:lang="en">Москвитин А. А. Данные, информация, знания: методология, теория, технологии : моногр. 2-е изд., стер. СПб. : Лань, 2023. 236 с.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Lalović K. G., Bogdanoski M. Z. Java GUI application for comparing the levels of biometric security: Fingerprint vs. Iris // Vojnotehnički glasnik. 2021. Vol. 69, no. 3. P. 676–686. https://doi.org/10.5937/vojtehg69-32007.</mixed-citation><mixed-citation xml:lang="en">Lalović K. G., Bogdanoski M. Z. Java GUI application for comparing the levels of biometric security: Fingerprint vs. Iris // Vojnotehnički glasnik. 2021. Vol. 69, no. 3. P. 676–686. https://doi.org/10.5937/vojtehg69-32007.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Рамальо Л. Python – К вершинам мастерства. Лаконичное и эффективное программирование / пер. с англ. А. А. Слинкина. 2-е изд. М. : ДМК Пресс, 2022. 898 с.</mixed-citation><mixed-citation xml:lang="en">Рамальо Л. Python – К вершинам мастерства. Лаконичное и эффективное программирование / пер. с англ. А. А. Слинкина. 2-е изд. М. : ДМК Пресс, 2022. 898 с.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Буч Г., Рамбо Д., Якобсон И. Язык UML. Руководство пользователя : руководство / пер. с англ. Н. Мухина. 2-е изд. М. : ДМК Пресс, 2006. 496 с.</mixed-citation><mixed-citation xml:lang="en">Буч Г., Рамбо Д., Якобсон И. Язык UML. Руководство пользователя : руководство / пер. с англ. Н. Мухина. 2-е изд. М. : ДМК Пресс, 2006. 496 с.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Харрис Д. М., Харрис С. Л. Цифровая схемотехника и архитектура компьютера / пер. с англ. Imagination Technologies. М. : ДМК Пресс, 2017. 792 с.</mixed-citation><mixed-citation xml:lang="en">Харрис Д. М., Харрис С. Л. Цифровая схемотехника и архитектура компьютера / пер. с англ. Imagination Technologies. М. : ДМК Пресс, 2017. 792 с.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Бурмистров А. В. Программирования на языке JAVA. Методические указания к лабораторным работам : методические указания. Пенза : ПензГТУ, 2014. 150 с.</mixed-citation><mixed-citation xml:lang="en">Бурмистров А. В. Программирования на языке JAVA. Методические указания к лабораторным работам : методические указания. Пенза : ПензГТУ, 2014. 150 с.</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
