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.
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");
}
}
Registro1, per
gestire un registro, cioè una collezione di statini realizzata
tramite un array, che mette a disposizione il seguente metodo statico:Registro2, per
gestire un registro, che mette a disposizione il seguente metodo
statico: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);
}
}