Test su classi

Blog Forum Java Test su classi

  • Questo topic ha 3 risposte, 1 partecipante ed è stato aggiornato l'ultima volta 2 anni, 9 mesi fa da JavaRe.
Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Autore
    Post
  • #4955
    Salvatore
    Ospite
    Up
    2
    Down
    ::

    Risoluzione Esercizi Classi – Livello facile

    #4957
    admin
    Amministratore del forum
    Up
    0
    Down
    ::

    Ciao, gli esercizi di quel livello vengono generati in modo casuale. Posta il singolo esercizio in cui hai problemi e cercherò di aiutarti

    #4958
    Salvatore
    Ospite
    Up
    1
    Down
    ::

    3. Scrivere un programma Java che chiede all’utente l’inserimento di un elenco di squadre di calcio.
    Per ogni squadra di calcio interessa:
    • Nome della squadra
    • Citta dove disputa le partite casalinghe
    • Nome dello stadio
    • Numero di spettatori che può accogliere lo stadio

    Il programma dovrà effettuare i seguenti controlli
    • Che tutti i campi siano stati inseriti
    • Che Il nome della squadra non sia maggiore di 70 caratteri
    • Che il nome della squadra sia univoco (cioè non è già stato inserito in precedenza)
    • Che il nome della città non sia più lungo di 35 caratteri
    • Che il nome dello stadio non contenga un apice (‘)
    • Che il numero degli spettatori sia un numero compreso tra 5000 e 50000
    Strutturare il programma di modo da creare classi di Eccezioni personalizzate
    Le funzioni da realizzare sono:
    • Inserimento di una squadra di calcio.
    • Cancellazione di una squadra di calcio. Avverrà digitando il nome della squadra di calcio
    • Ricerca di una squadra di calcio per:
    o Nome esatto della squadra (la ricerca fornisce come risultato solo la squadra di calcio che ha quel nome)
    o Nome parziale della squadra (la ricerca fornisce come risultato solo la squadra di calcio che inizia con quel nome)
    • Elenco di tutte le squadre di calcio

    #4959
    JavaRe
    Ospite
    Up
    1
    Down
    ::

    Una possibile soluzione è la seguente:

    package com;
    
    public class SquadraCalcio {
    	private String nome;
    	private String citta;
    	private String stadio;
    	private int numeroSpettatori;
    
    	public String getNome() {
    		return nome;
    	}
    
    	public void setNome(String nome) {
    		this.nome = nome;
    	}
    
    	public String getCitta() {
    		return citta;
    	}
    
    	public void setCitta(String citta) {
    		this.citta = citta;
    	}
    
    	public String getStadio() {
    		return stadio;
    	}
    
    	public void setStadio(String stadio) {
    		this.stadio = stadio;
    	}
    
    	public int getNumeroSpettatori() {
    		return numeroSpettatori;
    	}
    
    	public void setNumeroSpettatori(int numeroSpettatori) {
    		this.numeroSpettatori = numeroSpettatori;
    	}
    
    	@Override
    	public boolean equals(Object obj) {
    		SquadraCalcio other = (SquadraCalcio) obj;
    		if (nome == null) {
    			if (other.nome != null)
    				return false;
    		} else if (!nome.equals(other.nome))
    			return false;
    		return true;
    	}
    
    	@Override
    	public String toString() {
    		return "SquadraCalcio [nome=" + nome + ", citta=" + citta + ", stadio=" + stadio + ", numeroSpettatori="
    				+ numeroSpettatori + "]";
    	}
    
    }
    
    package com;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    public class GestioneSquadreCalcio {
    	private Scanner scan = new Scanner(System.in);
    	private List<SquadraCalcio> squadre = new ArrayList<SquadraCalcio>();
    
    	public String leggiNomeSquadra() throws WrongInputException {
    		scan = new Scanner(System.in);
    		boolean valido = false;
    		String tmp = null;
    		while (!valido) {
    			System.out.println("Nome:");
    			tmp = scan.nextLine();
    			if (tmp.contains("@"))
    				throw new WrongInputException("@ carattere non permesso");
    
    			if (tmp.length() == 0 || tmp.length() > 70)
    				System.out
    						.println("Il valore inserito deve avere una lunghezza maggiore di 0 e minore di 70 caratteri ");
    			else {
    				SquadraCalcio c = new SquadraCalcio();
    				c.setNome(tmp);
    				if (squadre.contains(c))
    					System.out.println("E' già presente una squadra con questo nome!");
    				else
    					valido = true;
    			}
    		}
    
    		return tmp;
    	}
    
    	public String leggiNomeCitta() {
    		scan = new Scanner(System.in);
    		boolean valido = false;
    		String tmp = null;
    		while (!valido) {
    			System.out.println("Città:");
    			tmp = scan.nextLine();
    			if (tmp.length() == 0 || tmp.length() > 35)
    				System.out
    						.println("Il valore inserito deve avere una lunghezza maggiore di 0 e minore di 35 caratteri ");
    			else if (tmp.contains("'"))
    				System.out.println("Non inserire il carattere apice");
    			else
    				valido = true;
    		}
    
    		return tmp;
    	}
    
    	public int leggiNumeroSpettatori() {
    		scan = new Scanner(System.in);
    		boolean valido = false;
    		int tmp = 0;
    		while (!valido) {
    			System.out.println("Numero Spettatori:");
    			tmp = scan.nextInt();
    			if (tmp < 5000 || tmp > 50000)
    				System.out.println("Il valore inserito deve essere compreso tra 5000 e 50000");
    			else
    				valido = true;
    		}
    
    		return tmp;
    	}
    
    	public void inserimentoSquadra() throws WrongInputException {
    		SquadraCalcio s = new SquadraCalcio();
    		System.out.println("Inserimento Squadra");
    		String nomeS = leggiNomeSquadra();
    		s.setNome(nomeS);
    		String nomeC = leggiNomeCitta();
    		s.setCitta(nomeC);
    		int num = leggiNumeroSpettatori();
    		s.setNumeroSpettatori(num);
    		scan = new Scanner(System.in);
    		System.out.println("Nome stadio:");
    		s.setStadio(scan.nextLine());
    		squadre.add(s);
    	}
    
    	public void cancellaSquadra() {
    		scan = new Scanner(System.in);
    		System.out.println("Inserire nome squadra da eliminare");
    		String r = scan.nextLine();
    
    		SquadraCalcio c = new SquadraCalcio();
    		c.setNome(r);
    		if (squadre.remove(c))
    			System.out.println("Squadra rimossa");
    		else
    			System.out.println("Non esiste una squadra con questo nome");
    
    	}
    
    	public void elencoSquadre() {
    
    		for (SquadraCalcio squadraCalcio : squadre) {
    			System.out.println(squadraCalcio);
    		}
    
    	}
    
    	public void ricercaSquadraParziale() {
    		scan = new Scanner(System.in);
    		System.out.println("Inserire nome squadra da ricercare");
    		String r = scan.nextLine();
    		boolean trovata = false;
    		for (SquadraCalcio squadraCalcio : squadre) {
    			String nomeParziale = squadraCalcio.getNome().substring(0, r.length());
    			if (nomeParziale.equals(r)) {
    				System.out.println("Squadra trovata");
    				System.out.println(squadraCalcio);
    				trovata = true;
    				break;
    			}
    		}
    		if (!trovata)
    			System.out.println("Squadra non trovata");
    	}
    
    	public void ricercaSquadra() {
    		scan = new Scanner(System.in);
    		System.out.println("Inserire nome squadra da ricercare");
    		String r = scan.nextLine();
    		SquadraCalcio c = new SquadraCalcio();
    		c.setNome(r);
    		if (squadre.contains(c)) {
    			System.out.println("Squadra trovata");
    			System.out.println(c);
    		} else
    			System.out.println("Squadra Non trovata");
    
    	}
    
    	public void start() throws WrongInputException {
    		int risposta = 10;
    		while (risposta != 0) {
    			System.out.println("Premere:");
    			System.out.println("1: inserimento squadra");
    			System.out.println("2: eliminare squadra:");
    			System.out.println("3: ricerca squadra per nome");
    			System.out.println("4: ricerca squadra per nome parziale");
    			System.out.println("5: elenco squadre");
    			System.out.println("0: per uscire");
    			risposta = scan.nextInt();
    
    			switch (risposta) {
    			case 1:
    				inserimentoSquadra();
    				break;
    			case 2:
    				cancellaSquadra();
    				;
    				break;
    			case 3:
    				ricercaSquadra();
    				break;
    			case 4:
    				ricercaSquadraParziale();
    				break;
    			case 5:
    				elencoSquadre();
    				break;
    			case 0:
    				break;
    			default:
    				System.out.println("valore inserito errato");
    			}
    		}
    	}
    
    	public static void main(String[] args)  {
    
    		GestioneSquadreCalcio gs = new GestioneSquadreCalcio();
    		try {
    			gs.start();
    		} catch (WrongInputException e) {
    			System.err.println("INPUT NON PERMESSO");
    		}
    	}
    }
    
    package com;
    
    public class WrongInputException extends Exception {
    	   WrongInputException(String s) {
    		      super(s);
    		   }
    		}
    
Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Devi essere connesso per rispondere a questo topic.