Fondamenti di Informatica 1
Corso di Laurea in Ingegneria Informatica
Corso di Laurea in Ingegneria Automatica
A.A. 2002/03
Appello del 8/4/2003 - Compito D
Si vuole gestire il noleggio di biciclette. Di un oggetto
NoleggioBici sono di interesse il nome dell'agenzia di noleggio bici
(una stringa) ed il suo parco biciclette. Di ogni bicicletta sono di interesse
le seguenti informazioni:
- il codice (un intero);
- se è noleggiata oppure no, e nel caso lo sia, il nominativo della
persona che la ha noleggiata.
Gli oggetti NoleggioBici supportano le seguenti funzionalità:
- crea: che, data una stringa n che rappresenta il nome
di un'agenzia di noleggio bici, crea un oggetto NoleggioBici con
nome n che inizialmente non ha alcuna bicicletta;
- agenzia: che restituisce il nome dell'agenzia di noleggio bici;
- verificaCodice: che, dato il codice b di una
bicicletta, restituisce true se il codice b è
quello di una bicicletta del noleggio bici, false altrimenti;
- noleggiata: che, dato il codice b di una bicicletta,
restituisce il nominativo della persona che ha noleggiato la bicicletta
b, se la bicicletta è noleggiata; restituisce
null
se la bicicletta non è noleggiata; infine,
lancia un'eccezione se il codice non è quello di una bicicletta
del noleggio bici;
- acquisisci: che, dato un intero b, aggiunge una
bicicletta di codice b al parco biciclette dell'agenzia, se
tale codice non è già utilizzato; altrimenti lancia
un'eccezione; si noti che una bicicletta appena acquisita non è
noleggiata;
- dismetti: che, dato il codice b di una bicicletta,
elimina la bicicletta b dal parco biciclette; se il codice
b non è utilizzato non fa nulla; se il codice b
è utilizzato ma la bicicletta corrispondente è già
noleggiata lancia un'eccezione;
- noleggia: che, dati il codice b di una bicicletta e il
nominativo p di una persona, noleggia la bicicletta b
alla persona p; se il codice b non è utilizzato
oppure la bicicletta b è già noleggiata lancia
un'eccezione;
- numBiciNoleggiate: che, dato il nominativo p di una
persona, restituisce il numero di biciclette che la persona p ha
noleggiato;
- biciNoleggiate: che, dato il nominativo p di una
persona, restituisce un array di interi contenente i codici delle
biciclette che la persona p ha noleggiato.
Domanda 1. Scrivere una classe Java
NoleggioBici
per rappresentare oggetti NoleggioBici.
Soluzione:
rappresentazione
degli oggetti,
scheletro della classe,
classe NoleggioBici
,
classe
EccezioneNoleggioBici
Domanda 2. Realizzare un metodo statico
biciNoleggiate
cliente della classe NoleggioBici
che,
dati
- un oggetto nb della classe
NoleggioBici
,
- il nome fin di un file contenente nominativi di persone, uno per
riga, ed
- il nome fout di un file,
scrive sul file fout, uno per riga, i codici di tutte le biciclette
di nb noleggiate a ciascuna persona il cui nominativo è
presente nel file fin.
Soluzione
Domanda 3. Spiegare la rappresentazione collegata di alberi
binari in cui l'informazione in ciascun nodo è una stringa. Spiegare
l'algoritmo di visita (ricorsiva) in preordine di alberi binari. Facendo uso
della rappresentazione collegata, realizzare un metodo statico pubblico che,
dati una stringa s ed il riferimento alla radice di un albero binario
alb i cui nodi contengono stringhe, restituisca il numero di
occorrenze di s in alb.
Soluzione:
rappresentazione di alberi binari,
metodo richiesto