Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Считывать значения из xml файлов - C++ / 20 сообщений из 20, страница 1 из 1
15.07.2018, 14:15
    #39674145
Iridze
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
Мне дали задание написать программу, которая находит лучшие варианты проезда поезда с пересадками между всеми возможными парами станций. Вся информация про переезды (станции с ценами, номера поездов, время отправления /прибытия). Я вроде бы понимаю, что должно быть в самой программе, но не могу понять, как считать данные из xml файла.
Буду благодарна за помощь.
...
Рейтинг: 0 / 0
15.07.2018, 14:34
    #39674150
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
Например Apache Xerces / Xalan.
Он вроде и для C++ существует (я для Java использовал).

http://xerces.apache.org/#xerces-c
...
Рейтинг: 0 / 0
15.07.2018, 14:45
    #39674153
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
...
Рейтинг: 0 / 0
15.07.2018, 16:19
    #39674169
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
Iridze, в твоей задаче само считывание из XML технически не является проблемой.

А вот вторая часть задания где написано
лучшие варианты проезда поезда с пересадками между всеми возможными парами станций

во много раз сложнее и комплекснее и подходить к ней можно с разными критериями.
На данный момент даже не ясно что такое "лучший" вариант. Вобщем если ты доберешся
до этой части то там будет самый настоящий треш.
...
Рейтинг: 0 / 0
15.07.2018, 16:37
    #39674174
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
maytonВобщем если ты доберешся до этой части то там будет самый настоящий треш.

Для сугубо учебной задачи особого трэша там не будет, поскольку вряд ли в задании будет
идти минимизация времени поездки (для неё нужно гораздо больше информации, чем есть). Судя
по упоминанию цены, это определение самого выгодного маршрута в плане денег. Значит можно
сделать граф со станциями в качестве вершин и маршрутами в качестве рёбер. Остальное дело
техники.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.07.2018, 16:41
    #39674176
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
Граф? Вершины? Вы серъезно? Для уровня этой девочки?
...
Рейтинг: 0 / 0
15.07.2018, 16:45
    #39674180
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
maytonГраф? Вершины? Вы серъезно?

Знаешь другие способы решения транспортных задач?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.07.2018, 16:55
    #39674184
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
Dimitry SibiryakovmaytonВобщем если ты доберешся до этой части то там будет самый настоящий треш.

Для сугубо учебной задачи особого трэша там не будет, поскольку вряд ли в задании будет
идти минимизация времени поездки (для неё нужно гораздо больше информации, чем есть). Судя
по упоминанию цены, это определение самого выгодного маршрута в плане денег. Значит можно
сделать граф со станциями в качестве вершин и маршрутами в качестве рёбер. Остальное дело
техники.

Не понятно )))

"...время отправления /прибытия..." ( C ) автор

говорит как бы о том, что есть желания "согласовывать" пересадки. Т.е. время поездки (и пересадок) возможно значимо.

Лично я похожую задачу решал в две стадии. Сначала находил все маршруты (было ограничение на кол-во пересадок), потом по маршрутам пытался согласовать время пересадки.

Строить граф с учетом времени, это уж сильно большой граф получается ((( IMHO Проще время вторым шагом обрабатывать. Тут правда еще есть проблема перехода через границу суток.

p.s. но у меня проект завершился на примерно 700 Kb работающих исходных кодов (+служебный код, эксперементы - еще 400-500 Kb) ))))
...
Рейтинг: 0 / 0
15.07.2018, 16:59
    #39674188
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
Dimitry SibiryakovmaytonГраф? Вершины? Вы серъезно?

Знаешь другие способы решения транспортных задач?..

Причём здесь я? Спроси знает ли топик стартер. У нее - первый курс. Основы.
...
Рейтинг: 0 / 0
15.07.2018, 17:07
    #39674195
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
Leonid KudryavtsevСтроить граф с учетом времени, это уж сильно большой граф получается

Он, конечно, получается больше, поскольку в качестве вершин придётся принимать моменты
прибытия-отправления и надо добавлять дополнительные связи возможных пересадок, но всё
равно это не так уж и сложно. В 700к исходников должно уложиться вместе со всей сервисной
обвязкой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.07.2018, 17:32
    #39674202
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
Dimitry SibiryakovОн, конечно, получается больше....но всё равно это не так уж и сложно. В 700к исходников должно уложиться вместе со всей сервисной
обвязкой.

Проблема не в сложности програмного кода, а в сложности вычислений.

Одно дело поиск маршрута по графу с 50 000 - 110 000 ребрами, а другое дело, по графу в несколько раз больше

Из Сиднея в Мельбурн некоторые авиа рейсы происходят раз в 15-20 минут. Скоростные поезда ходят примерно аналогично. Т.е. вместо одного ребра, получится черти что.

