Compare commits
2 Commits
262f581394
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
50bc6235ad | ||
|
|
9cad5b1af9 |
@@ -23,6 +23,7 @@ public class MainGarage {
|
|||||||
|
|
||||||
static Scanner sc = new Scanner(System.in);
|
static Scanner sc = new Scanner(System.in);
|
||||||
static Garage garage = new Garage();
|
static Garage garage = new Garage();
|
||||||
|
static final String ERRORE_OPZIONE = "Opzione non valida.";
|
||||||
|
|
||||||
public static void main() {
|
public static void main() {
|
||||||
int scelta = -1;
|
int scelta = -1;
|
||||||
@@ -55,7 +56,7 @@ public class MainGarage {
|
|||||||
pausa();
|
pausa();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
System.out.println("Opzione non valida.");
|
System.out.println(ERRORE_OPZIONE);
|
||||||
pausa();
|
pausa();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -81,17 +82,86 @@ public class MainGarage {
|
|||||||
String tipologia;
|
String tipologia;
|
||||||
int numTempiMotore = 0;
|
int numTempiMotore = 0;
|
||||||
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
|
boolean error = false;
|
||||||
Date annoImmatricolazioneDate;
|
int scelta;
|
||||||
boolean error;
|
|
||||||
Date now = new Date();
|
|
||||||
String scelta;
|
|
||||||
VeicoloAMotore veicolo = null;
|
VeicoloAMotore veicolo = null;
|
||||||
int posizioneOccupata;
|
int posizioneOccupata;
|
||||||
|
|
||||||
System.out.print("Inserisci la marca: ");
|
System.out.print("Inserisci la marca: ");
|
||||||
marca = sc.nextLine().trim();
|
marca = sc.nextLine().trim();
|
||||||
|
|
||||||
|
annoImmatricolazione = annoImmatricolazione();
|
||||||
|
|
||||||
|
System.out.print("Inserisci il tipo di alimentazione: ");
|
||||||
|
tipoAlimentazione = sc.nextLine().trim();
|
||||||
|
|
||||||
|
cilindrata = cilindrata();
|
||||||
|
|
||||||
|
do {
|
||||||
|
try {
|
||||||
|
error = false;
|
||||||
|
System.out.println("Opzioni possibili:");
|
||||||
|
System.out.println("1. Furgone");
|
||||||
|
System.out.println("2. Automobile");
|
||||||
|
System.out.println("3. Motocicletta");
|
||||||
|
System.out.print("Inserire la tipologia di veicolo tra le opzioni sopra: ");
|
||||||
|
scelta = sc.nextInt();
|
||||||
|
sc.nextLine();
|
||||||
|
|
||||||
|
switch (scelta) {
|
||||||
|
case 1:
|
||||||
|
capacitaCarico = capacitaCarico();
|
||||||
|
veicolo = new Furgone(annoImmatricolazione, marca, tipoAlimentazione, cilindrata,
|
||||||
|
capacitaCarico);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
numPorte = numPorte();
|
||||||
|
veicolo = new Automobile(annoImmatricolazione, marca, tipoAlimentazione, cilindrata, numPorte);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
System.out.print("Inserire la tipologia della motocicletta: ");
|
||||||
|
tipologia = sc.nextLine();
|
||||||
|
|
||||||
|
numTempiMotore = numTempiMotore();
|
||||||
|
veicolo = new Motocicletta(annoImmatricolazione, marca, tipoAlimentazione, cilindrata,
|
||||||
|
tipologia,
|
||||||
|
numTempiMotore);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
System.out.println(ERRORE_OPZIONE);
|
||||||
|
pausa();
|
||||||
|
error = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (InputMismatchException _) {
|
||||||
|
System.out.println(ERRORE_OPZIONE);
|
||||||
|
pausa();
|
||||||
|
error = true;
|
||||||
|
}
|
||||||
|
} while (error);
|
||||||
|
|
||||||
|
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 int annoImmatricolazione() {
|
||||||
|
boolean error;
|
||||||
|
Date annoImmatricolazioneDate;
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
|
||||||
|
Date now = new Date();
|
||||||
|
String annoIniziale = "1900";
|
||||||
|
Date dataIniziale = null;
|
||||||
|
try {
|
||||||
|
dataIniziale = sdf.parse(annoIniziale);
|
||||||
|
} catch (ParseException _) {
|
||||||
|
System.out.println("Errore non previsto nell'inizializzazione della data.");
|
||||||
|
}
|
||||||
|
int ritorno = 0;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
error = false;
|
error = false;
|
||||||
try {
|
try {
|
||||||
@@ -102,8 +172,13 @@ public class MainGarage {
|
|||||||
System.out.println("Errore: il veicolo non può esser stato immatricolato nel futuro.");
|
System.out.println("Errore: il veicolo non può esser stato immatricolato nel futuro.");
|
||||||
pausa();
|
pausa();
|
||||||
error = true;
|
error = true;
|
||||||
|
} else if (annoImmatricolazioneDate.before(dataIniziale)) {
|
||||||
|
System.out.println(
|
||||||
|
"Errore: il veicolo non può esser stato immatricolato prima del " + annoIniziale + ".");
|
||||||
|
pausa();
|
||||||
|
error = true;
|
||||||
} else {
|
} else {
|
||||||
annoImmatricolazione = Integer.parseInt(sdf.format(annoImmatricolazioneDate));
|
ritorno = Integer.parseInt(sdf.format(annoImmatricolazioneDate));
|
||||||
}
|
}
|
||||||
} catch (ParseException _) {
|
} catch (ParseException _) {
|
||||||
System.out.println("Errore nella lettura della data.");
|
System.out.println("Errore nella lettura della data.");
|
||||||
@@ -112,17 +187,20 @@ public class MainGarage {
|
|||||||
}
|
}
|
||||||
} while (error);
|
} while (error);
|
||||||
|
|
||||||
System.out.print("Inserisci il tipo di alimentazione: ");
|
return ritorno;
|
||||||
tipoAlimentazione = sc.nextLine().trim();
|
}
|
||||||
|
|
||||||
|
static int cilindrata() {
|
||||||
|
boolean error;
|
||||||
|
int ritorno = 0;
|
||||||
do {
|
do {
|
||||||
error = false;
|
error = false;
|
||||||
try {
|
try {
|
||||||
System.out.print("Inserire la cilindrata: ");
|
System.out.print("Inserire la cilindrata: ");
|
||||||
cilindrata = sc.nextInt();
|
ritorno = sc.nextInt();
|
||||||
sc.nextLine();
|
sc.nextLine();
|
||||||
|
|
||||||
if (cilindrata <= 0) {
|
if (ritorno <= 0) {
|
||||||
System.out.println("Errore: la cilindrata deve essere un numero positivo.");
|
System.out.println("Errore: la cilindrata deve essere un numero positivo.");
|
||||||
pausa();
|
pausa();
|
||||||
error = true;
|
error = true;
|
||||||
@@ -134,103 +212,93 @@ public class MainGarage {
|
|||||||
}
|
}
|
||||||
} while (error);
|
} while (error);
|
||||||
|
|
||||||
|
return ritorno;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int capacitaCarico() {
|
||||||
|
boolean error;
|
||||||
|
int ritorno = 0;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
System.out.println("Opzioni possibili:");
|
error = false;
|
||||||
System.out.println("Furgone");
|
try {
|
||||||
System.out.println("Automobile");
|
System.out.print("Inserire la capacità di carico: ");
|
||||||
System.out.println("Motocicletta");
|
ritorno = sc.nextInt();
|
||||||
System.out.print("Inserire la tipologia di veicolo: ");
|
sc.nextLine();
|
||||||
scelta = sc.nextLine().trim().toLowerCase();
|
|
||||||
|
|
||||||
switch (scelta) {
|
if (ritorno <= 0) {
|
||||||
case "furgone":
|
System.out.println("Errore: la capacità di carico deve essere un numero positivo.");
|
||||||
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);
|
|
||||||
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);
|
|
||||||
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);
|
|
||||||
|
|
||||||
veicolo = new Motocicletta(annoImmatricolazione, marca, tipoAlimentazione, cilindrata, tipologia,
|
|
||||||
numTempiMotore);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
System.out.println("Opzione non valida.");
|
|
||||||
pausa();
|
pausa();
|
||||||
error = true;
|
error = true;
|
||||||
break;
|
}
|
||||||
|
} catch (InputMismatchException _) {
|
||||||
|
System.out.println("Errore nella lettura della capacità di carico.");
|
||||||
|
pausa();
|
||||||
|
error = true;
|
||||||
}
|
}
|
||||||
} while (error);
|
} while (error);
|
||||||
|
|
||||||
try {
|
return ritorno;
|
||||||
posizioneOccupata = garage.immettiNuovoVeicolo(veicolo);
|
}
|
||||||
System.out.println("Veicolo inserito con successo alla posizione " + posizioneOccupata + ".");
|
|
||||||
} catch (ArrayIndexOutOfBoundsException _) {
|
static int numPorte() {
|
||||||
System.out.println("Errore: non ci sono posti disponibili, riprovare.");
|
boolean error;
|
||||||
}
|
int ritorno = 0;
|
||||||
|
do {
|
||||||
|
error = false;
|
||||||
|
try {
|
||||||
|
System.out.print("Inserire il numero di porte: ");
|
||||||
|
ritorno = sc.nextInt();
|
||||||
|
sc.nextLine();
|
||||||
|
|
||||||
|
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 tra le opzioni possibili: ");
|
||||||
|
ritorno = sc.nextInt();
|
||||||
|
sc.nextLine();
|
||||||
|
|
||||||
|
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() {
|
static void estraiVeicolo() {
|
||||||
|
|||||||
Reference in New Issue
Block a user