Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27

Discussione: problema "Torneo"

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108

    problema "Torneo"

    Ragazzi vi posto prima le classi che ho implementato:
    codice:
    public class Squadra implements Iterable<Giocatore>{
    	
    	private String nomeSquadra;
    	private List<Giocatore> giocatori;
    	
    	public Squadra(String nomeSq){
    		this.nomeSquadra = nomeSq;
    		giocatori = new ArrayList<Giocatore>();
    	}
    	
    	//metodi
    	public String getNome(){
    		return this.nomeSquadra;
    	}	
    	
    	public void addGiocatore(Giocatore g){
    		if(!giocatori.contains(g))
    			giocatori.add(g);
    	}
    	
    	public Iterator<Giocatore> iterator() {
    	      return giocatori.iterator();
    	}
    	
    	public void sort(){
    		Collections.sort(giocatori);
    	}
    	
    	public String toString(){
    		return getNome();
    	}
    	
    	public void stampa(){
    		for(Giocatore g : giocatori){
    			System.out.println(g.toString() + " " + getNome());
    		}
    	}
    
    }
    codice:
    public abstract class Giocatore implements Comparable<Giocatore> {
    	
    	String nome,cognome;
    	double altezza;
    	Squadra squadra;
    	
    	public Giocatore(String nome, String cognome, double alt, Squadra sq){
    		this.nome = nome;
    		this.cognome = cognome;
    		this.altezza = alt;
    		this.squadra = sq;
    	}
    	
    	//metodi
    	public String getNome(){
    		return this.nome;
    	}
    	
    	public String getCognome(){
    		return this.cognome;
    	}
    	
    	public double getAltezza(){
    		return this.altezza;
    	}
    	
    	public Giocatore[] ordina(Giocatore[] array){
    		Giocatore g = null;
    		for(int j=0;j<array.length;j++){
    			for(int i=0;i<array.length;i++){
    				if(array[j].altezza>array[i].altezza){
    					g = array[j];
    					array[j] = array[i];
    					array[i] = g;
    				}
    			}
    		}
    		return array;
    	}
    	
    	public String toString(){
    		String s = getNome() + " " + getCognome() + " " + getAltezza() + " " + squadra.getNome();
    		return s;
    	}
    
    }
    La classe Test è la seguente:
    codice:
    public static void main(String[] args) throws Exception {
    		// TODO Auto-generated method stub
    	FileReader fr = new FileReader("Squadre.txt");
    	BufferedReader br = new BufferedReader(fr);
    	String s = br.readLine();
    
    	ArrayList<Giocatore> giocatori = new ArrayList<Giocatore>();
    	Squadra squadre = new Squadra("");
    		
    	while(s!=null){
    
    		String[] array = s.split(",");
    		
    		if(s.charAt(s.length()-1)=='R'){
    			Riserva r = null;
    			String nome = array[0];
    			String cognome = array[1];
    			String altezza = array[2];
    			double alt = Double.parseDouble(altezza);
    			String squadra = array[3];
    			Squadra sq = new Squadra(squadra);
    			r = new Riserva(nome,cognome,alt,sq);
    			giocatori.add(r);
    			squadre.addGiocatore(r);
    		}
    		else if (s.charAt(s.length()-1)=='T'){
    			Titolare t = null;
    			String nome = array[0];
    			String cognome = array[1];
    			String altezza = array[2];
    			double alt = Double.parseDouble(altezza);
    			String squadra = array[3];
    			Squadra sq = new Squadra(squadra);
    			t = new Titolare(nome,cognome,alt,sq);
    			giocatori.add(t);
    			squadre.addGiocatore(t);
    		}
    			
    		s = br.readLine();
    	}
    		
    	// STAMPO I GIOCATORI 	
    	Giocatore[] g = new Giocatore[giocatori.size()];
    	Giocatore[] gioca = giocatori.toArray(g);
    	//ORDINO
    	for(int i=0;i<gioca.length;i++){
    		gioca = gioca[i].ordina(g);
    	}
    	
    	System.out.println("GIOCATORI");
    	for(int i=0;i<gioca.length;i++){
    		if(gioca[i] instanceof Titolare)
    			System.out.println(gioca[i].toString() + " titolare");
    		else
    			System.out.println(gioca[i].toString() + " riserve");
    	}
    	
    	System.out.println();
    	System.out.println("TITOLARI");
    	for(int i=0;i<gioca.length;i++){
    		if(gioca[i] instanceof Titolare){
    			System.out.println(gioca[i].toString());
    		}
    	}
    	System.out.println();
    	System.out.println("RISERVE");
    	for(int i=0;i<gioca.length;i++){
    		if(gioca[i] instanceof Riserva){
    			System.out.println(gioca[i].toString());
    		}
    	}	
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108
    Ci sono inoltre due classi Riserva e Titolare che sono concrete e che estendono Giocatore.

    Il mio problema è che devo stampare tutti i giocatori per ogni squadra, nel senso

    SQUADRA AQUILE:
    Luca Vincesempre 1.92 titolare
    Alberto Bianchi 1.75 titolare
    Federico Orsini 1.75 riserva
    Paolo Verdi 1.75 titolare

    SQUADRA CONDOR:
    Giuseppe Mario Delle Querce 1.83 titolare
    Guido Abate 1.72 riserva
    Giovanni Milanesi 1.72 titolare

    SQUADRA FALCHI:
    Roberto Di Verona 1.92 titolare
    Paolo Falchi 1.82 titolare
    Carlo Alberto Ferrari 1.75 riserva

    SQUADRA LUPI:
    Franco Brambilla 1.98 titolare
    Mario Rossi 1.96 titolare
    Antonio Mario Ferrarini 1.75 riserva
    Alberto Ferraroni 1.75 riserva

    come faccio??

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    mi dici il tuo problema?in cosa il risultato desiderato differisce dal risultato ottenuto.
    Così è come dire "ecco qui, debuggate e trovatemi l'errore" e pochi hanno la pazienza di farlo (e non è nemmeno il modo di chiedere le cose)

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108
    l'output è quello che deve uscire ed è un esempio di stampa

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    forse non capisco io,
    tu cosa vuoi?
    cosa ottieni?
    perché non ti va bene?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108
    l'esercizio è questo:
    Esempio di esecuzione
    ---------------------

    Supponiamo che le linee sullo standard input siano:

    Carlo Alberto,Ferrari,1.75,falchi,R
    Giovanni,Milanesi,1.72,condor,T
    Guido,Abate,1.72,condor,R
    Mario,Rossi,1.96,lupi,T
    Giuseppe Mario,Delle Querce,1.83,condor,T
    Roberto,Di Verona,1.92,falchi,T
    Alberto,Ferraroni,1.75,lupi,R
    Luca,Vincesempre,1.92,aquile,T
    Paolo,Verdi,1.75,aquile,T
    Federico,Orsini,1.75,aquile,R
    Franco,Brambilla,1.98,lupi,T
    Paolo,Falchi,1.82,falchi,T
    Alberto,Bianchi,1.75,aquile,T
    Antonio Mario,Ferrarini,1.75,lupi,R


    Il comando

    java Torneo

    deve stampare:


    SQUADRA AQUILE:
    Luca Vincesempre 1.92 titolare
    Alberto Bianchi 1.75 titolare
    Federico Orsini 1.75 riserva
    Paolo Verdi 1.75 titolare

    SQUADRA CONDOR:
    Giuseppe Mario Delle Querce 1.83 titolare
    Guido Abate 1.72 riserva
    Giovanni Milanesi 1.72 titolare

    SQUADRA FALCHI:
    Roberto Di Verona 1.92 titolare
    Paolo Falchi 1.82 titolare
    Carlo Alberto Ferrari 1.75 riserva

    SQUADRA LUPI:
    Franco Brambilla 1.98 titolare
    Mario Rossi 1.96 titolare
    Antonio Mario Ferrarini 1.75 riserva
    Alberto Ferraroni 1.75 riserva

    ed io lo devo fare.......

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ok e ora iniziamo a capirci, che output hai? tu mi dai l'input, l'output desiderato, non quello che ottieni.
    Non posso nemmeno provare il tuo codice (anche se non si farebbe) visto che non dai le classi concrete risorse e titolare).

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108
    forse sono io che non mi spiego o tu non leggi benissimo.

    1) ho messo le classi che interessano il problema anche perchè postarle tutte mi sembra eccessivo;
    2) volevo un aiuto per stampare l'output dell'esempio e forse l'unico mio errore e non aver postato l'input;
    3) non ho chiesto di provare nessun codice a nessuno

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    forse non ti è chiaro, tu fai una funzione minima di stampa (e la leggo) e sembra funzionare, ma non ho cosa è il tuo output, hai messo quello che devi ottenere.
    Vuoi che ti faccio io l'algoritmo? vuoi che lo provo io?
    Questo è il tuo codice di stampa, non ci vedo errori madornali(solo io lo scriverei diversamente e sfrutterei il polimorfismo, ma così può anche andare bene).

    codice:
    	
    	System.out.println("GIOCATORI");
    	for(int i=0;i<gioca.length;i++){
    		if(gioca[i] instanceof Titolare)
    			System.out.println(gioca[i].toString() + " titolare");
    		else
    			System.out.println(gioca[i].toString() + " riserve");
    	}
    	
    	System.out.println();
    	System.out.println("TITOLARI");
    	for(int i=0;i<gioca.length;i++){
    		if(gioca[i] instanceof Titolare){
    			System.out.println(gioca[i].toString());
    		}
    	}
    	System.out.println();
    	System.out.println("RISERVE");
    	for(int i=0;i<gioca.length;i++){
    		if(gioca[i] instanceof Riserva){
    			System.out.println(gioca[i].toString());
    		}
    	}
    quindi per l'ennesima volta, cosa non fa il tuo programma che invece è richiesto?
    Non so in che lingua dirtelo, quale è l'output di esecuzione?

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108
    in qualche messaggio precedente ho scritto che il mio problema è quello di raccogliere i giocatori per ogni squadra e stamparli in quel modo...il mio output va bene e non c'entra nulla su quello che chiedo...è un'altra cosa infatti mi stampa tutti i giocatori e poi li divide per categoria

    non riesco a prelevare il nome della squadra ed associalo al giocatore appartenente a quella squadra

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.