Кроме того, с одного рейса можно успеть на 100500 рейсов которые происходят после него. Т.ч. еще и теоретически не очень понятно, как же результирующий граф должен выглядить. Вариант "ближайший рейс на отправку" - не вариант. Т.к. если мы прибываем на станцию в 13:59, а рейс на который нужно пересесть, отправляется в 14:00 - то это не айс, мы телепортироваться между перронами не успеем ))))

По факту, после "коннекта по времени" у меня получилась до десятков миллионов вариантов пересадок (если посередине попадал перелет Сидней - Мелбурн ))) ). Представлять все эти десятки миллионов вариантов как ребра графа - безумее.

AFAIK
...
Рейтинг: 0 / 0
15.07.2018, 17:41
    #39674207
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
Dimitry SibiryakovОн, конечно, получается больше, поскольку в качестве вершин придётся принимать моменты
прибытия-отправления.....

AFAIK больше на 2-3 порядка. Соответственно и вычислительные затраты и потребление памяти - скорее всего будут так же резко больше. IMHO.


Аэропортов с кодами IATA в мире < 10 000. из них "живых" наверное около 3 тыс.
Табличка с авиамаршрутами по миру - 3 миллиона (возможно даже 5-6 миллионов).
...
Рейтинг: 0 / 0
15.07.2018, 18:08
    #39674213
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
Leonid KudryavtsevКроме того, с одного рейса можно успеть на 100500 рейсов которые происходят после него.
Т.ч. еще и теоретически не очень понятно, как же результирующий граф должен выглядить.
Вариант "ближайший рейс на отправку" - не вариант.

Это, конечно, да. Но можно ввести разумные ограничения на рёбра пересадки по времени. В
транзитном аэропорту вряд ли человек будет планировать зависнуть на пару суток (исключая
задержки рейсов, разумеется).

Leonid KudryavtsevПо факту, после "коннекта по времени" у меня получилась до
десятков миллионов вариантов пересадок (если посередине попадал перелет Сидней - Мелбурн
))) ). Представлять все эти десятки миллионов вариантов как ребра графа - безумее.
Да, десятки миллионов рёбер это сильная штука, в рил-тайме не просчитать. Но, думается,
что у автора и задача поскромнее, и пару минут она таки может потерпеть. При наличии
достаточного количества памяти тот же Форд-Фалкерсон за раз просчитывает все маршруты из
заданной точки в любую другую (или наоборот) и по быстродействию неплох, хоть и итерационный.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.07.2018, 09:46
    #39674375
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
Iridzeно не могу понять, как считать данные из xml файла.я использую boost/property_tree
...
Рейтинг: 0 / 0
16.07.2018, 13:38
    #39674475
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
IridzeМне дали задание написать программу, которая находит лучшие варианты проезда поезда с пересадками между всеми возможными парами станций . .... не могу понять, как считать данные из xml файла .


Только я ощущаю нелёгкий конгинивный диссонанс от такого контраста?
...
Рейтинг: 0 / 0
16.07.2018, 14:09
    #39674494
Iridze
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
MasterZiv, а что такого ужасного?
...
Рейтинг: 0 / 0
16.07.2018, 14:12
    #39674496
Iridze
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
MasterZiv, а что такого ужасного?
Я и раньше строила уже графы,С поменьше, но дело было.
Но вот ни разу не приходилось считывать с ХML.
В интернете есть много примеров для C#, про С++ не так уж и много инфы.
Нашла,что можно считывать используя TinyXML2, но решила еще и сюда написать, возможно есть еще варианты.
...
Рейтинг: 0 / 0
16.07.2018, 15:54
    #39674567
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
IridzeMasterZiv, а что такого ужасного?
Я и раньше строила уже графы,С поменьше, но дело было.
Но вот ни разу не приходилось считывать с ХML.
В интернете есть много примеров для C#, про С++ не так уж и много инфы.
Нашла,что можно считывать используя TinyXML2, но решила еще и сюда написать, возможно есть еще варианты.
Если в ваших xml есть namespaces или DTD то выбор сильно сужается. TinyXML2 не пойдет, так же как и boost/property_tree. Используйте libxml2 ну или MSXML если вы на Виндовсе.
ИМХО лучше изучать xml библиотеку с полной поддержкой XML стандарта.
...
Рейтинг: 0 / 0
16.07.2018, 16:12
    #39674580
blonduser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
Iridze,

Универсальная функция для считывания данных из любого файла.

fread_s
...
Рейтинг: 0 / 0
16.07.2018, 16:33
    #39674591
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Считывать значения из xml файлов - C++
IridzeMasterZiv, а что такого ужасного?
Я и раньше строила уже графы,С поменьше, но дело было.
Но вот ни разу не приходилось считывать с ХML.
В интернете есть много примеров для C#, про С++ не так уж и много инфы.
Нашла,что можно считывать используя TinyXML2, но решила еще и сюда написать, возможно есть еще варианты.
Ничего ужасного. Просто не надо писать лишнего. Вся прелюдия про поезда - это лишняя информация никак не связанная с сутью вопроса.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Считывать значения из xml файлов - C++ / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]