1. Należy stworzyć oraz zachować w pliku (plikach) o dowolnie wybranym formacie
listę połączeń kolejowych, spełniajacych zadane warunki:
każde połączenie obsługiwane jest przez jeden pociąg o charakterystycznej
nazwie (np. "Ekspres >>Bieszczady<<")
każde połączenie przebiega przez zadaną listę miast; jedno miasto może leżeć na
trasie kilku połączeń, jedno połączenie moze przebiegać kilka razy przez to
samo miasto
dla każdego połączenia i kolejno dla każdego miasta, przez które ono przebiega,
zdefiniowany jest czas przyjazdu oraz odjazdu pociągu (godzina oraz dzień
tygodnia, np: "przyjazd: środa, 23:57, odjazd: czwartek 00:15")
zakładamy, że połączenia działają w cyklu tygodniowym, tzn. jeżeli pierwszym
zdefiniowanym w połączeniu miastem będzie np. Warszawa, gdzie czasem przyjazdu
będzie wtorek, 12:00, a ostatnim zdefiniowanym miastem w połączeniu będzie
Wrocław, gdzie czasem odjazdu będzie piątek, 17:00, oznaczać to będzie, że
pomiędzy piątkiem a wtorkiem pociąg będzie jechał na trasie Warszawa-Wrocław
2. Należy stworzyć XML-owy serwis sieciowy, pod adresem:
http://localhost/task6b/Service.asmx (użycie innego adresu
może skutkować niższą punktacją), o zadanym interfejsie
metody:
GetCities
metoda zwraca wszystkie miasta, przez które przechodzi co najmniej jedno
połączenie
GetConnections
metoda zwraca wszystkie połączenia (wraz z nazwą pociągu obsługującego oraz listą miast, przez które przechodzą i czasami przyjazdów / odjazdów w tych miastach)
pomiędzy dwoma miastami, w zakresie zadanych dat i godzin; argumenty:
miasto startowe
miasto docelowe
godzina odjazdu nie wcześniej niż (data i czas)
godzina przyjazdu nie później niż (data i czas)
przykład: dla argumentów "Warszawa", "Wrocław", "15.12.2005 16:10", "16.12.2005
12:15" funkcja powinna zwrócić wszystkie połączenia wychodzące z Warszawy po
godzinie 16:10 we czwartki, i przychodzące do Wrocławia przed godziną 12:15 w
piątki
Uwaga: po stronie serwisu bierzemy pod uwagę jedynie połączenia
bezpośrednie, nie uwzględniamy połączeń z przesiadkami
dane wykorzystywane przez serwis należy prawidłowo pobrać ze stworzonego w p. 1 pliku
3. Należy stworzyć aplikację testową dowolnego typu (ASP.NET, Windows Forms lub
aplikację konsolową), wykorzystującą powyższy serwis sieciowy
funkcjonalność aplikacji testowej:
interfejs do podania godzin odjazdu i przyjazdu
interfejs do wyboru miast odjazdu oraz przyjazdu (z puli miast pobranej z
serwisu)
wynik działania aplikacji: lista wszystkich połączeń wraz z detalami (nazwy
pociągów, trasa, odjazdy i przyjazdy), spełniających zadane poprzez interfejs
warunki, dopuszczających jedną przesiadkę
algorytm dla wyszukiwania połączeń z przesiadką: jeżeli szukamy połączeń między miastami A i B w godzinach h1-h2, do dla każdego innego miasta C szukamy połączeń pomiędzy A i C w godzinach h1-h2, a następnie dla każdego znalezionego miasta C szukamy połaczeń między C i B w godzinach h3-h2, gdzie h3, to znaleziona godzina przyjazdu do C z A
Przybliżona punktacja:
50% - XML-owy serwis sieciowy
50% - aplikacja testowa (w tym 20% - szukanie przesiadek)