Fondamenti di Informatica
Corso di Laurea in Ingegneria Informatica

Prova al calcolatore (esempio 1)

Durata: 1h 30m


Si vuole realizzare un programma per la gestione dei verbali d'esame degli studenti. E' necessario rappresentare per ciascun verbale emesso le seguenti informazioni: nome dello studente, codice del corso, data dell'esame, e voto. I verbali per i quali non è stato ancora definito il voto avranno il voto pari a 0. Il voto 30 e lode viene rappresentato dal numero 31.

Parte 1.

Scrivere una classe Statino per rappresentare le informazioni di un verbale d'esame con la seguente interfaccia:
- Statino(String, int, String, int) : costruttore con quattro argomenti: nome, codice corso, data, e voto;
- Statino(String, int, String) : costruttore con tre argomenti: nome, corso e data, con voto (non specificato) da assegnare pari a 0;
- String getNome( ) : restituisce il nome dello studente esaminato; 
- int getCodice( ) : restituisce il codice identificativo del corso;
- String getData( ) : restituisce la data di svolgimento dell'esame;
- int getVoto( ): restituisce il voto dell'esame;
- void setVoto( int ) : modifica il voto dello studente;
- boolean equals( Object ) : restituisce true se il verbale su cui il metodo è invocato contiene le stesse infomazioni di quello passato come parametro, e false altrimenti;

Programma di esempio: ProvaStatino.java

class ProvaStatino {
public static void main (String[] args) {
    Statino a1 = new Statino("Mario Rossi", 121, "15/04/2002");
System.out.println(a1.getNome());
System.out.println(a1.getCodice());
System.out.println(a1.getData());
System.out.println(a1.getVoto());
a1.setVoto(30);
System.out.println(a1.getVoto());
Statino a2 = new Statino("Mario Rossi", 121, "15/04/2002", 25);
if (a1.equals(a2)) System.out.println("a1 e a2 sono uguali");
else System.out.println("a1 e a2 sono diversi");
}
}


Parte 2.

Viene fornita una classe ausiliaria RegistroBase che mette a disposizione un metodo Statino[] leggiRegistro (String filaname) che dato il nome di un file di dati rappresentante una sequenza di statini, restituisce un vettore di oggetti opportunamente istanziati.

Programma di prova per la classe Registro1:

class ProvaRegistro1 {		
public static void main (String[] args) throws Exception{
Statino[] reg1;
reg1 = RegistroBase.leggiRegistro("registro.dat");
double massimo = Registro1.votoMassimo(120, reg1);
System.out.println("Voto massimo = "+massimo);
}
}

Programma di prova per la classe Registro2:

class ProvaRegistro2 {		
public static void main (String[] args) throws Exception{
Statino[] reg1;
reg1 = RegistroBase.leggiRegistro("registro.dat");
double bravi = Registro2.studentiConVotoMassimo(120, reg1);
System.out.println("Numero studenti con voto massimo = "+bravi);
}
}