From 9cad5b1af91d14fd285e7cb2bf2e7ece5bbcce89 Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Thu, 30 Oct 2025 11:44:06 +0100 Subject: [PATCH] Rimuovi metodo bislungo --- src/garage/MainGarage.java | 246 ++++++++++++++++++++++--------------- 1 file changed, 144 insertions(+), 102 deletions(-) diff --git a/src/garage/MainGarage.java b/src/garage/MainGarage.java index 6e90e9a..71273b2 100644 --- a/src/garage/MainGarage.java +++ b/src/garage/MainGarage.java @@ -81,10 +81,7 @@ public class MainGarage { String tipologia; int numTempiMotore = 0; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); - Date annoImmatricolazioneDate; - boolean error; - Date now = new Date(); + boolean error = false; String scelta; VeicoloAMotore veicolo = null; int posizioneOccupata; @@ -92,47 +89,12 @@ public class MainGarage { System.out.print("Inserisci la marca: "); marca = sc.nextLine().trim(); - do { - error = false; - try { - System.out.print("Inserisci l'anno di immatricolazione: "); - annoImmatricolazioneDate = sdf.parse(sc.nextLine()); - - if (annoImmatricolazioneDate.after(now)) { - System.out.println("Errore: il veicolo non può esser stato immatricolato nel futuro."); - pausa(); - error = true; - } else { - annoImmatricolazione = Integer.parseInt(sdf.format(annoImmatricolazioneDate)); - } - } catch (ParseException _) { - System.out.println("Errore nella lettura della data."); - pausa(); - error = true; - } - } while (error); + annoImmatricolazione = annoImmatricolazione(); System.out.print("Inserisci il tipo di alimentazione: "); tipoAlimentazione = sc.nextLine().trim(); - 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."); - pausa(); - error = true; - } - } catch (InputMismatchException _) { - System.out.println("Errore nella lettura della cilindrata."); - pausa(); - error = true; - } - } while (error); + cilindrata = cilindrata(); do { System.out.println("Opzioni possibili:"); @@ -144,76 +106,18 @@ public class MainGarage { switch (scelta) { case "furgone": - do { - error = false; - try { - System.out.print("Inserire la capacità di carico: "); - capacitaCarico = sc.nextInt(); - - if (capacitaCarico <= 0) { - System.out.println("Errore: la capacità di carico deve essere un numero positivo."); - pausa(); - error = true; - } - } catch (InputMismatchException _) { - System.out.println("Errore nella lettura della capacità di carico."); - pausa(); - error = true; - } - } while (error); + capacitaCarico = capacitaCarico(); veicolo = new Furgone(annoImmatricolazione, marca, tipoAlimentazione, cilindrata, capacitaCarico); break; case "automobile": - do { - error = false; - try { - System.out.print("Inserire il numero di porte: "); - 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."); - pausa(); - error = true; - } - } catch (InputMismatchException _) { - System.out.println("Errore nella lettura del numero di porte."); - pausa(); - error = true; - } - } while (error); + numPorte = numPorte(); veicolo = new Automobile(annoImmatricolazione, marca, tipoAlimentazione, cilindrata, numPorte); break; case "motocicletta": System.out.print("Inserire la tipologia della motocicletta: "); tipologia = sc.nextLine(); - do { - error = false; - - try { - System.out.println("Opzioni possibli"); - System.out.println("2"); - System.out.println("4"); - System.out.print("Inserisci il numero di tempi del motore: "); - numTempiMotore = sc.nextInt(); - - switch (numTempiMotore) { - case 2, 4: - break; - default: - System.out.println("Errore: opzione non valida."); - pausa(); - error = true; - break; - } - } catch (InputMismatchException _) { - System.out.println("Errore nella lettura del numero di tempi del motore."); - pausa(); - error = true; - } - } while (error); - + numTempiMotore = numTempiMotore(); veicolo = new Motocicletta(annoImmatricolazione, marca, tipoAlimentazione, cilindrata, tipologia, numTempiMotore); break; @@ -233,6 +137,144 @@ public class MainGarage { } } + static int annoImmatricolazione() { + boolean error; + Date annoImmatricolazioneDate; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); + Date now = new Date(); + int ritorno = 0; + + do { + error = false; + try { + System.out.print("Inserisci l'anno di immatricolazione: "); + annoImmatricolazioneDate = sdf.parse(sc.nextLine()); + + if (annoImmatricolazioneDate.after(now)) { + System.out.println("Errore: il veicolo non può esser stato immatricolato nel futuro."); + pausa(); + error = true; + } else { + ritorno = Integer.parseInt(sdf.format(annoImmatricolazioneDate)); + } + } catch (ParseException _) { + System.out.println("Errore nella lettura della data."); + pausa(); + error = true; + } + } while (error); + + return ritorno; + } + + static int cilindrata() { + boolean error; + int ritorno = 0; + do { + error = false; + try { + System.out.print("Inserire la cilindrata: "); + ritorno = sc.nextInt(); + sc.nextLine(); + + if (ritorno <= 0) { + System.out.println("Errore: la cilindrata deve essere un numero positivo."); + pausa(); + error = true; + } + } catch (InputMismatchException _) { + System.out.println("Errore nella lettura della cilindrata."); + pausa(); + error = true; + } + } while (error); + + return ritorno; + } + + static int capacitaCarico() { + boolean error; + int ritorno = 0; + + do { + error = false; + try { + System.out.print("Inserire la capacità di carico: "); + ritorno = sc.nextInt(); + + if (ritorno <= 0) { + System.out.println("Errore: la capacità di carico deve essere un numero positivo."); + pausa(); + error = true; + } + } catch (InputMismatchException _) { + System.out.println("Errore nella lettura della capacità di carico."); + pausa(); + error = true; + } + } while (error); + + return ritorno; + } + + static int numPorte() { + boolean error; + int ritorno = 0; + do { + error = false; + try { + System.out.print("Inserire il numero di porte: "); + ritorno = sc.nextInt(); + + if (ritorno <= 2) { + System.out.println( + "Errore: il numero di porte deve essere un numero positivo e non può essere inferiore a 2."); + pausa(); + error = true; + } + } catch (InputMismatchException _) { + System.out.println("Errore nella lettura del numero di porte."); + pausa(); + error = true; + } + } while (error); + + return ritorno; + } + + static int numTempiMotore() { + boolean error; + int ritorno = 0; + + do { + error = false; + + try { + System.out.println("Opzioni possibili"); + System.out.println("2"); + System.out.println("4"); + System.out.print("Inserisci il numero di tempi del motore: "); + ritorno = sc.nextInt(); + + switch (ritorno) { + case 2, 4: + break; + default: + System.out.println("Errore: opzione non valida."); + pausa(); + error = true; + break; + } + } catch (InputMismatchException _) { + System.out.println("Errore nella lettura del numero di tempi del motore."); + pausa(); + error = true; + } + } while (error); + + return ritorno; + } + static void estraiVeicolo() { boolean error; int posizione = 0;