[Java] Progetto - Distribuzioni Voti

glprobot

Nuovo Utente
30 Giu 2017
3
0
1
32
Salve a tutti,

Ho realizzato tutto l'esercizio,però mi da dei seguenti problemi:
Ho fatto il controllo dell'input, però dopo l'if, ho inserito una stampa, si può fare qualcosa di meglio????
Per il calcolo della percentuale, non escono i risultati, come mai??????
Per piacere mi potete correggere questi due errori che ho fatto.
Te nè sarei grado. Grazie

Ecco il codice Java:

package progetto5.oop.com;
import java.util.*;

public class DistribuzioneDeiVoti {

/*Si crei una classe che rappresenta la distribuzione di voti per un dato corso.
*Si scrivano i metodi per effettuare le seguenti attività.
*- Assegnare il numero di studenti che hanno preso un certo voto(per ognuno dei voti A,B,C,D,F
*- Leggere il numero di studenti che hanno preso un certo voto(per ognuno dei voti A,B,C,D,F
*- resituire il numero totale dei voti
*- restituire la percentuale di voti per ciascuna lettera come un intero compreso tra 0 e 100
*- disegnare un grafico, esempio:
*
* 0 10 20 30 40 50 60 70 80 90 100%
* | | | | | | | | | | |
* **************************************************
* ****A
* *****************B
* **********************C
* **************************D
* **********E
* **F
* il grafico avrà cinque barre. Ciascuna barra può essere una riga orizzontale di asterischi: il numero
* di asterischi di una riga sarà proporzionale alla percentuale per ciascuna categoria. Se si fa in modo che un
* asterisco rappresenti il 2% allora 50 asterischi rappresentano il 100%. si gradui l'asse orrizontale al 10 per cento
* da 0 a 100 e si etichetti ciascuna riga con il nome della lettera corrispondente.
*
* per esempio, se i punteggi sono 1A 4B 6C 2D 1F il numero totale di punteggi è 14, la percentuale di A è 7, di B è 29
* di C è 43, di D è 14 e di F è 7. la riga A conterrà 4 asterischi (7% di 50 arrotondato per eccesso) la riga B 14, la c 21
* la D 7 e la riga F ne conterrà 4.
* */


private int votiA, votiB, votiC, votiD, votiE, votiF, percentuale;


public int getVotiA() {
return votiA;
}


public void setVotiA(int votiA) {
this.votiA = votiA;
}


public int getVotiB() {
return votiB;
}


public void setVotiB(int votiB) {
this.votiB = votiB;
}


public int getVotiC() {
return votiC;
}


public void setVotiC(int votiC) {
this.votiC = votiC;
}


public int getVotiD() {
return votiD;
}


public void setVotiD(int votiD) {
this.votiD = votiD;
}


public int getVotiE() {
return votiE;
}


public void setVotiE(int votiE) {
this.votiE = votiE;
}


public int getVotiF() {
return votiF;
}


public void setVotiF(int votiF) {
this.votiF = votiF;
}


public void setPercentuale(int percentuale) {
this.percentuale = percentuale;
}


public DistribuzioneDeiVoti() {
super();
// TODO Auto-generated constructor stub
}


public DistribuzioneDeiVoti(int votiA, int votiB, int votiC, int votiD,
int votiE, int votiF, int percentuale) {
this.votiA = votiA;
this.votiB = votiB;
this.votiC = votiC;
this.votiD = votiD;
this.votiE = votiE;
this.votiF = votiF;
this.percentuale = percentuale;
}


public void input(){
Scanner in = new Scanner(System.in);

System.out.println("Inserire quanti studenti hanno preso A: ");
this.votiA = in.nextInt();
System.out.println("Inserire quanti studenti hanno preso B: ");
this.votiB = in.nextInt();
System.out.println("Inserire quanti studenti hanno preso C: ");
this.votiC = in.nextInt();
System.out.println("Inserire quanti studenti hanno preso D: ");
this.votiD = in.nextInt();
System.out.println("Inserire quanti studenti hanno preso E: ");
this.votiE = in.nextInt();
System.out.println("Inserire quanti studenti hanno preso F: ");
this.votiF = in.nextInt();

if(this.votiA <= 100 && this.votiB <= 100 && this.votiC <= 100 && this.votiD <= 100 && this.votiE <= 100 && this.votiF <= 100){
System.out.println();
System.out.println("Gli Studenti devono essere minori di 100");
}
else
System.exit(0);

}


public void leggistudenti(){
System.out.println("Studenti con il voto A sono: " + this.votiA);
System.out.println("Studenti con il voto B sono: " + this.votiB);
System.out.println("Studenti con il voto C sono: " + this.votiC);
System.out.println("Studenti con il voto D sono: " + this.votiD);
System.out.println("Studenti con il voto E sono: " + this.votiE);
System.out.println("Studenti con il voto F sono: " + this.votiF);
System.out.println("totale voti (da A fino a F): " + this.totalevoti());
System.out.println();
}


public int totalevoti(){
int totale;
totale =(this.getVotiA() + this.getVotiB() + this.getVotiC() + this.getVotiD() + this.getVotiE() + this.getVotiF());
return totale;
}

public int percentuale_votoA(){
int a,a1;

a = (getVotiA() / totalevoti()); // calcolo della percentuale voto
a1 = (a * 100);
return a1;
}

public int percentuale_votoB(){
int b;

b = (this.votiB / this.totalevoti()) * 100;
return b;
}

public int percentuale_votoC(){
int c;

c = (this.getVotiC() / this.totalevoti()) * 100;
return c;
}

public int percentuale_votoD(){
int d;

d = (this.getVotiD() / this.totalevoti()) * 100;
return d;
}

public int percentuale_votoE(){
int e;

e = (this.getVotiE() / this.totalevoti()) * 100;
return e;
}

public int percentuale_votoF(){
int f;

f = (this.votiF / totalevoti()) * 100;
return f;
}

public void stampaAF(){
System.out.println("Voto A: " + this.percentuale_votoA() + "%");
System.out.println("Voto B: " + this.percentuale_votoB() + "%");
System.out.println("Voto C: " + this.percentuale_votoC() + "%");
System.out.println("Voto D: " + this.percentuale_votoD() + "%");
System.out.println("Voto E: " + this.percentuale_votoE() + "%");
System.out.println("Voto F: " + this.percentuale_votoF() + "%");
System.out.println();
}



public void stampaGrafico(){

for(int i=0; i < 110; i = i + 10){ //stampa orrizontalmente a 10 a 10 le cifre
System.out.print(i + " ");
}

System.out.println();

for(int y=0; y < 110; y = y + 10){ //stampa orrizontalmente a 10 a 10 il "|"
System.out.print(" | ");
}

System.out.println();

for(int i=0; i < this.percentuale_votoA(); i++){
System.out.print("*");
}

System.out.println();

for(int i=0; i < this.percentuale_votoB(); i++){
System.out.print("*");
}

System.out.println();

for(int i=0; i < this.percentuale_votoC(); i++){
System.out.print("*");
}

System.out.println();

for(int i=0; i < this.percentuale_votoD(); i++){
System.out.print("*");
}

System.out.println();

for(int i=0; i < this.percentuale_votoE(); i++){
System.out.print("*");
}

System.out.println();

for(int i=0; i < this.percentuale_votoF(); i++){
System.out.print("*");
}



}


}
 

ottofonsuppost

Utente Attivo
10 Mag 2016
170
13
18
Questo tuo programma FA SCHIFO. innanzitutto quando si SCRIVE un programma si usano le // o */ per COMMENTARE LE PARTI DEL PROGRAMMA, in modo che la gente ed il programmatore non diventi scemo a ricostruire le intenzioni del creatore; da uno sguardo sommario si intuisce che esiste codice RIDONDANTE, in quanto non usi un METODO per compiere le stesse identiche operazioni ripetitive.