Studente.java
Created with JBuilder
class Studente {

  // Attributi
  private String  nome;
  private String  cognome;
  private int     matricola; // Fino a 4 miliardi di studenti
  private String  corso;
  private Esame[] esame;
  private int     esamiSostenuti;

  // Costruttore
  public Studente(String nome,
                  String cognome,
                  int    matricola,
                  String corso,
                  int    esamiTotali)
  {
    this.nome      = nome;
    this.cognome   = cognome;
    this.matricola = matricola;
    this.corso     = corso;
    esame          = new Esame[esamiTotali];
    esamiSostenuti = 0;
  }

  // Metodi di accesso
  String restituisciNome() {
    return nome;
  }
  String restituisciCognome() {
    return cognome;
  }
  int restituisciMatricola() {
    return matricola;
  }
  String restituisciCorso() {
    return corso;
  }

  // Aggiunta di un esame superato
  public boolean aggiungiEsame(Esame e)
  {
    if (esamiSostenuti < esame.length) {
      esame[esamiSostenuti] = e;
      ++esamiSostenuti;
      return true;
    } else {
      return false;
    }
  }

  // Calcolo del totale dei crediti
  public int calcolaTotaleCrediti( )
  {
    int totale = 0;
    for (int i = 0; i < esamiSostenuti; ++i) {
      totale += esame[i].restituisciCrediti();
    }
    return totale;
  }

  // Calcolo della media degli esami
  public double calcolaMediaEsami( )
  {
    double media = 0.0;
    if (esamiSostenuti > 0) {
      for (int i = 0; i < esamiSostenuti; ++i) {
        media += esame[i].restituisciVoto();
      }
      media = media / esamiSostenuti;
    }
    return media;
  }

}


Studente.java
Created with JBuilder