Attività: progettazione e implementazione di un sistema di gestione

Attività: progettazione e implementazione di un sistema di gestione dei
voli
Una compagnia aerea gestisce le prenotazioni dei voli esclusivamente mediante il proprio sito
web. I clienti della compagnia devono preventivamente registrarsi con i seguenti dati:






cognome;
nome;
nazione di nascita;
città di nascita;
data di nascita;
codice cliente generato automaticamente.
Nel sistema di gestione del sito web della compagnia sono sempre inseriti in anticipo di almeno tre
mesi i voli disponibili, ciascuno con i seguenti dati:








codice volo;
aeroporto di partenza;
aeroporto di arrivo;
data del volo;
ora di partenza;
ora di arrivo;
numero di posti;
costo del volo.
Progettare in linguaggio UML ed implementare in linguaggio Java le classi che rappresentano le
entità “Cliente” e “Volo” (le classi devono comprendere un metodo main di verifica del corretto
funzionamento di tutti i propri metodi pubblici).
Individuare le collezioni del linguaggio Java adatte a rappresentare rispettivamente tutti i clienti
registrati e tutti i voli della compagnia; progettare in linguaggio UML ed implementare in
linguaggio Java le classi contenitore “Clienti” e “Voli” in modo che forniscano entrambe le seguenti
funzionalità:






aggiunta di un nuovo elemento;
eliminazione di uno specifico elemento;
modifica dei dati di uno specifico elemento;
ricerca di uno specifico elemento in base a vari parametri;
salvataggio su file di tutti gli elementi;
ripristino da file di tutti gli elementi.
Formichi, Meini – Corso di informatica
© 2013 Zanichelli Editore S.p.A.
Per entrambe le classi scrivere ed eseguire un metodo main di verifica del corretto funzionamento
di tutti i metodi pubblici.
Al momento in cui un cliente prenota un volo viene creato un nuovo oggetto “Prenotazione” che
associa il codice cliente al codice del volo prenotato1; nel caso che il cliente richieda uno o più
bagagli da imbarcare nella stiva il loro numero ed il peso massimo complessivo devono essere
memorizzati in relazione alla prenotazione.
Dopo avere individuato una collezione Java adatta per memorizzare le prenotazioni, progettare in
linguaggio UML ed implementare in linguaggio Java le classi che rappresentano una singola
prenotazione e il contenitore di tutte le prenotazioni.
Implementare infine in linguaggio Java una classe di test il cui metodo main permetta di interagire
con l’utente per eseguire le seguenti operazioni:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
1
aggiunta di un cliente;
eliminazione di un cliente specificandone il codice;
modifica dei dati di un cliente specificandone il codice;
ricerca di un cliente a partire dal codice;
ricerca di un cliente a partire dal cognome e dal nome;
aggiunta di un volo;
eliminazione di un volo specificandone il codice;
modifica dei dati di un volo specificandone il codice;
ricerca di un volo a partire dal codice;
ricerca di un volo a partire dalla data, dall’aeroporto di partenza, dall’aeroporto di arrivo e
dall’orario di partenza;
aggiunta di una nuova prenotazione;
eliminazione di una prenotazione specificando il codice del cliente e il codice del volo;
modifica dei dati di una prenotazione specificando il codice del cliente e il codice del volo
(variazione del numero di bagagli e/o del peso complessivo);
ricerca di tutte le prenotazioni di un cliente specificando il codice;
ricerca di tutte le prenotazioni di un volo specificando il codice.
lo stesso cliente può quindi essere più volte passeggero di voli diversi effettuando più prenotazioni
Formichi, Meini – Corso di informatica
© 2013 Zanichelli Editore S.p.A.