Esempio prova di programmazione
Programma che simula il comportamento di una biglietteria composta da una sequenza. Si vuole realizzare un sistema di N sportelli. Presso ogni sportello si forma una diversa coda di persone in attesa di essere servite; una persona che arriva presso la biglietteria si accoda allo sportello con la coda più breve; ogni sportello serve la prima persona della propria coda. Questo comportamento viene rappresentato dal tipo di dato astratto "multicoda" (multiqueue).
Dettagli del test
Il candidato ha a disposizione il file MultiQueueTester.java, il quale contiene classi ed interfacce da utilizzare e/o completare secondo quanto qui indicato:
- Queue ed EmptyQueueException. Rispettivamente, interfaccia che rappresenta il tipo di dato astratto "coda", ed eccezione che segnala che una coda è vuota. Non modificare.
- MultiQueue. Interfaccia che rappresenta il tipo di dati astratto "multicoda". Leggere con attenzione i commenti all'interfaccia ed ai suoi metodi. Non modificare.
- ArrayQueue. Classe che implementa Queue usando un array. Completare la classe scrivendone la parte privata e realizzandone i metodi pubblici. La classe deve inoltre sovrascrivere il metodo
toString, che restituisca una stringa contenente gli elementi della coda, ciascuno su una riga diversa. - ArrayMultiQueue. Classe che implementa l'interfaccia MultiQueue usando un array di code. Completare la classe scrivendone la parte privata e realizzandone i metodi pubblici. La classe costruttore deve ricevere un parametro esplicito intero N > 0 e creare una multicoda vuota, costituita da una sequenza di N code vuote. La classe deve inoltre sovrascrivere il metodo
toString, che restituisca una stringa contenente gli elementi delle N code della multicoda, secondo il seguente formato: (1) gli elementi delle N code vengono scritti in sequenza, secondo il formato del metodotoStringdella classe ArrayQueue (si veda il corpo di tale metodo), (2) la scrittura degli elementi della i-esima coda (0 ≤ i < N) comincia con la riga "CODA i:". - MultiQueueTester. Classe di collaudo. Completare la classe in modo che il suo metodo
mainrealizzi il seguente comportamento:- Riceve un numero intero N come argomento sulla riga di comando;
- Crea un oggetto di tipo ArrayMultiQueue, contenente N code, inizialmente vuote;
- Accetta ripetutamente comandi dall'utente, introdotti da tastiera, finché l'utente non introduce il comando di terminazione del programma; i comandi disponibili sono:
Comandi disponibili
- A: Aggiunge una persona alla multicoda. In questo caso il programma chiede di inserire da tastiera una stringa rappresentante il nome della persona.
-
Informatica
-
Informatica I - esempio prova di programmazione in java (agenda)
-
Informatica
-
Informatica I - esempio prova di programmazione (Codificatore/dictionary)