GestionePrenotazioni.java
Created with JBuilder
class GestionePrenotazioni {
  // Atrributi
  private Prenotazione[] elencoPrenotazioni;
  private int            numeroPrenotazioni;

  // Costruttore
  public GestionePrenotazioni(int numeroMaxPrenotazioni) {
    elencoPrenotazioni = new Prenotazione[numeroMaxPrenotazioni];
    numeroPrenotazioni = 0;
  }

  // Aggiunta di una prenotazione
  public boolean Aggiungi(Prenotazione p) {
    if (numeroPrenotazioni < elencoPrenotazioni.length) {
      elencoPrenotazioni[numeroPrenotazioni] = p;
      ++numeroPrenotazioni;
      return true;
    } else {
      return false;
    }
  }

  // Cancellazione di una prenotazione (ricerca per cognome primo posto)
  public boolean Cancella(String cognome) {
    for( int i = 0; i < numeroPrenotazioni; ++i) {
      if (elencoPrenotazioni[i].restituisciNumeroPostiPrenotati() > 0) {
        Posto[] elencoPosti = elencoPrenotazioni[i].restituisciPosti();
        if (cognome.equals(elencoPosti[0].restituisciCognome())) {
          elencoPrenotazioni[i] = elencoPrenotazioni[numeroPrenotazioni - 1];
          --numeroPrenotazioni;
          return true;
        }
      }
    }
    return false;
  }

  // Ricerca di tutte le prenotazioni dato il volo
  public GestionePrenotazioni CercaPrenotazioniPerVolo(String volo) {
    GestionePrenotazioni prenotazioniPerVolo =
        new GestionePrenotazioni(numeroPrenotazioni);
    for( int i = 0; i < numeroPrenotazioni; ++i) {
      String voloTrovato = elencoPrenotazioni[i].restituisciCodiceVolo();
      if (voloTrovato.equals(volo)) {
        prenotazioniPerVolo.Aggiungi(elencoPrenotazioni[i]);
      }
    }
    return prenotazioniPerVolo;
  }

  // Ricerca di tutte le prenotazioni data la destinazione
  public GestionePrenotazioni CercaPrenotazioniPerDestinazione(String dest) {
    GestionePrenotazioni prenotazioniPerDestinazione =
        new GestionePrenotazioni(numeroPrenotazioni);
    for( int i = 0; i < numeroPrenotazioni; ++i) {
      String destTrovata = elencoPrenotazioni[i].restituisciDestinazione();
      if (destTrovata.equals(dest)) {
        prenotazioniPerDestinazione.Aggiungi(elencoPrenotazioni[i]);
      }
    }
    return prenotazioniPerDestinazione;
  }

  // Totale dei posti prenotati
  public int calcolaTotalePostiPrenotati( ) {
    int totale = 0;
    for( int i = 0; i < numeroPrenotazioni; ++i) {
      totale += elencoPrenotazioni[i].restituisciNumeroPostiPrenotati();
    }
    return totale;
  }

  // Media dei posti prenotati
  public int calcolaMediaPostiPrenotati() {
    int media = 0;
    int totalePosti = calcolaTotalePostiPrenotati();
    if (totalePosti > 0) {
      media = totalePosti / numeroPrenotazioni;
    }
    return media;
  }

  // Totale dei pasti per tipologia
  public int calcolaTotalePastiPerTipo(int tipo) {
    int totale = 0;
    for( int i = 0; i < numeroPrenotazioni; ++i) {
      totale += elencoPrenotazioni[i].numeroPastiPerTipo(tipo);
    }
    return totale;
  }

}


GestionePrenotazioni.java
Created with JBuilder