Orario Treni
Sviluppare l’applicazione che consente di gestire l'orario dei treni e
di monitorare i passaggi effettivi alle stazioni.
Tutte le classi devono essere nel package "orario".
R1 - Definizione Percorsi
Il sistema agisce tramite la classe Orari.
La prima fase dell'uso consiste nel definire i percorsi dei treni.
Il metodo creaPercorso() che
accetta come parametro il codice (es. IC2345) e la categoria e crea un
oggetto Percorso. La categoria
di un treno può essere "Intercity", "Eurostar",
"Interregionale", o "Regionale". La classe Percorso che offre i metodi getCodice(), getCategoria() per leggere il codice
e la categoria. I treni possono essere ordinari oppure straordinari,
per definire il tipo si usa il metodo setStraordinario()
che riceve un parametro boolean, inoltre è a disposizione il
metodo isStraordinario() per
conoscere il tipo. Un percorso per default non è straordinario.
E' possibile conoscere tutti i percorsi definiti nell'orario tramite il
metodo getPercorsi() che
restituisce una collezione di oggetti Percorso.
Inoltre è possibile usare il metodo getPercorso() che riceve come
parametro il codice di un percorso e restituisce l'oggetto
corrispondente.
R2 - Fermate
Ad un percorso è possibile aggiungere delle fermate presso le
stazioni.
La classe Percorso fornisce il metodo aggiungiFermata()
che riceve come parametri il nome della stazione, e l'orario previsto
in ore e minuti. Questo metodo restituisce l'oggetto Fermata corrispondente.
La classe Fermata offre i metodi getStazione(),
getOra(), getMinuti().
Per ottenere l'elenco di tutte le fermate di un percorso si usa il
metodo getFermate() della
classe Percorso che restituisce la lista degli oggetti Fermata ordinati
in base all'orario.
R3 - Treni
I treni seguono i percorsi stabiliti e fanno dei passaggi presso le
stazioni a certe ore.
La classe Orari offre il metodo nuovoTreno()
che riceve come parametri il codice del percorso e la data in cui
viaggia il treno e restituisce l'oggetto Treno corrsipondente.
Se il codice del percorso non corrisponde ad un percorso definito in
precedenza viene generata l'eccezione di PercorsoNonValido.
La classe Treno offre i
metodi getPercorso(), getGiorno(), getMese() e getAnno() per accedere alle
informazioni sul percorso e alla data di viaggio.
Dato un percorso è possibile ottenere l'elenco dei treni che
l'hanno percorso tramite il metodo getTreni()
della classe Percorso: questo metodo restuisce la lista dei treni
ordinata per data di viaggio decrescente.
R4 - Passaggi
I treni fanno dei passaggi presso le stazioni del percorso a certe ore.
La classe Treno offre il metodo registraPassaggio()
che riceve come parametri il nome della stazione, l'ora ed i minuti del
passaggio; il metodo restituisce l'oggetto Passaggio creato.
Se il nome della stazione non corrisponde ad una delle fermate del
percorso seguito viene segnalata l'eccezione di StazioneNonValida.
La classe Passaggio offre i
metodo getStazione(), getOra(), getMinuti().
Inoltre offre il metodo ritardo()
che restituisce il ritardo rispetto all'orario previsto (definito nella
fermata) espresso in minuti.
R5 - Statistiche
La classe Treno permette di ottenere alcune informazioni statistiche.
Il metodo arrivato()
restisuisce un valore booleano che indica se il treno ha fatto la
fermata presso l'ultima stazione.
I metodi ritardoMassimo(), ritardoFinale()
permettono di avere
informazioni sui ritardi.
E' possibile calcolare le statistiche anche a livello di percorso.
La classe Percorso offre i metodi ritardoMedio(), ritardoFinale()
che restituiscono rispettivamente la media ed il massimo tra i ritardi
finali dei treni che hanno seguito il percorso.