diff --git a/src/eserciziogarage/Garage.java b/src/eserciziogarage/Garage.java index e446578..af13373 100644 --- a/src/eserciziogarage/Garage.java +++ b/src/eserciziogarage/Garage.java @@ -35,13 +35,29 @@ public class Garage { return exit ? --i : -1; } + private boolean TrovaDuplicati(Auto p_auto) { + boolean ritorno = false; + for (int i = 0; i < this.veicoli.length && !ritorno; i++) { + if (this.veicoli[i].GetTarga().equals(p_auto.GetTarga())) { + ritorno = true; + } + } + + return ritorno; + } + public String IngressoAuto() { String ritorno; int posizione = this.NextPosizioneLibera(); try { veicoli[posizione] = new Auto(); - ritorno = "L'auto è posteggiata nella posizione %d".formatted(posizione); + if (this.TrovaDuplicati(veicoli[posizione])) { + ritorno = "Errore: l'auto con la targa inserita è già parcheggiata nel garage."; + } + else { + ritorno = "L'auto è posteggiata nella posizione %d.".formatted(posizione); + } } catch (ArrayIndexOutOfBoundsException e) { ritorno = "Errore: il garage è pieno."; } catch (Exception e) { @@ -93,7 +109,7 @@ public class Garage { if (posizione != -1) { if (p_selettore) { ritorno += "- il numero " + posizione - + (p_selettore ? (" da un'auto con targa: " + this.veicoli[posizione].GetTarga()) : "") + + " da un'auto con targa: " + this.veicoli[posizione].GetTarga() + "\n"; } else { i++;