class Aereo { public static final int NUMERO_VOLI_INIZIALE = 100; private String codice; private String modello; private int messaInServizio; private int ultimaRevisione; private Volo[] elencoVoli; private int numeroVoli; private int oreVolate; public Aereo( String c, String m, int s ) { codice = c; modello = m; messaInServizio = ultimaRevisione = s; elencoVoli = new Volo[NUMERO_VOLI_INIZIALE]; numeroVoli = 0; oreVolate = 0; } public String restituisciCodice() { return codice; } public String restituisciModello() { return modello; } public int restituisciMessaInServizio() { return messaInServizio; } public int restituisciUltimaRevisione() { return ultimaRevisione; } public void impostaUltimaRevisione(int anno) { ultimaRevisione = anno; } public void aggiungiVolo( Volo v ) { if (numeroVoli == elencoVoli.length) { int nuovaDimensione = elencoVoli.length * 2; Volo[] nuovoElencoVoli = new Volo[nuovaDimensione]; for (int i = 0; i < elencoVoli.length; ++i) { nuovoElencoVoli[i] = elencoVoli[i]; } elencoVoli = nuovoElencoVoli; } elencoVoli[numeroVoli] = v; ++numeroVoli; oreVolate += v.restituisciDurata(); } public void eliminaVoli() { for (int i =0; i < numeroVoli; ++i) { elencoVoli[i] = null; } numeroVoli = 0; oreVolate = 0; } // 1 per il primo volo, 2 per il secondo, ... public Volo ricercaProgressivo(int i) { if ((i <= numeroVoli) && (i >0)) { return elencoVoli[i -1]; } else { return null; } } public Volo[] ricercaVoliConDurataMaggioreDi(int ore) { Volo[] risultato = new Volo[numeroVoli]; int posizione = 0; for (int i = 0; i < numeroVoli; ++i) { if (elencoVoli[i].restituisciDurata() > ore) { risultato[posizione] = elencoVoli[i]; ++posizione; } } return risultato; } public int calcolaVoliConDurataMaggioreDi(int ore) { int risultato = 0; for (int i = 0; i < numeroVoli; ++i) { if (elencoVoli[i].restituisciDurata() > ore) { ++risultato; } } return risultato; } public Volo[] ricercaVoliDiTipo(int tipologia) { Volo[] risultato = new Volo[numeroVoli]; int posizione = 0; for (int i = 0; i < numeroVoli; ++i) { if (elencoVoli[i].restituisciTipologia() == tipologia) { risultato[posizione] = elencoVoli[i]; ++posizione; } } return risultato; } public int calcolaVoliDiTipo(int tipologia) { int risultato = 0; for (int i = 0; i < numeroVoli; ++i) { if (elencoVoli[i].restituisciTipologia() == tipologia) { ++risultato; } } return risultato; } public int calcolaOreVolate() { return oreVolate; } }