Opzione 1 + menù migliorato

This commit is contained in:
La Programmatrice Verde
2025-09-30 10:00:41 +02:00
parent 70aae00377
commit 945b7925cb
2 changed files with 111 additions and 33 deletions

View File

@@ -5,6 +5,7 @@
package rettangoli_quadrati; package rettangoli_quadrati;
import java.util.Scanner; import java.util.Scanner;
import java.util.InputMismatchException;
/** /**
* *
@@ -19,44 +20,51 @@ public class Rettangoli_Quadrati {
static Scanner sc = new Scanner(System.in); static Scanner sc = new Scanner(System.in);
public static void main(String[] args) { public static void main(String[] args) {
int scelta; Rettangolo forme[] = Init();
int scelta, nextPosizioneLibera = 0;
do { do {
System.out.println("Scegliere un'opzione:"); System.out.println("Scegliere un'opzione:");
System.out.println("1. Ingresso auto"); System.out.println("1. Inserimento dimensioni");
System.out.println("2. Stampa posti occupati"); System.out.println("2. Confronta aree");
System.out.println("3. Stampa posti liberi");
System.out.println("4. Uscita auto");
System.out.println("0. Esci"); System.out.println("0. Esci");
System.out.print("Opzione: "); System.out.print("Opzione: ");
scelta = sc.nextInt(); try {
sc.nextLine(); scelta = sc.nextInt();
sc.nextLine();
switch (scelta) { switch (scelta) {
case 0: case 0:
break; break;
case 1: case 1:
System.out.println(garage.IngressoAuto()); forme[nextPosizioneLibera] = CreaRettangolo(IngressoDati(1), IngressoDati(2));
Pausa(); forme[nextPosizioneLibera + 1] = CreaQuadrato(IngressoDati(3));
break; nextPosizioneLibera = +2;
case 2: System.out.println("Forme create con successo");
System.out.println(garage.GetPostiOccupati()); Pausa();
Pausa(); break;
break; case 2:
case 3: // System.out.println(garage.GetPostiOccupati());
System.out.println(garage.GetPostiLiberi()); //Debug: Controllo che funzioni tutto
Pausa(); System.out.println(forme[0].dimensioneUno);
break; System.out.println(forme[0].dimensioneDue);
case 4: System.out.println(forme[0].isQuadrato);
System.out.println(garage.UscitaAuto()); System.out.println(forme[1].dimensioneUno);
Pausa(); System.out.println(forme[1].dimensioneDue);
break; System.out.println(forme[1].isQuadrato);
default: Pausa();
System.out.println("Opzione non valida."); break;
Pausa(); default:
break; System.out.println("Opzione non valida.");
Pausa();
break;
}
} catch (InputMismatchException e) {
System.out.println("Opzione non valida.");
Pausa();
scelta = -1;
} }
} while (scelta != 0); } while (scelta != 0);
} }
@@ -65,4 +73,73 @@ public class Rettangoli_Quadrati {
System.out.println("Premere un tasto per continuare. . ."); System.out.println("Premere un tasto per continuare. . .");
sc.nextLine(); sc.nextLine();
} }
static Rettangolo[] Init() {
boolean error;
int dimensione = 0;
do {
error = false;
try {
System.out.println("Quante coppie di forme gestire? ");
dimensione = sc.nextInt();
sc.nextLine();
if (dimensione <= 0) {
System.out.println("Errore: inserire una dimensione "
+ (dimensione == 0 ? "diversa da" : "maggiore di") + " 0.");
Pausa();
error = true;
}
} catch (InputMismatchException e) {
System.out.println("Errore: dimensione non valida.");
Pausa();
error = true;
}
} while (error);
return new Rettangolo[dimensione];
}
static double IngressoDati(int p_selettore) {
double ritorno = 0;
boolean error;
do {
error = false;
try {
if (p_selettore == 1) {
System.out.println("Inserisci la prima dimensione del rettangolo: ");
} else if (p_selettore == 2) {
System.out.println("Inserisci la seconda dimensione del rettangolo: ");
} else if (p_selettore == 3) {
System.out.println("Inserisci dimensione del quadrato: ");
}
ritorno = sc.nextDouble();
sc.nextLine();
if (ritorno <= 0) {
System.out.println("Errore: inserire una dimensione "
+ (ritorno == 0 ? "diversa da" : "maggiore di") + " 0.");
Pausa();
error = true;
}
} catch (InputMismatchException e) {
System.out.println("Errore: dimensione non valida.");
Pausa();
error = true;
}
} while (error);
return ritorno;
}
static Rettangolo CreaRettangolo(double p_dimensioneUno, double p_dimensioneDue) {
return new Rettangolo(p_dimensioneUno, p_dimensioneDue, false);
}
static Rettangolo CreaQuadrato( double p_dimensione) {
return new Rettangolo(p_dimensione, p_dimensione, true);
}
} }

View File

@@ -1,8 +1,9 @@
package rettangoli_quadrati; package rettangoli_quadrati;
public class Rettangolo { public class Rettangolo {
private boolean isQuadrato; //Debug: public per testare che funzioni tutto
private double dimensioneUno, dimensioneDue; public boolean isQuadrato;
public double dimensioneUno, dimensioneDue;
public Rettangolo(double p_dimensioneUno, double p_dimensioneDue, boolean p_isQuadrato) { public Rettangolo(double p_dimensioneUno, double p_dimensioneDue, boolean p_isQuadrato) {
this.dimensioneUno = p_dimensioneUno; this.dimensioneUno = p_dimensioneUno;