Непростая, но реализуемая.
Я бы хранил смещение от начала дня чтобы задать время отправления/прибытия в конкретный день
Храните где угодно - это не принципиально, ваш код модели должен уметь получить данные из того файла где ВАМ удобнее хранить
БД реляционная результаты выдаст быстрее и для диплома здесь бы хватило с крышей
Захотите вывести в таблицу ворда или чего еще - это уже чуть другая задача
Считывать из ворда / экселя - бред - долго читать, долго комбинировать, долго искать, а еще надо будет кешировать, оптимизировать - нафиг надо.
Для диплома запользуйте реляционную БД которую знаете.
Вы храните маршруты с временем прибытия/отправления, временем в пути, временем стоянки и все что необходимо в таблице "маршруты".
К маршрутам привязываются станции, где будут остановки.
Если человек хочет уехать сегодня - он выбрал метку времени, выбрал свою станцию, выбрал куда хочет попасть.
Дальше у вас будет задача найти все соответствия и написать сложную функцию подсчитывающую результативность выбора с той или иной стороны оценки - что-то будет дешевле (3 разных автобуса но зато за 10 рублей), что-то будет быстрее(за час например), что-то будет удобнее (сел ночью, утром на месте).
Задача не из простых, но когда сделаете сможете чуть ли не торговые маршруты считать, задача продается людям которые часто сигают через границу в соседнюю страну за покупками, задача продается игроманам космических игр, задача продается компаниям типа яндекса, но они не купят, у них своих головастиков с крышей.