class Corso { // Tipologie di corsi public static final int AEROBICA = 0; public static final int STRETCHING = 1; public static final int BODY_BUILDING = 2; public static final int GINNASTICA_DOLCE = 3; public static final int SPINNING = 4; public static final int CARDIO_FITNESS = 5; public static final int NUMERO_TIPI = 6; // Attributi private int tipo; private Iscritto istruttore; private double costoOrario; private int numeroOre; private Iscritto[] elencoIscritti; private int numeroIscritti; // Costruttore public Corso(int tipo, Iscritto istruttore, double costoOrario, int numeroOre, int maxIscrivibili) { this.tipo = tipo; this.istruttore = istruttore; this.costoOrario = costoOrario; this.numeroOre = numeroOre; elencoIscritti = new Iscritto[maxIscrivibili]; numeroIscritti = 0; } // Metodi di restituzione public Iscritto restituisciIstruttore( ) { return istruttore; } public int restituisciTipo() { return tipo; } public int restituisciNumeroIscritti() { return numeroIscritti; } public double restituisciCosto() { return numeroOre * costoOrario; } // Aggiunta di un iscritto boolean aggiungi(Iscritto i) { if (numeroIscritti < elencoIscritti.length) { elencoIscritti[numeroIscritti] = i; ++numeroIscritti; return true; } else { return false; } } // Ritiro di un iscritto boolean ritira(Iscritto iscritto) { int pos = ricercaInterno(iscritto); if (pos < 0) { return false; } else { elencoIscritti[pos] = elencoIscritti[numeroIscritti - 1]; --numeroIscritti; return true; } } // Ricerca di un iscritto Iscritto ricercaPerNumeroTessera(int numeroCercato) { for (int i = 0; i < numeroIscritti; ++i) { if (elencoIscritti[i].restituisciNumeroTessera() == numeroCercato){ return elencoIscritti[i]; } } return null; } // Calcolo del ricavo complessivo del corso double calcolaRicavoComplessivo() { return (costoOrario * numeroOre * numeroIscritti); } // Elenco di tutti gli iscritti con età superiore ad una data Iscritto[] elencoIscrittiConAnniMaggioreDi( int anni ) { int j = 0; Iscritto[] risultato = new Iscritto[numeroIscritti]; for (int i = 0; i < numeroIscritti; ++i) { if (elencoIscritti[i].restituisciAnni() > anni) { risultato[j++] = elencoIscritti[i]; } } return risultato; } // Metodi privati private int ricercaInterno(Iscritto iscritto) { for (int i = 0; i < numeroIscritti; ++i) { if (iscritto.restituisciNumeroTessera() == elencoIscritti[i].restituisciNumeroTessera()) { return i; } } return -1; } }