Aggiunto controllo duplicato targa + rimozione condizione inutile

This commit is contained in:
La Programmatrice Verde 2025-09-25 23:07:38 +02:00
parent 230988e76a
commit 25a29efc2b

View File

@ -35,13 +35,29 @@ public class Garage {
return exit ? --i : -1; 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() { public String IngressoAuto() {
String ritorno; String ritorno;
int posizione = this.NextPosizioneLibera(); int posizione = this.NextPosizioneLibera();
try { try {
veicoli[posizione] = new Auto(); 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) { } catch (ArrayIndexOutOfBoundsException e) {
ritorno = "Errore: il garage è pieno."; ritorno = "Errore: il garage è pieno.";
} catch (Exception e) { } catch (Exception e) {
@ -93,7 +109,7 @@ public class Garage {
if (posizione != -1) { if (posizione != -1) {
if (p_selettore) { if (p_selettore) {
ritorno += "- il numero " + posizione 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"; + "\n";
} else { } else {
i++; i++;