Rispondi a: Test su classi

Blog Forum Java Test su classi Rispondi a: Test su classi

#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);
		   }
		}