Free University of Bolzano/Bozen
Faculty of Computer Science - Bachelor in Applied Computer Science
Introduction to Programming - A.A. 2006/2007

Esercitazione 11

Array dinamici


Si vogliono gestire le code di prenotazioni presso sportelli per servizi anagrafici. Nell'ambito di uno sportello, ad ogni prenotazione è associato un numero d'ordine, e i numeri d'ordine devono essere associati alle prenotazioni in modo univoco e progressivo, nell'ordine in cui vengono effettuate. Le prenotazioni devono essere servite (estratte dalla coda) in base al loro numero d'ordine.


Esercizio 11A

Si realizzi una classe Prenotazione, i cui oggetti mantengono le seguenti informazioni su una prenotazione:

Della classe sono d'interesse le seguenti funzionalità:

Soluzione


Esercizio 11B

Si realizzi una classe Sportello in cui ogni oggetto che è istanza della classe mantiene l'insieme di prenotazioni effettuate presso uno sportello.

Della classe sono d'interesse le seguenti funzionalità:

Suggerimento: realizzare la classe utilizzando un array dinamico di prenotazioni:

Soluzione: Sportello.java e EccezioneSportello.java


Esercizio 11C

Si realizzi una classe cliente di Sportello che:
  1. crei uno Sportello inizialmente vuoto;
  2. legga da tastiera il nome di un file di testo (che si suppone contenga nomi di persona, uno per riga) ed effettui per ciascuna persona nel file una prenotazione presso lo sportello;
  3. chieda ripetutamente all'utente quale tra le seguenti operazioni vuole effettuare: Al termine di ogni operazione deve essere stampato su video il contenuto della coda di prenotazioni presso lo sportello.
Il programma deve catturare le eccezioni lanciate nella classe Sportello stampando un opportuno messaggio, senza che il programma termini.

Si provi il programma utilizzando il seguente file di esempio: paperopoli.txt

Nota: per aprire un file da un programma lanciato da BlueJ, è necessario specificare il nome del file completo del percorso (ad esempio C:\progetti-java\lab-11\paperopoli.txt), in quanto BlueJ non imposta la directory corrente a quella in cui è situato il programma.

Soluzione