Controlli migliori + piccole migliorie

This commit is contained in:
La Programmatrice Verde
2025-10-21 23:22:26 +02:00
parent 614802ea09
commit c9b1e9f049

View File

@@ -30,6 +30,7 @@ public class listaSpesa {
public static void main(String[] args) {
int scelta = -1;
boolean error;
do {
System.out.println("Scegliere un'opzione:");
@@ -48,9 +49,23 @@ public class listaSpesa {
case 0:
break;
case 1:
System.out.print("Quanti prodotti inserire? ");
dimensioneMagazzino = sc.nextInt();
sc.nextLine();
do {
try {
error = false;
System.out.print("Quanti prodotti inserire? ");
dimensioneMagazzino = sc.nextInt();
sc.nextLine();
if (dimensioneMagazzino <= 0) {
System.out.println("Errore: è necessario inserire almeno un prodotto.");
pausa();
error = true;
}
} catch (InputMismatchException e) {
System.out.println("Errore: numero non valido.");
pausa();
error = true;
}
} while (error);
if (magazzino.equals(null)) {
magazzino = new Prodotto[dimensioneMagazzino];
@@ -68,9 +83,23 @@ public class listaSpesa {
pausa();
break;
case 2:
System.out.print("Quanti prodotti inserire? ");
dimensioneScontrino = sc.nextInt();
sc.nextLine();
do {
try {
error = false;
System.out.print("Quanti prodotti inserire? ");
dimensioneScontrino = sc.nextInt();
sc.nextLine();
if (dimensioneScontrino <= 0) {
System.out.println("Errore: è necessario inserire almeno un prodotto.");
pausa();
error = true;
}
} catch (InputMismatchException e) {
System.out.println("Errore: numero non valido.");
pausa();
error = true;
}
} while (error);
if (scontrino.equals(null)) {
scontrino = new Prodotto[dimensioneScontrino];
@@ -142,7 +171,6 @@ public class listaSpesa {
do {
try {
error = false;
System.out.print("Inserire il prezzo: ");
prezzo = sc.nextFloat();
@@ -183,19 +211,18 @@ public class listaSpesa {
if (scelta.equals("y") || scelta.equals("s")) {
isAlimentare = true;
boolean dateError;
do {
dateError = false;
error = false;
try {
System.out.print("Inserire la data di scadenza nel formato " + datePattern + ": ");
dataScadenza = sdf.parse(sc.nextLine());
} catch (ParseException e) {
System.out.println("Errore nella lettura della data.");
pausa();
dateError = true;
error = true;
}
} while (dateError);
} while (error);
} else if (scelta.equals("n")) {
isAlimentare = false;
@@ -320,14 +347,14 @@ public class listaSpesa {
} while (error);
if (prodottoTrovato.checkQtaDisponibile(nomeODescrizione, qta) != 0) {
if (qta <= prodottoTrovato.checkQtaDisponibile(nomeODescrizione, qta)) {
if (prodottoTrovato.checkQtaDisponibile(useNomeProdotto ? nomeODescrizione : prodottoTrovato.getNome(), qta) != 0) {
if (qta <= prodottoTrovato.checkQtaDisponibile(useNomeProdotto ? nomeODescrizione : prodottoTrovato.getNome(), qta)) {
if (prodottoTrovato.getQta() - qta == 0) {
System.out.println("Attenzione: il prodotto è stato finito.");
scontrino[trovaPosizioneLibera(scontrino)] = prodottoTrovato;
magazzino[trovaProdottoInMagazzino(prodottoTrovato)] = null;
} else {
prodottoTrovato.updQtaMagazzino(nomeODescrizione,
prodottoTrovato.updQtaMagazzino(useNomeProdotto ? nomeODescrizione : prodottoTrovato.getNome(),
prodottoTrovato.getQta() - qta);
}
exit = true;
@@ -381,6 +408,7 @@ public class listaSpesa {
for (Prodotto prodotto : scontrino) {
prodotto.stampaDati();
System.out.println();
}
System.out.println("Totale scontrino: " + totaleScontrino(fidelityCard));
}
@@ -390,11 +418,11 @@ public class listaSpesa {
for (int i = 0; i < magazzino.length && !ritorno; i++) {
if (isAlimentare) {
if (magazzino[i].getClass().getSimpleName().equals("Alimentare")) {
ritorno = magazzino[i].getNome().equals(nome);
ritorno = magazzino[i].getNome().contains(nome);
}
} else {
if (magazzino[i].getClass().getSimpleName().equals("NonAlimentare")) {
ritorno = magazzino[i].getNome().equals(nome);
ritorno = magazzino[i].getNome().contains(nome);
}
}
}
@@ -405,7 +433,7 @@ public class listaSpesa {
Prodotto ritorno = null;
boolean exit = false;
for (int i = 0; i < magazzino.length && !exit; i++) {
if (magazzino[i].getNome().equals(p_nomeODescrizione)) {
if (magazzino[i].getNome().contains(p_nomeODescrizione)) {
ritorno = magazzino[i];
exit = true;
}