Fondamenti di Informatica
Ingegneria Idraulica Marittima e Trasporti, sede di Civitavecchia
Ingegneria della Sicurezza e Protezione, sede di Civitavecchia

Esercizio di Autovalutazione 1


Gli elaborati svolti dovranno essere inviati all'indirizzo di posta elettronica farinelli@dis.uniroma1.it entro il giorno 3/5/2004. Sono necessari solo i file *.java.
Si ricorda che la prova non sarà in alcun modo utilizzata a scopo di valutazione.

Si vuole realizzare un programma per la gestione di una collezione di francobolii. Per ogni francobollo e' necessario rappresentare le seguenti informazioni: valore, nome della serie, prezzo di vendita (nel mercato filatelico in migliaia di euro), disponibilità.

Parte 1.

Scrivere una classe Francobollo per rappresentare le informazioni relative ad un francobollo con la seguente interfaccia:
- Francobollo(String valore, String serie, float prezzo) : costruttore con tre argomenti: valore, nome della serie, prezzo di vendita; il costruttore inizializza la disponibilità a 0;
- String getValore( ) : restituisce il valore del francobollo; 
- String getSerie( ) : restituisce il nome della serie a cui il francobollo appartiene; 
- float getPrezzo( ) : restituisce il prezzo di vendita del francobollo;
- int getDisp( ) : restituisce la disponibilità del francobollo;
- void setDisp(boolean acquisto, int n) : se acquisto è maggiore di 0 incrementa la disponibilità di n, altrimenti decrementa la disponibilità di n;
- boolean isDisp(int n): restituisce true se sono disponibili almeno n copie del francobollo;
- boolean uguale( Francobollo x ) : restituisce true se il Francobollo su cui il metodo è invocato è uguale a x (indipendentemente dalla disponibilità), e false altrimenti.

La classe viene utilizzata da un cliente, come nel programma di esempio:
ProvaFrancobollo.java
public class ProvaFrancobollo {
  public static void main (String[] args) {
  Francobollo a1 = new Francobollo("5 Lire","Michelangiolesca",30);
  System.out.println(a1.getValore());
  System.out.println(a1.getSerie());
  System.out.println(a1.getPrezzo());
  System.out.println(a1.getDisp());
  a1.setDisp(true,6);
  System.out.println(a1.getDisp());
  Francobollo a2 =
  new Francobollo("50 Lire","Italia al Lavoro",10);
        if (a1.uguale(a2)) System.out.println("a1 e a2 sono uguali");
        else System.out.println("a1 e a2 sono diversi");
  Francobollo a3 =
  new Francobollo(a1.getValore(),a1.getSerie(),a1.getPrezzo());
        if (a1.uguale(a3)) System.out.println("a1 e a3 sono uguali");
        else System.out.println("a1 e a3 sono diversi");
  }
}

Parte 2.