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.