From 503ecc0befadd91791dfbbc05eccb26549fe47b6 Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Tue, 28 Oct 2025 10:04:02 +0100 Subject: [PATCH] estraiVeicolo --- src/garage/Garage.java | 8 ++++--- src/garage/MainGarage.java | 46 ++++++++++++++++++++++++++++++++++---- 2 files changed, 47 insertions(+), 7 deletions(-) diff --git a/src/garage/Garage.java b/src/garage/Garage.java index 5df7c9e..6b52e9b 100644 --- a/src/garage/Garage.java +++ b/src/garage/Garage.java @@ -11,7 +11,7 @@ import veicoli.VeicoloAMotore; * @author Verde */ public class Garage { - protected static final int DIMENSIONE_GARAGE = 15; + public static final int DIMENSIONE_GARAGE = 15; VeicoloAMotore[] veicoli = new VeicoloAMotore[DIMENSIONE_GARAGE]; public int immettiNuovoVeicolo(VeicoloAMotore v) { @@ -21,9 +21,11 @@ public class Garage { } public VeicoloAMotore estraiVeicolo(int posto) { - + VeicoloAMotore ritorno = this.veicoli[posto]; + this.veicoli[posto] = null; + return ritorno; } - + public void stampaSituazionePosti() { } diff --git a/src/garage/MainGarage.java b/src/garage/MainGarage.java index 1c32343..623a50c 100644 --- a/src/garage/MainGarage.java +++ b/src/garage/MainGarage.java @@ -47,7 +47,7 @@ public class MainGarage { pausa(); break; case 2: - + estraiVeicolo(); pausa(); break; case 3: @@ -170,7 +170,8 @@ public class MainGarage { numPorte = sc.nextInt(); if (numPorte <= 2) { - System.out.println("Errore: il numero di porte deve essere un numero positivo e non può essere inferiore a 2."); + System.out.println( + "Errore: il numero di porte deve essere un numero positivo e non può essere inferiore a 2."); pausa(); error = true; } @@ -197,7 +198,7 @@ public class MainGarage { numTempiMotore = sc.nextInt(); switch (numTempiMotore) { - case 2,4: + case 2, 4: break; default: System.out.println("Errore: opzione non valida."); @@ -212,7 +213,8 @@ public class MainGarage { } } while (error); - veicolo = new Motocicletta(annoImmatricolazione, marca, tipoAlimentazione, cilindrata, tipologia, numTempiMotore); + veicolo = new Motocicletta(annoImmatricolazione, marca, tipoAlimentazione, cilindrata, tipologia, + numTempiMotore); break; default: System.out.println("Opzione non valida."); @@ -225,4 +227,40 @@ public class MainGarage { garage.immettiNuovoVeicolo(veicolo); System.out.println("Veicolo inserito con successo."); } + + static void estraiVeicolo() { + boolean error; + int posizione = 0; + VeicoloAMotore veicoloEstratto = null; + + do { + error = false; + + do { + try { + System.out.print("Inserire la posizione: "); + posizione = sc.nextInt(); + + if (posizione <= 0 || posizione >= Garage.DIMENSIONE_GARAGE) { + System.out.println("Errore: la posizione non esiste."); + pausa(); + error = true; + } + } catch (InputMismatchException _) { + System.out.println("Errore nella lettura della posizione."); + pausa(); + error = true; + } + } while (error); + + veicoloEstratto = garage.estraiVeicolo(posizione); + if (veicoloEstratto != null) { + System.out.println(veicoloEstratto.toString()); + } else { + System.out.println("Errore: la posizione indicata è vuota."); + pausa(); + error = true; + } + } while (error); + } }