public class RegistroVoti {
private String nomeCorso; // nome del corso
private int voti[]; // array di voti
public RegistroVoti(String nome, int arrayVoti[]) {
this.nomeCorso = nome; // inizializza nome corso
this.voti = arrayVoti; // memorizza voti
}
// ------------------------------------------------ Get | Set
public String getNomeCorso() {
return nomeCorso;
}
public void setNomeCorso(String nomeCorso) {
this.nomeCorso = nomeCorso;
}
public int[] getVoti() {
return voti;
}
public void setVoti(int[] voti) {
this.voti = voti;
}
// ------------------------------------------------ Msg di benvenuto
public void mostraMsg() {
System.out.printf("Benvenuto al registro di\n%s!\n\n", getNomeCorso());
}// fine mostra messaggio
// ------------------------------------ Elabora voti
// effettua varie operazioni sui dati
public void elaboraVoti() {
// visualizza array voti
visualizzaVoti();
// calcola media
System.out.printf("\nMedia della classe: %.2f\n", calcolaMedia());
// trova minimo, trova max
System.out.printf("Voto più basso: %d\nVoto più alto: %d\n\n",
trovaMin(), trovaMax());
// visualizza diagramma a barre
mostraDiagrammaABarre();
}// fine metodo elebora voti
// ------------------------------------ Diagramma a barre
private void mostraDiagrammaABarre() {
System.out.println("Distribuzione voti: ");
// salvo freuenza per ognuno dei dieci voti:
int frequenza[] = new int[11];
// per ogni voto, incrementa la frequenzacorrispondente
for (int voto : voti) {
++frequenza[voto / 10];
}
// per ogni frequenza di voto, mostra una barra
for(int cnt = 0; cnt < frequenza.length; cnt++){
if(cnt == 10) System.out.printf("%5d: ", 100);
else
System.out.printf("%02d-%02d: ", cnt * 10, cnt * 10 + 9);
// visualizza barra
for (int aster = 0; aster < frequenza[cnt]; aster++) {
System.out.print("*");
}
System.out.println();
}// fine for esterno
}// fine diagramma a barre
// ------------------------------------ calcola voto massimo
public int trovaMax() {
int votoMassimo = voti[0]; // per ipotesi, il primo voto risulta il massimo
// itero su array voti
for (int voto : voti) {
// se il voto letto é minore di votoMinimo
if (voto > votoMassimo)
votoMassimo = voto; // assegno a votoMassimo il nuovo voto
}// fine for
return votoMassimo;
}
// ------------------------------------ calcola voto minimo
public int trovaMin() {
int votoMinimo = voti[0]; // per ipotesi, il primo voto risulta il
// minore
// itero su array voti
for (int voto : voti) {
// se il voto letto é minore di votoMinimo
if (voto < votoMinimo)
votoMinimo = voto; // assegno a votoMinimo il nuovo voto
}// fine for
return votoMinimo;
}
// ------------------------------------ calcola media voti
public double calcolaMedia() {
int totale = 0;
// somma voti studenti
for (int voto : voti) {
totale += voto;
}
return (double) totale / voti.length;
}
// ------------------------------------ visualizza voti
private void visualizzaVoti() {
System.out.println("I voti sono: ");
for (int studente = 0; studente < voti.length; studente++) {
System.out.printf("Studente %2d: %3d\n", studente + 1, voti[studente]);
}
}
}// fine classe
public class TestRegistroVoti {
public static void main(String[] args) {
// array voti studenti
int arrayVoti[] ={87, 68, 94, 100, 83, 78, 85, 91,76, 87};
RegistroVoti mioRegistro = new RegistroVoti("Java_001", arrayVoti);
mioRegistro.mostraMsg();
mioRegistro.elaboraVoti();
}// fine main
}// fine classe
Nessun commento:
Posta un commento