From 614802ea097712650fc34c8beb5ec564d5e97fcc Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Tue, 21 Oct 2025 22:58:32 +0200 Subject: [PATCH] Nuovi controlli --- src/listaspesa/listaSpesa.java | 50 ++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/src/listaspesa/listaSpesa.java b/src/listaspesa/listaSpesa.java index 3c4fca4..97582b6 100644 --- a/src/listaspesa/listaSpesa.java +++ b/src/listaspesa/listaSpesa.java @@ -52,10 +52,18 @@ public class listaSpesa { dimensioneMagazzino = sc.nextInt(); sc.nextLine(); - magazzino = new Prodotto[dimensioneMagazzino]; + if (magazzino.equals(null)) { + magazzino = new Prodotto[dimensioneMagazzino]; - for (int i = 0; i < dimensioneMagazzino; i++) { - inserisciProdotto(); + for (int i = 0; i < dimensioneMagazzino; i++) { + inserisciProdotto(); + } + } else { + magazzino = Arrays.copyOf(magazzino, magazzino.length + dimensioneMagazzino, + magazzino.getClass()); + for (int i = magazzino.length - dimensioneMagazzino; i < magazzino.length; i++) { + inserisciProdotto(); + } } pausa(); break; @@ -64,19 +72,36 @@ public class listaSpesa { dimensioneScontrino = sc.nextInt(); sc.nextLine(); - scontrino = new Prodotto[dimensioneScontrino]; + if (scontrino.equals(null)) { + scontrino = new Prodotto[dimensioneScontrino]; - for (int i = 0; i < dimensioneScontrino; i++) { - inserisciProdotto(); + for (int i = 0; i < dimensioneScontrino; i++) { + inserisciDatiScontrino(); + } + } else { + scontrino = Arrays.copyOf(scontrino, scontrino.length + dimensioneScontrino, + scontrino.getClass()); + for (int i = scontrino.length - dimensioneScontrino; i < scontrino.length; i++) { + inserisciDatiScontrino(); + } } pausa(); break; case 3: - stampaScontrino(); + if (!scontrino.equals(null)) { + stampaScontrino(); + } else { + System.out.println("Errore: è necessario inserire uno scontrino prima di mostrarlo."); + } pausa(); break; case 4: - rimuoviScaduti(); + if (!magazzino.equals(null)) { + rimuoviScaduti(); + } else { + System.out.println( + "Errore: è necessario inserire almeno un prodotto nel magazzino prima di rimuovere quelli scaduti."); + } pausa(); break; default: @@ -302,7 +327,8 @@ public class listaSpesa { scontrino[trovaPosizioneLibera(scontrino)] = prodottoTrovato; magazzino[trovaProdottoInMagazzino(prodottoTrovato)] = null; } else { - prodottoTrovato.updQtaMagazzino(nomeODescrizione, prodottoTrovato.getQta() - qta); + prodottoTrovato.updQtaMagazzino(nomeODescrizione, + prodottoTrovato.getQta() - qta); } exit = true; @@ -434,8 +460,10 @@ public class listaSpesa { } } - for (Alimentare alimentare : alimentari) { - alimentare.rimuoviProdottoScaduto(); + if (!alimentari.equals(null)) { + for (Alimentare alimentare : alimentari) { + alimentare.rimuoviProdottoScaduto(); + } } rimouviInvalidi(); }