From cda2a97d024fe9ffabec674612522b210e137306 Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Tue, 28 Oct 2025 13:20:10 +0100 Subject: [PATCH] Miglioria inserimento ed estrazione veicolo --- src/garage/Garage.java | 4 ++-- src/garage/MainGarage.java | 24 ++++++++++++++++-------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/garage/Garage.java b/src/garage/Garage.java index 46beffa..af77d99 100644 --- a/src/garage/Garage.java +++ b/src/garage/Garage.java @@ -11,10 +11,10 @@ import veicoli.VeicoloAMotore; * @author Verde */ public class Garage { - public static final int DIMENSIONE_GARAGE = 15; + public static final int DIMENSIONE_GARAGE = 2; VeicoloAMotore[] veicoli = new VeicoloAMotore[DIMENSIONE_GARAGE]; - public int immettiNuovoVeicolo(VeicoloAMotore v) { + public int immettiNuovoVeicolo(VeicoloAMotore v) throws ArrayIndexOutOfBoundsException { int ritorno = trovaPosizioneLibera(); veicoli[ritorno] = v; return ritorno; diff --git a/src/garage/MainGarage.java b/src/garage/MainGarage.java index b5ae9e2..3e5f795 100644 --- a/src/garage/MainGarage.java +++ b/src/garage/MainGarage.java @@ -83,10 +83,13 @@ public class MainGarage { SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); Date annoImmatricolazioneDate; + String[] data; + String anno; boolean error; Date now = new Date(); String scelta; VeicoloAMotore veicolo = null; + int posizioneOccupata; System.out.print("Inserisci la marca: "); marca = sc.nextLine().trim(); @@ -101,8 +104,11 @@ public class MainGarage { System.out.println("Errore: il veicolo non può esser stato immatricolato nel futuro."); pausa(); error = true; + } else { + data = annoImmatricolazioneDate.toString().split("\\s"); + anno = data[data.length - 1]; + annoImmatricolazione = Integer.parseInt(anno); } - annoImmatricolazione = Integer.parseInt(annoImmatricolazioneDate.toString()); } catch (ParseException _) { System.out.println("Errore nella lettura della data."); pausa(); @@ -112,13 +118,13 @@ public class MainGarage { System.out.print("Inserisci il tipo di alimentazione: "); tipoAlimentazione = sc.nextLine().trim(); - // TODO: controlli sull'alimentazione (niente veicoli alimentati a scoregge) do { error = false; try { System.out.print("Inserire la cilindrata: "); cilindrata = sc.nextInt(); + sc.nextLine(); if (cilindrata <= 0) { System.out.println("Errore: la cilindrata deve essere un numero positivo."); @@ -133,7 +139,6 @@ public class MainGarage { } while (error); do { - error = false; System.out.println("Opzioni possibili:"); System.out.println("Furgone"); System.out.println("Automobile"); @@ -224,8 +229,12 @@ public class MainGarage { } } while (error); - garage.immettiNuovoVeicolo(veicolo); - System.out.println("Veicolo inserito con successo."); + try { + posizioneOccupata = garage.immettiNuovoVeicolo(veicolo); + System.out.println("Veicolo inserito con successo alla posizione " + posizioneOccupata + "."); + } catch (ArrayIndexOutOfBoundsException _) { + System.out.println("Errore: non ci sono posti disponibili, riprovare."); + } } static void estraiVeicolo() { @@ -233,14 +242,13 @@ public class MainGarage { int posizione = 0; VeicoloAMotore veicoloEstratto = null; - error = false; - do { + error = false; try { System.out.print("Inserire la posizione: "); posizione = sc.nextInt(); - if (posizione <= 0 || posizione >= Garage.DIMENSIONE_GARAGE) { + if (posizione < 0 || posizione >= Garage.DIMENSIONE_GARAGE) { System.out.println("Errore: la posizione non esiste."); pausa(); error = true;