Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovaya (1).docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
290.94 Кб
Скачать

Инструкция к программе

При первом запуске программы требуется сделать запросы на создание маршрутов. Для этого надо зайти в программу под учётной записью Администратора. Введите логин: «Админ» и пароль «Админ». Добавьте несколько запросов и выйдите из программы. Добавленные данные сохранятся автоматически. Теперь зайдите под учётной записью Оператора (логин: Оператор и пароль: Оператор) и добавьте несколько остановок и рабочих смен к маршрутам. После этого гостю станут доступны для просмотра введённые данные. Их по прежнему можно будет редактировать, заходя под учётной записью Администратора или Оператора.

Общий алгоритм программы:

1. Аутентификация

2. Работа с программой

3. Завершение работы с сохранением её результатов

Алгоритм работы Администратора:

1. Аутентификация

2. Добавление, редактирование или удаления запросов

3. Завершение работы с сохранением её результатов

Алгоритм работы Оператора:

1. Аутентификация

2. Выбор запроса

3. Добавление, редактирование или удаление маршрутов и смен для выбраного запроса

4. Завершение работы с сохранением её результатов

Алгоритм работы Гостя:

1. Вход в программу

2. Просмотр имеющихся маршрутов и связаных с ними остановок

3. Просмотр имеющихся остановоко и связаных с ними маршрутов

4. Поиск маршрутов или остановок по файлам

5. Выход из программы

Полный алгоритм работы с программой:

Шаги Операции

1. Вводим логин и пароль в соответствии с полями и переходим к шагу 2.

2. Проверяем введённые данные на соответствие имеющимся. Если данные соответствуют записи Администратора, на шаг 3, если Оператора, на шаг 16, если была нажата кнопка «Гость», на шаг 29, иначе шаг 1.

3. Считываем данные запросов из файла «Запросы.bin» в вектор струтур. Выводим окно с таблицей запросов, хранящихся в этом векторе, и кнопки для операций добавления, редактирования и удаления запросов. Если администратор нажал кнопку «Добавить», переходим к шагу 4, если кнопку «Редактировать», к шагу 8, если кнопку «Удалить», к шагу 12, если кнопку «Закрыть» в верхнем правом углу окна, к шагу 15.

4. Выводим окно с полями для ввода информации запроса: пункт отправления, пункт назначения, номер маршрута, время в пути. Если администратор нажал кнопку «ОК», переходим к шагу 5, если кнопку «Отмена» или кнопку «Закрыть» в верхнем правом углу окна, к шагу 3.

5. Если данные не были введены или были введены не полностью, выводим сообщение с текстом «Введите значения!» и переходим к шагу 4, иначе к шагу 6.

6. Если номер маршрута введёных данных совпал совпал с номером маршрута каких-либо данных в векторе структур, выводим сообщение с текстом «Такие данные уже существуют» и переходим к шагу 3, иначе к шагу 7.

7. Добавляем введённые данные в конец вектора структур и обновляем таблицу запросов. Переходим к шагу 3.

8. Проверяем, выделена ли какая-либо строка в таблице запросов. Если да, то переходим к шагу 9, если нет, то выводим сообщение «Выберите данные для редактирования» и переходим к шагу 3.

9. Находим в векторе структру по индексу, соответсвующему номеру строки в таблице и выводим окно добавления запроса с полями, заполнеными данными из этой структуры. Переходим к шагу 10.

10. Если администратор нажал кнопку «ОК» переходим к шагу 11, если кнопку «Отмена» или кнопку «Закрыть» в верхнем правом углу окна, к шагу 3.

11. Если был изменён номер маршрута и такой номер уже существует в векторе структур, то выводим сообщение с текстом «Такие данные уже существуют» и переходим к шагу 3, иначе заменям старую структуру новой, обновляем таблицу запросов и переходим к шагу 3.

12. Если строка таблицы запросов не была выделена, выводим сообщение «Выберите данные для удаления» и переходим к шагу 3, иначе к шагу 13.

13. Выводим сообщение «Вы действительно хотите удалить этот маршрут» и кнопки «Да» и «Нет». Если администратор нажал кнопку «Да», переходим к шагу 14, иначе к шагу 3.

14. Находим в векторе структуру по индексу, соответсвующему номеру выделеной строки в таблице, удаляем её из вектора и обновляем таблицу запросов. Переходим к

шагу 3.

15. Синхронизируем данные запросов с данными маршрутов и рабочих смен, чтобы избежать утечки физической памяти. Перезаписываем файлы новыми данными. Выходим из программы.

