Fondamenti di Informatica I
Corso di Laurea in Ingegneria Informatica

Prova al calcolatore 5/4/01 - Compito F

Durata: 120 minuti


Istruzioni per la prova al calcolatore

1. Accesso al PC: il PC sarà già connesso, se non lo fosse chiedete assistenza ai professori o ai tutori. Non dovete eseguire quindi nessuna operazione di connessione/disconnessione.
2. Cartella in cui svolgere l'esame: all'interno delle Risorse del computer c'è un unico disco T: all'interno del quale c'è una sola cartella Esame. La cartella Esame contiene tutti i file di cui avete bisogno per svolgere il compito e dovrà contenere i file scritti da voi per la soluzione dell'esercizio. Assicuratevi in SitePad di creare i nuovi file Java utilizzando il path T:\Esame. Non create altre cartelle e non scrivete al di fuori della cartella Esame .
3. Ambiente di sviluppo: sul PC trovate sia il programma SitePad, sia WordPad che il prompt dei comandi per compilare ed eseguire le classi Java.
4. Accesso al sito del corso: il sito del corso può essere consultato tramite Internet Explorer
5. Consegna del compito: al termine del compito si devono lasciare i programmi nella cartella Esame e si deve consegnare il foglio con il testo del compito. Non spegnere il PC e non chiudere la connessione.

Durante il compito non è consentito uscire dall'aula, parlare con altri studenti, utilizzare telefoni cellulari, utlizzare dischetti floppy, trasmettere in qualunque modo informazioni da una macchina all'altra. Il mancato rispetto delle indicazioni sopra riportate comporta l'annullamento della prova. 

Testo del compito 

Si vuole realizzare un programma per la gestione di un parcheggio. Per ciascun livello del parcheggio sono
memorizzate le seguenti informazioni: numero del livello e ora di rilevazione dati, numero di posti liberi per livello, numero di posti occupati per livello, costo ora per livello.  Il numero di posti liberi e occupati per livello sono riferiti all'ora specificata.

Parte 1. Scrivere una classe Livello per la gestione di un livello  che implementi i seguenti metodi:
- Livello ( String, String, int, int, int ) : costruttore con cinque argomenti: Livello e numero, Ora di Rilevazione, numero di posti occupati, numero di posti liberi, costo ora per il livello specificato.
- void stampa ( ) : stampa su video le informazioni di un livello
- void modificaPostiLiberi( int ) : modifica il numero di posti liberi del livello
- int getGuadagno ( ) : restituisce un intero corrispondente al guadagno per il livello all’ora di rilevazione.

Programma di esempio: ProvaLivello.java

class ProvaLivello {
 public static void main (String[] args) {
 Livello livello = new Livello(“Livello 3”, "Ora:12.00", 320, 15, 3500);
 livello.modificaPostiLiberi(18);
 livello.stampa();
 System.out.println("Al Livello 3 il guadagno totale e' di lire”+    livello.getGuadagno());
 }
}


 

 

Parte 2. Scrivere una classe Parcheggio che gestisca  l'intero Parcheggio le cui informazioni sono contenute in un file
'parcheggio.txt' nel seguente formato:


<livello numero>
< ora rilevazione>
<numero posti occupati>
<numero di posti liberi>
<costo parcheggio per ora>


Per la lettura dei dati dal file si consiglia l'uso di un metodo statico di lettura da inserire nella classe Livello che restituisca l'oggetto della classe Livello letto da un canale di input oppure null se non ci sono dati sul canale.
Esempio di file parcheggio.txt: 

Livello:1 
Ora:15.00
361
12
3500
Livello:2
Ora:8.00
290
40
3800

La classe Parcheggio deve implementare i seguenti metodi:
- Parcheggio ( String ) : costruttore con argomento stringa contenente il nome del file
- int contaVolumeAuto ( ) : restituisce il numero di auto che hanno frequentato il parcheggio alle ore di rilevazione
- Livello livelloPiuFrequentato ( ) : restituisce l'oggetto Livello corrispondente al livello che ha avuto il numero di auto piu' alto

Programma di esempio: ProvaParcheggio.java

class ProvaParcheggio {
  public static void main (String[] args) {
  Parcheggio parcheggio = new Parcheggio ("parcheggio.txt");
  int c = parcheggio.contaVolumeAuto(); 
  System.out.println("Il volume di auto per le ore di rilevazione  = "+c);
  Livello livello = parcheggio.livelloPiuFrequentato(); 
  System.out.println("Il livello piu' frequentato e'"); 
  livello.stampa();
  }
}