Скачиваний:
23
Добавлен:
11.07.2021
Размер:
509.94 Кб
Скачать

3.2 Описание пользовательского интерфейса

Пользовательский интерфейс осуществлен с помощью системы меню.

Пользователю предлагается ввести имя файла, далее производится очистка экрана и вывод текста меню, включающий в себя следующие пункты:

1. Просмотр задания.

2. Создать и добавить.

3. Поиск рейса по временному промежутку.

4. Поиск рейса по номеру.

5. Поиск самого быстрого рейса.

6. Просмотр информации о рейсах.

7. Удаление.

8. Редактирование.

9. Выход.

Пользователь вводит номер пункта меню и вызывается соответствующая функция. Программа заканчивает работу, когда выбран пункт меню 9 – «Выход».

Работа с меню осуществляется с помощью функции menu(char* file_name).

4 Описание функций

4.1 Функция addInf(char* file)

Назначение: добавление новой информации в файл.

Входные данные: file – указатель на файл.

Выходные данные: отсутствуют.

Вспомогательные переменные:

– int i счетчик в цикле.

– int n количество новых записей.

Описание работы функции: открытие в режиме дополнения и проверка правильности открытия бинарного файла, куда будет добавляться информация. Далее вводится n, количество новых записей. С помощью цикла с счетчиком, который выполняется n раз, добавляется информация по рейсам в следующем порядке: name.arrivial – пункт прибытия, name.number – номер поезда, name.type – тип поезда, name.time_departure_hour – час времени отправления, name.time_departure_minute – минуты времени отправления, name.time_travel_hour – количество часов в пути, name.time_travel_minute – количество минут (без целых часов) в пути. Введенная информация по каждой структуре записывается в бинарный файл. Закрытие файла.

4.2 Функция ticketOut(struct train name)

Назначение: вывод структуры на экран.

Входные данные: name – переменная типа структуры.

Выходные данные: отсутствуют.

Вспомогательные переменные: отсутствуют.

Описание работы функции: чтобы сохранить правильный вид формата времени для минут, например, 12 часов 5 минут должно выглядеть таким образом «12:05», а не «12:5», использован вывод с помощью условия. В условии проверяется нужен ли при выводе 0, и если число меньше 10, то добавляется 0.

4.3 Функция show(char* file)

Назначение: вывод на экран содержимого файла в графленом виде.

Входные данные: file – указатель на файл.

Выходные данные: отсутствуют.

Вспомогательные переменные: отсутствуют.

Описание работы функции: открытие в режиме чтения и проверка правильности открытия файла. Вывод шапки таблицы. С помощью цикла с условием, чтение до конца файла, вывод содержимого таблицы, информация по каждой структуре выводится функцией ticketOut(struct train name). Закрытие файла.

4.4 Функция searchDeparture(char* file)

Назначение: нахождение рейсов в определенном временном промежутке.

Входные данные: file – указатель на файл.

Выходные данные: отсутствуют.

Вспомогательные переменные:

– int time_first_hour – час в начальной границе временного промежутка.

– int time_first_min – минуты в начальной границе временного промежутка.

– int time_second_hour – час в конечной границе временного промежутка.

– int time_second_min – минуты в конечной границе временного промежутка.

– int time_first – общее время в минутах начальной границы временного промежутка.

– int time_second – общее время в минутах конечной границы временного промежутка.

– int n – номер структуры, изначально равно 0.

– int nal – индикатор наличия подходящих рейсов, изначально равно 1.

– char station[15] – искомый пункт назначения.

Описание работы функции: открытие в режиме чтения и проверка правильности открытия бинарного файла. Ввод искомого пункта назначения station. Ввод начальной и конечной границы временного промежутка в формате часы и минуты через пробел соответственно time_first_hour, time_first_min, time_second_hour, time_second_min. Подсчет времени в минутах для каждой границы. В цикле с условием, чтение до конца файла, каждая структура проверяется сначала по совпадению пункта назначения рейса и искомого пункта назначения, затем на вхождения во временной промежуток с помощью подсчета времени в минутах. Если подходящие рейсы находятся, то при первом нахождении выводится шапка таблицы, индикатор n принимает значение 0, вывод структуры с помощью функции ticketOut(struct train name), вывод нижней границы таблицы. Если же подходящих рейсов не нашлось, то индикатор n не меняет своего значения, равен 1, выводится уведомление на экран «Подходящих рейсов не найдено, выберите другое время». Закрытие файла.

Соседние файлы в папке курсовая программирование на яву 1 курс