Napište program pro zobrazení mapy cest mezi městy a vyhledávání optimální trasy podle zadaných kritérií.
Mapa je uložena ve formátu XML, jehož strukturu pochopíte z přiloženého ukázkového souboru.
Postupně implementujte následující funkce:
Načtení dat ze souboru zvoleného uživatelem.
Program graficky zobrazí mapu obsahující jednotlivá města.
Program zobrazí cesty mezi jednotlivými městy. Zobrazení cest může uživatel zapínat/vypínat. Program může graficky rozlišit rychlost dosažitelnou na jednotlivých cestách.
Program pro každé město umožní pohodlně zjistit cesty do okolních měst, jejich délku a dobu jízdy.
Program umožní uživateli vybrat města, kde má začínat a končit cesta.
Program navrhne a vypíše optimální trasu podle uživatelem zvoleného kritéria (nejkratší, nejrychlejší, nejlevnější). Cena cesty mezi sousedními městy se určuje na základě průměrné rychlosti a spotřeby paliva pro danou rychlost.
Program zobrazí na mapě nalezenou trasu.
Program umožní uložení nalezené optimální trasy do uživatelem zvoleného souboru ve formátu XML.
Formáty vstupních i výstupních souborů XML jsou samopopisné, prostudujte si ukázkové soubory.
Příklad 1. Ukázka datového souboru s mapou
<?xml version="1.0" encoding="windows-1250"?>
<mapa>
<mesta>
<mesto>
<nazev>Aš</nazev>
<polohaX>8</polohaX>
<polohaY>-20</polohaY>
</mesto>
<mesto>
<nazev>Brno</nazev>
<polohaX>270</polohaX>
<polohaY>80</polohaY>
</mesto>
...
</mesta>
<cesty>
<cesta>
<z>Aš</z>
<do>Cheb</do>
<vzdalenost>24</vzdalenost>
<prumernaRychlost>70</prumernaRychlost>
</cesta>
<cesta>
<z>Brno</z>
<do>Břeclav</do>
<vzdalenost>61</vzdalenost>
<prumernaRychlost>130</prumernaRychlost>
</cesta>
...
</cesty>
<spotreby>
<spotreba>
<rychlost>60</rychlost>
<litru>5</litru>
</spotreba>
<spotreba>
<rychlost>70</rychlost>
<litru>5.5</litru>
</spotreba>
...
</spotreby>
</mapa>Příklad 2. Ukázka formátu pro uložení nalezené cesty
<?xml version="1.0" encoding="windows-1250"?>
<cesta>
<z>Plzeň</z>
<do>Brno</do>
<pres>Praha</pres>
<!-- Element <pres> se může opakovat a obsahuje postupně všechna
města, přes která se jede. -->
<vzdalenost>282</vzdalenost>
<dobaJizdy>2:10</dobaJizdy>
<spotreba>28.2</spotreba>
</cesta>Na řešení úlohy máte 4 hodiny čistého času. Za každou úlohu můžete dostat maximálně 10 bodů, z nichž 6 bodů je vyhrazeno na ohodnocení funkčnosti programu a jeho shody se zadáním, 3 body na efektivitu a jeden bod na dokumentaci a přehlednost zdrojového kódu.