16. Считываем данные запросов из файла «Запросы.bin» в вектор струтур. Выводим окно с таблицей запросов, хранящихся в этом векторе и кнопки «Маршруты» и «Смены». Если оператор нажал кнопку «Маршруты», переходим к шагу 17, если кнопку «Смены», к шагу %%, если кнопку «Закрыть» в верхнем правом углу окна, к шагу 15.

17. Если строка таблицы запросов не была выделена, выводим сообщение «Выберите данные для редактирования» и переходим к шагу 16, иначе к шагу 18.

18. Считываем данные запросов из файла «Маршруты.bin» в вектор структур. Выводим окно с таблицей маршрутов из вектора и кнопками «Добавить», «Редактировать» и «Удалить», а также с общей информацией о выбраном запросе. Если оператор нажал кнопку «Добавить», переходим к шагу 19, если кнопку «Редактировать», к шагу 21, если кнопку «Удалить», к шагу 25, если кнопку «Закрыть» в верхнем правом углу окна, к шагу 28.

19. Выводим окно «Добавление остановки» с полями: название остановки, время прибытия, время отправления. Если оператор нажал кнопку «ОК», переходим к шагу 20, если кнопку «Отмена» или кнопку «Закрыть» в верхнем правом углу окна, к шагу 18.

20. Сохраняем новые данные в отдельную структуру, добавляем эту структуру в конец вектора структур. Обновляем таблицу маршрутов. Переходим к шагу 18.

21. Проверяем, выделена ли какая-либо строка в таблице маршрутов. Если да, то переходим к шагу 22, если нет, то выводим сообщение «Выберите данные для редактирования» и переходим к шагу 18.

22. Находим в векторе структуру по индексу, соответсвующему номеру строки в таблице и выводим окно «Добавление остановки» с полями, заполнеными данными из этой структуры. Переходим к шагу 23.

23. Если администратор нажал кнопку «ОК» переходим к шагу 24, если кнопку «Отмена» или кнопку «Закрыть» в верхнем правом углу окна, к шагу 18.

24. Заменяем старую структуру новой и обновляем таблицу маршрутов. Переходим к шагу 18.

25. Если строка таблицы маршрутов не была выделена, выводим сообщение «Выберите данные для удаления» и переходим к шагу 18, иначе к шагу 26.

26. Выводим сообщение «Вы действительно хотите удалить эту остановку» и кнопки «Да» и «Нет». Если администратор нажал кнопку «Да», переходим к шагу 27, иначе к шагу 18.

27. Находим в векторе структуру по индексу, соответсвующему номеру выделеной строки в таблице, удаляем её из вектора и обновляем таблицу маршрутов. Переходим к шагу 18.

28. Перезаписываем файлы данными, зранящимися в векторе. Выходим из программы.

29. Считываем данные запросов из файла «Запросы.bin» в вектор структур. Выводим окно с таблицей запросов из вектора и кнопками «Маршруты», «Остановки» и «Подробнее», а также поле для ввода данных для поиска и кнопку «Поиск». Если гость нажал кнопку «Маршруты», переходим к шагу 30, если кнопку «Остановки», к шагу 31, если кнопку «Подробнее», к шагу 32, если кнопку «Закрыть» в верхнем правом углу окна, к шагу 37, если гость ввёл данные в поле и нажал кнопку поиск, переходим к шагу 35.

30. Считываем данные запросов из файла «Запросы.bin» в вектор структур. Выводим таблицу запросов из вектора.

31. Считываем данные маршрутов из файла «Маршруты.bin» в вектор структур. Выводим таблицу маршрутов из вектора.

32. Если строка таблицы маршрутов или таблицы запросов не была выделена, выводим сообщение «Выберите данные!» и переходим к шагу 29, иначе к шагу 33.

33. Если была выбрана строка таблицы запросов, выводим таблицу остановок, через которые проходит выделенный маршрут, если была выбрана строка таблицы маршрутов, выводим все маршруты, проходящие через эту остановку. Переходим к шагу 34.

34. Если была нажата кнопка «Закрыть» в правом вернем углу экрана, переходим к шагу 29.

35. Если была выведена таблица запросов, выполняем последовательный поиск по вектору структур запросов, если была выведена таблица маршрутов, выполняем последовательный поиск по вектору структур маршрутов. Находим результат и переходим к шагу 36.

36. Если искали в векторе структур запросов, выводим результат в таблицу запросов, иначе выводим результат в таблицу маршрутов. Переходим к шагу 29.

37. Выходим из программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]