Hierarchia klas wyjątków

0

Mam do zrobienia zadanie, które ogólnie jest banalne. Jedyne z czym mam problem, to ta hierarchia klas wyjątków. Kompletnie nie mam zielonego pojęcia o co chodzi, ani jak się za to zabrać. Mam dwie klasy - Graf i Kolej. Kolej dziedziczy po Grafie (tak musiałem zrobić). Mógłby mi ktoś powiedzieć o co chodzi? W guglach niestety niewiele na ten temat znalazłem.

Swoją drogą jakby ktoś mi również mógł podpowiedzieć coś odnośnie wczytywania danych. Ogólnie najpierw wczytuję do obiektu Graf ilość wierzchołków oraz krawędzie (tablica), a potem wywołuję konsturktor klasy Kolej z argumentem Graf i przepisuję ilość wierzchołków. Krawędzie w klasie kolej, czyli niejako trasy poruszania się pociągów, muszę wczytać ponownie, ponieważ tym razem potrzebuję również numer pociągu, który porusza się pomiędzy podanymi wierzchołkami. Czy potrzebnie tworzę ten obiekt Graf dodatkowo czy mogę jakość wykorzystać element dziedziczenia? Dodam, że dane muszę wczytywać do obiektu typu Graf, bo takie mam założenie od prowadzącego (no i chociażby po to, żebym mógł gdzieś tą hierarchię klas wyjątków zastosować).

Treść zadania:

System planowania podróży kolejowej
Założenia:
• System powinien umożliwiać planowanie najszybszego połączenia
kolejowego pomiędzy wybranymi stacjami kolejowymi.
• Należy uwzględnić możliwość połączeń bezpośrednich oraz łączenia
przejazdów w ramach jednego połączenia.
• Należy wykonać implementację własnej klasy grafu skierowanego, w
którym połączenia są reprezentowane poprzez krawędzie grafu a stacje
kolejowe poprzez węzły grafu.
W trakcie realizacji projektu należy zwrócić uwagę na wykorzystanie
mechanizmów C++ takich jak: dziedziczenie (w zaproponowanej hierarchii
klas), funkcje wirtualne, dynamiczna alokacja pamięci, iteratory,
przeciążanie operatorów, możliwe wykorzystanie biblioteki STL. Obsługę
błędów należy zrealizować za pomocą mechanizmu wyjątków. W ramach
możliwości należy zaproponować hierarchię klas wyjątków. Program
powinien umożliwiać obsługę wejścia/wyjścia za pomocą konsoli oraz plików.
Projekt powinien posiadać dokumentację końcową z opisem założeń oraz
diagramami stworzonej hierarchii klas.

0

Jedyne z czym mam problem, to ta hierarchia klas wyjątków.

Tu masz przykład takiej hierarchii -> link. Klasa exception i jej pochodne.

0

Okej, a jak ma się do tego hierarchia?

1

Wydaje mi się, że link, który podałem dość jasno pokazuje, o co chodzi. Tu masz hierarchię klas wyjątków w Javie: link

0

Dobra, rozwiązałem ten problem. Pojawił się inny, wieńczący mój projekt. Mianowicie po obliczeniu już tej najkrótszej drogi między dwoma wierzchołkami w grafie (czyli stacjami na trasie kolejowej), muszę powiedzieć jaką najmniejszą liczbę przesiadek ma zrobić pasażer, żeby dojechać do celu. Do dyspozycji mam tablicę z numerami stacji przez które trzeba przejechać oraz tablicę dwuwymiarową, wyglądającą następująco:

"numer pociągu" "kolejne stacje między którymi jeździ" np:

167 1 2 5 0
125 1 2 3 0
184 3 4 0
268 3 5 6 0
534 6 7 4 0
532 5 7 0

Napisałem pewien algorytm, ale niestety nie działa do końca tak jak chciałem, bo nie wyszukuje najmniejszej liczby przesiadek, a jakąkolwiek. Po prostu porównuję dwie kolejne wartości z tablicy kolejnych stacji pociągu oraz tych, które trzeba przebyć. Jeśli się zgadza to wrzucam numer pociągu do wyniku. Np. dla mojego przykładowego grafu, żeby przebyć od 1 do 7, muszę przejechać przez 1 2 5 7, więc algorytm wypluwa mi przesiadki 167 (dla stacji 2 i 5) 125 (dla stacji 1 i 2) 532 (dla stacji 5 i 7) a powinno 167 i 532. Ma ktoś może jakieś pomysły?

1 użytkowników online, w tym zalogowanych: 0, gości: 1