Corso.java
Created with JBuilder
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;
  }
}

Corso.java
Created with JBuilder