Return due parametri

di il
4 risposte

Return due parametri

Ciao ragazzi, sono alle prese con questo esercizio che mi sta mandando un po in crisi perché non riesco a capire se c'è un errore di stampa nella stesura e se a me sfugge qualcosa nello svolgimento (allego foto perché è un po lungo da trascrivere):
IMG_20190829_104340.jpg
IMG_20190829_104340.jpg

??
IMG_20190829_104354.jpg
IMG_20190829_104354.jpg

Quello che mi manda in confusione sono i metodi getoVoto(String nome1, String nome2) e il metodo getVoti.
Non riesco a capire se in realtà il primo sia un metodo per inserire il proprio voto(quindi la scelta) o se sia un semplice metodo get e in quel caso mi sfugge il senso dei due parametri di ingresso.
Per il metodo getVoti, visto che deve restituire due valori, pensavo di usare un array di 2 elementi.

Un vostro parere?
Grazie mille in anticipo

4 Risposte

  • Re: Return due parametri

    Penso forse nel metodo getvoto(String nome1, String nome2) in base i nomi dei candidati cioè presidente1 o presidente2 oppure vicepresidenti1 e 2 bisogna fare una condizione restituendo il voto dei candidati scelti.

    Per getvoti basta un int con un contatore.
  • Re: Return due parametri

    Anche perché poi suppongo che la scelta del voto debba essere espressa nel costruttore che inizializza l'oggetto del votante.

    Per quanto riguarda getVoti, credo che debba restituire i nomi del presidente e del vicepresidente scelti tramite 0,1,2, perché da quanto si capisce questo stesso metodo deve essere utilizzato all'interno di confermaVoti che a sua volta deve richiamare registraVoti i quali sono inseriti tutti e tre all'interno di restituisciEConfermaVoti.
    Almeno cosi mi sembra di capire. non è molto chiaro come è spiegato
    Poi cmq getVoto(String, String) rimane un mistero
  • Re: Return due parametri

    Ciao,
    per getVoto penso che nome1 e nome2 siano due nomi dei candidati, il valore di ritorno è 0 se nessuno dei due è stato votato dall'individuo, 1 se è stato votato nome1, 2 se è stato votato nome2.
    Quello che non mi torna è che questi metodi dovrebbero essere inseriti in una classe "Votante".
  • Re: Return due parametri

    Alla fine ho risolto in questo modo, presumendo che il metodo getVoto(String, String) prendesse in ingresso il nome del candidato presidente e quello del candidato vicepresidente
    
    import java.util.Scanner;
    
    public class RegistratoreVoti {
    	
    	private static String  nomeCandidatoPresidente1;
    	private static String  nomeCandidatoPresidente2;
    	private static String  nomeCandidatoVicePresidente1;
    	private static String  nomeCandidatoVicePresidente2;
    	private static int votiPerCandidatoPresidente1;
    	private static int votiPerCandidatoPresidente2;
    	private static int votiPerCandidatoVicePresidente1;
    	private static int votiPerCandidatoVicePresidente2;
    	private int mioVotoPerPresidente;
    	private int mioVotoPerVicePresidente;
    	
    	public RegistratoreVoti() {
    		mioVotoPerPresidente=0;
    		mioVotoPerVicePresidente=0;
    	}
    	
    	public static void setCandidatiPresidente(String nome1,String nome2) {
    		nomeCandidatoPresidente1=nome1;
    		nomeCandidatoPresidente2=nome2;
    	}
    	
    	public static void setCandidatiVicePresidente(String nome1, String nome2) {
    		nomeCandidatoVicePresidente1=nome1;
    		nomeCandidatoVicePresidente2=nome2;
    	}
    	
    	public static void resettaVoti() {
    		votiPerCandidatoPresidente1=0;
    		votiPerCandidatoPresidente2=0;
    		votiPerCandidatoVicePresidente1=0;
    		votiPerCandidatoVicePresidente2=0;
    	}
    	
    	public static String getVotiPresidenti() {
    		return "Il primo candidato presidente: "+nomeCandidatoPresidente1+" ha ricevuto "+votiPerCandidatoPresidente1+" voti\n"+
    			   "Il secondo candidato presidente: "+nomeCandidatoPresidente2+" ha ricevuto "+votiPerCandidatoPresidente2+" voti\n";
    	}
    	
    	public static String getVotiVicePresidenti() {
    		return "Il primo candidato vice presidente: "+nomeCandidatoVicePresidente1+" ha ricevuto "+votiPerCandidatoVicePresidente1+" voti\n"+
    			   "Il secondo candidato vice presidente: "+nomeCandidatoVicePresidente2+" ha ricevuto "+votiPerCandidatoVicePresidente2+" voti\n";
    	}
    	
    	private void getVoto(String nome1, String nome2) {
    		//espressione del voto per i candidati a Presidente
    		if(nome1.equals(nomeCandidatoPresidente1)) {
    			mioVotoPerPresidente=1;
    		}
    		if(nome1.equals(nomeCandidatoPresidente2)) {
    			mioVotoPerPresidente=2;
    		}
    		
    		//espressione del voto per i candidati a Vice Presidente
    		if(nome2.equals(nomeCandidatoVicePresidente1)) {
    			mioVotoPerVicePresidente=1;
    		}
    		if(nome2.equals(nomeCandidatoVicePresidente2)) {
    			mioVotoPerVicePresidente=2;
    		}
    	}
    	
    	private void getVoti() {
    		if(mioVotoPerPresidente==1) {
    			System.out.println("Stai votando per: "+nomeCandidatoPresidente1+" come Presidente");
    		}else if(mioVotoPerPresidente==2) {
    			System.out.println("Stai votando per: "+nomeCandidatoPresidente2+" come Presidente");
    		}
    		
    		if(mioVotoPerVicePresidente==1) {
    			System.out.println("Stai votando per: "+nomeCandidatoVicePresidente1+" come Vice Presidente");
    		}else if(mioVotoPerVicePresidente==2) {
    			System.out.println("Stai votando per: "+nomeCandidatoVicePresidente2+" come Vice Presidente");
    		}
    	}
    	
    	public boolean confermaVoti() {
    		getVoti();
    		Scanner tastiera= new Scanner(System.in);
    		System.out.println("Confermi il tuo voto?");
    		String risposta=tastiera.nextLine();
    		if(risposta.equalsIgnoreCase("si")) {
    			return true;
    		}else {
    			return false;
    		}
    	}
    	
    	private void registraVoti() {
    		if(mioVotoPerPresidente==1) {
    			votiPerCandidatoPresidente1++;
    		}
    		if(mioVotoPerPresidente==2) {
    			votiPerCandidatoPresidente2++;
    		}
    		
    		if(mioVotoPerVicePresidente==1) {
    			votiPerCandidatoVicePresidente1++;
    		}
    		if(mioVotoPerVicePresidente==2) {
    			votiPerCandidatoVicePresidente2++;
    		}
    		
    	}
    	
    	public void restituisciEConfermaVoti() {
    		
    		System.out.println("I candidati a Presidente sono: " + nomeCandidatoPresidente1+ " e "+ nomeCandidatoPresidente2);
    		System.out.println("I candidati a Vice presidente sono: " + nomeCandidatoVicePresidente1+ " e "+ nomeCandidatoVicePresidente2);
    		System.out.println();
    		System.out.println("Per chi vuoi votare? (Inserisci il nome del Presidente e poi quello del Vice presidente)");
    		Scanner tastiera=new Scanner (System.in);
    		String presidente=tastiera.nextLine();
    		String vice=tastiera.nextLine();
    		getVoto(presidente, vice);
    	
    		
    		while(!confermaVoti()) {
    			System.out.println("Per chi vuoi votare?");
    			getVoto(tastiera.next(), tastiera.next());
    		}
    		
    		registraVoti();
    	}
    	
    
    }
    
Devi accedere o registrarti per scrivere nel forum
4 risposte