Progetto - Distribuzioni Voti

di il
17 risposte

Progetto - Distribuzioni Voti

Ciao a tutti,

In linguaggio java, devo svolgere questo esercizio preso dal libro, ma non so come devo iniziare, per svolgere tale esercizio, mi potete aiutare?
Per il momento ho fatto solo l'input dei dati, che ho fatto in questo modo:

    public int ins(int punteggio){
          Scanner in = new Scanner(System.in);
          punteggio = this.percentuale_voti;
          for(int i=1; i <= 5; i++){
             System.out.println("Studente n°: " + i);
             if(punteggio <= 50){
                System.out.println("Inserisci un voto al " + i + " studente: ");
                punteggio = in.nextInt();
             }
             else{
                break;
             }
          }
          return punteggio;
       }



Poi ho fatto il calcolo della percentuale voto:

public int getPercentuale_voti() {
      int p;
      percentuale_voti = (this.percentuale_voti / 100);
      return p = this.percentuale_voti * 10;
   }



Però non ho capito, se il primo astrerisco equivale al 2%, e 50 asterischi equivale al 100%, come faccio a stabilire le condizioni dei voti in lettere???

/*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.
* */

17 Risposte

  • Re: Progetto - Distribuzioni Voti

    Salve a tutti,

    Ho realizzato tutto l'esercizio, ci sono dei seguenti problemi:

    1) non escono i risultati del voto in percentuale
    2) ho realizzato il grafico, ma se non escono i voti in percentuale, non si visualizza.

    controllate il codice, e se gentilmente me lo potete correggere. Grazie

    
    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);
    		
    		if(this.getVotiA() <= 100){
    			System.out.println("Inserire quanti studenti hanno preso A: ");
    			this.votiA = in.nextInt();
    		}
    		else
    			System.exit(0);
    		
    		if(this.votiB <= 100){
    			System.out.println("Inserire quanti studenti hanno preso B: ");
    			this.votiB = in.nextInt();
    		}
    		else
    			System.exit(0);
    		
    		if(this.votiC <= 100){
    			System.out.println("Inserire quanti studenti hanno preso C: ");
    			this.votiC = in.nextInt();
    		}
    		else
    			System.exit(0);
    		
    		if(this.votiD <= 100){
    			System.out.println("Inserire quanti studenti hanno preso D: ");
    			this.votiD = in.nextInt();
    		}
    		else
    			System.exit(0);
    		
    		if(this.votiE <= 100){
    			System.out.println("Inserire quanti studenti hanno preso E: ");
    			this.votiE = in.nextInt();
    		}
    		else
    			System.exit(0);
    		
    		if(this.votiF <= 100){
    			System.out.println("Inserire quanti studenti hanno preso F: ");
    			this.votiF = in.nextInt();
    		}
    		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;
    		
    		a = (getVotiA() / totalevoti()) * 100; // calcolo della percentuale voto 
    		return a;
    	}
    	
    	public int percentuale_votoB(){
    		int b;
    		
    		b = (this.getVotiB() / 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: " + 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("*");
    		}
    		
    		
    		
    	}
    	
    	
    } 
    
    
    
    

    
    package progetto5.oop.com;
    
    public class VotiMain {
    
    	public static void main(String[] args) {
    		
    		DistribuzioneDeiVoti f = new DistribuzioneDeiVoti();
    		
    		f.input();
    		f.leggistudenti();
    		f.totalevoti();
    		f.stampaAF();
    		f.stampaGrafico();
    		
    	}
    
    }
    
    
    
  • Re: Progetto - Distribuzioni Voti

    Come mai il calcolo della percentuale, non funziona?
    Come mai il controllo dell'input non và??
  • Re: Progetto - Distribuzioni Voti

    robot ha scritto:


    Come mai il calcolo della percentuale, non funziona?
    Una espressione come

    (getVotiA() / totalevoti())

    Il dividendo è un int e il divisore è anche un int, quindi si dice che la divisione è "intera". NON è floating-point. Quindi es. 15 / 50 dà 0, NON 0.3 .
    Se vuoi che la divisione sia floating-point, devi avere già o portare temporaneamente (almeno) uno dei due operandi a float o double (a tua scelta).

    robot ha scritto:


    Come mai il controllo dell'input non và??
    Non ho letto tutto tutto, a cosa ti riferisci di preciso??
  • Re: Progetto - Distribuzioni Voti

    Per il metodo input, l'ho realizzato in questo modo, per fare il controllo, nel senso digitando un intero che deve essere <= 100.
    Però per migliorare il controllo, nell'if, che cosa ci posso aggiungere??
    
    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);
    		
    	}
    
    
  • Re: Progetto - Distribuzioni Voti

    robot ha scritto:


    Per il metodo input, l'ho realizzato in questo modo, per fare il controllo, nel senso digitando un intero che deve essere <= 100.
    Però per migliorare il controllo, nell'if, che cosa ci posso aggiungere??
    Più che if sarebbe meglio un ciclo. Ripeti l'input se il valore non è compreso tra 0 e 100. E considera anche che nextInt() può causare InputMismatchException se si inserisce qualcosa che non è un int. In tal caso il token "sballato" lo dovresti rimuovere tu.

    E visto che questo tipo di input lo ripeto diverse volte, allora suggerimento: fai un metodo apposito es. inputVoto
    E inoltre: tieni lo Scanner come variabile di istanza, inizializzato quando si crea la istanza della tua classe. Così non avrai problemi (lo Scanner da standard-input deve essere uno solo).
  • Re: Progetto - Distribuzioni Voti

    L'ho fatto in questo modo, ma c'è qualcosa che non và per il controllo ietrativo.
    
    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;
    	Scanner in = new Scanner(System.in);
    
    	
    	public DistribuzioneDeiVoti(int votiA, int votiB, int votiC, int votiD,
    			int votiE, int votiF, Scanner in) {
    		this.votiA = votiA;
    		this.votiB = votiB;
    		this.votiC = votiC;
    		this.votiD = votiD;
    		this.votiE = votiE;
    		this.votiF = votiF;
    		this.in = in;
    	}
    	
    
    
    	public DistribuzioneDeiVoti() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
    
    
    
    
    	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 inputVoti(){
    		
    		while((this.votiA >= 0) && (this.votiA <= 100)){
    			System.out.println("Inserire quanti studenti hanno preso A: ");
    			this.votiA = in.nextInt();
    				System.out.println("il valore non è compreso tra 0 e 100");
    				break;
    		}
    		
    		while((this.votiB >= 0) && (this.votiB <= 100)){
    			System.out.println("Inserire quanti studenti hanno preso A: ");
    			this.votiB = in.nextInt();
    				System.out.println("il valore non è compreso tra 0 e 100");
    				break;
    		}
    		
    		while((this.votiC >= 0) && (this.votiC <= 100)){
    			System.out.println("Inserire quanti studenti hanno preso A: ");
    			this.votiC = in.nextInt();
    				System.out.println("il valore non è compreso tra 0 e 100");
    				break;
    		}
    		
    		while((this.votiD >= 0) && (this.votiD <= 100)){
    			System.out.println("Inserire quanti studenti hanno preso A: ");
    			this.votiD = in.nextInt();
    				System.out.println("il valore non è compreso tra 0 e 100");
    				break;
    		}
    		
    		while((this.votiE >= 0) && (this.votiE <= 100)){
    			System.out.println("Inserire quanti studenti hanno preso A: ");
    			this.votiE = in.nextInt();
    				System.out.println("il valore non è compreso tra 0 e 100");
    				break;
    		}
    		
    		while((this.votiF >= 0) && (this.votiF <= 100)){
    			System.out.println("Inserire quanti studenti hanno preso A: ");
    			this.votiF = in.nextInt();
    				System.out.println("il valore non è compreso tra 0 e 100");
    				break;
    		}
    	}
    			
    	
     
    	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 double totalevoti(){
    		double totale;
    			totale = (this.getVotiA() + this.getVotiB() + this.getVotiC() + this.getVotiD() + this.getVotiE() + this.getVotiF());
    				return totale;
    	}
    	
    	public double percentuale_votoA(){
    		double a,a1;
    		
    		a = (getVotiA() / totalevoti()); // calcolo della percentuale voto 
    		a1 = (a * 100);
    		return a1;
    	}
    	
    	public double percentuale_votoB(){
    		double b;
    		
    		b = (this.votiB / this.totalevoti()) * 100;
    		return b;
    	}
    	
    	public double percentuale_votoC(){
    		double c;
    		
    		c = (this.getVotiC() / this.totalevoti()) * 100;
    		return c;
    	}
    	
    	public double percentuale_votoD(){
    		double d;
    		
    		d = (this.getVotiD() / this.totalevoti()) * 100;
    		return d;
    	}
    	
    	public double percentuale_votoE(){
    		double e;
    		
    		e = (this.getVotiE() / this.totalevoti()) * 100;
    		return e;
    	}
    	
    	public double percentuale_votoF(){
    		double 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("*");
    		}
    		
    		
    		
    	}
    
    
    
    	public Scanner getIn() {
    		return in;
    	}
    
    
    
    	public void setIn(Scanner in) {
    		this.in = in;
    	}
    
  • Re: Progetto - Distribuzioni Voti

    robot ha scritto:


    L'ho fatto in questo modo, ma c'è qualcosa che non và per il controllo ietrativo.
    A parte che hai fatto un sacco di ripetizioni. Ma a parte questo i cicli degli input non sono molto sensati. Innanzitutto dopo il nextInt() stampi comunque "il valore non è compreso ....." che non ha senso. E comunque per un ciclo del genere sarebbe più sensato un do-while invece che un while, perché devi fare comunque almeno 1 input.
  • Re: Progetto - Distribuzioni Voti

    Grazie, adesso procedo con il do--while
  • Re: Progetto - Distribuzioni Voti

    Ho fatto il ciclo do...while, ma se è > di 100, non ripete, come devo fare per impostare???
    
    public void inputVoti(){
    		
    		do{
    			
    			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();
    			
    		}while((this.votiA >= 0 && this.votiA <= 100) && (this.votiB >= 0 && this.votiB <= 100) && (this.votiC >= 0 && this.votiC <= 100) && (this.votiD >= 0 && this.votiD <= 100) && (this.votiE >= 0 && this.votiE <= 100) && (this.votiF >= 0 && this.votiF <= 100));
    				
    	}
    
    
    
    
  • Re: Progetto - Distribuzioni Voti

    robot ha scritto:


    Ho fatto il ciclo do...while, ma se è > di 100, non ripete, come devo fare per impostare???
    No, è contorto e lungo. Un ciclo per ciascun voto, non un ciclo per tutti i voti. E per evitare ripetizioni il suggerimento in precedenza era proprio quello di fare un metodo apposito.
  • Re: Progetto - Distribuzioni Voti

    Intendi in questo modo??
    
    public void inputVoti(){
    		
    		do{
    			
    			System.out.println("Inserire quanti studenti hanno preso A: ");
    			this.votiA = in.nextInt();
    			
    		}while(this.votiA >= 0 && this.votiA <= 100);
    		
    		do{
    			
    			System.out.println("Inserire quanti studenti hanno preso B: ");
    			this.votiB = in.nextInt();
    			
    		}while(this.votiB >= 0 && this.votiB <= 100);
    			
    		do{
    			
    			System.out.println("Inserire quanti studenti hanno preso C: ");
    			this.votiC = in.nextInt();
    			
    		}while(this.votiC >= 0 && this.votiC <= 100);
    		
    		do{
    			
    			System.out.println("Inserire quanti studenti hanno preso D: ");
    			this.votiD = in.nextInt();
    			
    		}while(this.votiD >= 0 && this.votiD <= 100);
    
    		do{
    	
    		System.out.println("Inserire quanti studenti hanno preso E: ");
    		this.votiE = in.nextInt();
    	
    		}while(this.votiE >= 0 && this.votiE <= 100);
    
    		do{
    	
    		System.out.println("Inserire quanti studenti hanno preso F: ");
    		this.votiF = in.nextInt();
    		
    		}while(this.votiF >= 0 && this.votiF <= 100);
    				
    	}
    
    
    
  • Re: Progetto - Distribuzioni Voti

    robot ha scritto:


    Intendi in questo modo??
    No. Non vedi le ripetizioni?
  • Re: Progetto - Distribuzioni Voti

    Si, ho notato che ci sono sempre le ripetizioni.
    Ho pensato di creare 6 metodi, per richiamare il tutto all'interno del metodo inputvoti, che cosa nè pensi???
  • Re: Progetto - Distribuzioni Voti

    robot ha scritto:


    Si, ho notato che ci sono sempre le ripetizioni.
    Ho pensato di creare 6 metodi, per richiamare il tutto all'interno del metodo inputvoti, che cosa nè pensi???
    No.
    public int inputNumeroVoti(String nomeVoto) {
        // completa tu
    }
    Poi altrove:

    votiA = inputNumeroVoti("A");
    votiB = inputNumeroVoti("B");
    ecc.....

    E' così che si evitano ripetizioni, studiando metodi che siano ri-utilizzabili. E nel tuo è perfettamente possibile, l'unica differenza tra gli input è solo il nome del voto A, B, ecc....
Devi accedere o registrarti per scrivere nel forum
17 risposte