Разработка программы "расписание поездов"
Автор: sophi123123 • Январь 4, 2023 • Курсовая работа • 10,427 Слов (42 Страниц) • 235 Просмотры
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОМУ ПРОЕКТУ |
РАЗРАБОТКА ПРОГРАММЫ«РАСПИСАНИЕ ПОЕЗДОВ» |
по дисциплине: ОСНОВЫ ПРОГРАММИРОВАНИЯ |
Содержание
Приложение 1 (листинг) | 3 3 5 10 11 21 22 23 |
- Постановка задачи
1.1 Задачей курсового проекта является разработка программы для заданной предметной области «Расписание поездов» с использованием заданных структур данных, которая позволяет вводить информацию, хранить еѐ в текстовом файле, осуществлять поиск, модификацию, сортировку и удаление данных
1.2 Тип хранимой информации и задание на поиск определяются в соответствии с номером варианта
Вариант 7
Предметная область – «Расписание поездов». Данные о маршруте поезда хранятся в структуре TRAIN, содержащей следующие поля:
∙ название пункта назначения;
∙ номер поезда;
∙ время отправления.
Задание на поиск: найти поезда, направляющиеся в пункт, название которого введено с клавиатуры.
- Описание структур данных
Для записи и сохранения БД используется текстовый файл, имя которого вводится пользователем
Для добавления записей из текстового файла из БД необходимо, чтобы данные в файле имели вид:
Между элементами каждой записи должно быть не менее 2 пробелов или «|». Например Moscow | Y67 | Friday 00:00
Максимальное и минимальное значение размера номера поезда определяется:
const int MAX_TRAIN_NUMBER_SIZE = 10;
const int MIN_TRAIN_NUMBER_SIZE = 1;
Номер поезда не может содержать пробелы и должен состоять только из цифр или латинских букв
Максимальное и минимальное значение размера пункта назначения определяется:
const int MAX_DESTINATION_SIZE = 20;
const int MIN_DESTINATION_SIZE = 2;
Пункт назначения не может содержать более 1 пробела подряд и должен состоять только из латинских букв
Формат времени: <день недели> время. Например Friday 16:16
Класс DataBase – структура данных, которая является односвязным списком, содержащим элементы типа TRAIN, это список, хранящий записи о каждом поезде, отправляющемся куда-либо.
Класс содержит:
приватный класс TRAIN
указатель на голову списка - TRAIN *head
размер списка - int Size
А также методы:
- bool IsEmpty() – метод для проверки БД на пустоту
Возвращает true, если БД пустая, false – если нет
- int AddElement(string destination, string train_number, string depacture_time) – добавление элемента типа TRAIN
Аргументы: пункт назначения, номер поезда, время отправления
- void RemoveElement(string dst, string t_num, string d_time);
Удаление элемента типа TRAIN
Аргументы: пункт назначения, номер поезда, время отправления
- void PutDataBaseToFileOrScreen(T &stream);
Вывод всех элементов списка в поток, который указан аргументом метода(файл, экран)
- void SearchByDest(string destination);
Поиск всех поездов, пункт назначения которых совпадает с заданным в аргументах метода
- void EditMode(string dst, string t_num, string d_time);
Редактирование элемента типа TRAIN(находит запрашиваемый элемент и просит ввести данные заново)
NOTE: если какой то элемент изменять не нужно, можно просто ввести skip
Аргументы: пункт назначения, номер поезда, время отправления
- void SortElements();
Сортирует элементы по пункту назначения
- Приватный метод TRAIN* SearchAll(string dst, string t_num, string d_time)
Необходим для поиска элемента типа TRAIN, если элемент нашелся – возвращает на него указатель, если нет – возвращает nullptr
...