diff --git a/src/listaspesa/Alimentare.java b/src/listaspesa/Alimentare.java index 510d1dd..eb48a60 100644 --- a/src/listaspesa/Alimentare.java +++ b/src/listaspesa/Alimentare.java @@ -19,7 +19,8 @@ public class Alimentare extends Prodotto { } public void stampaDati() { - + super.stampaDati(); + System.out.println("Data di scadenza: " + dataScadenza.toString()); } public boolean checkDataScadenza() { //isScaduto diff --git a/src/listaspesa/NonAlimentare.java b/src/listaspesa/NonAlimentare.java index 73590c0..253a6d2 100644 --- a/src/listaspesa/NonAlimentare.java +++ b/src/listaspesa/NonAlimentare.java @@ -17,6 +17,7 @@ public class NonAlimentare extends Prodotto { this.tipoMateriale = p_tipoMateriale; } public void stampaDati() { - + super.stampaDati(); + System.out.println("Tipo materiale: " + tipoMateriale); } } \ No newline at end of file diff --git a/src/listaspesa/Prodotto.java b/src/listaspesa/Prodotto.java index 37227f7..992e2fa 100644 --- a/src/listaspesa/Prodotto.java +++ b/src/listaspesa/Prodotto.java @@ -25,7 +25,11 @@ public class Prodotto { } public void stampaDati() { - + System.out.println("Nome prodotto: " + this.nome); + System.out.println("Prezzo prodotto: " + this.prezzo); + System.out.println("Quantità prodotto: " + this.qta); + System.out.println("Sconto con carta fedeltà: " + this.scontoFidelityCard * 100 + "%"); + System.out.println("Descrizione: " + this.descrizione); } public float checkQtaDisponibile(String nome, float qtaDaComprare) { @@ -48,7 +52,7 @@ public class Prodotto { } public void applicaSconto() { - + this.prezzo = this.prezzo * this.scontoFidelityCard; } public float getQta() { @@ -62,4 +66,8 @@ public class Prodotto { public String getNome() { return this.nome; } + + public float getPrezzo() { + return this.prezzo; + } } \ No newline at end of file diff --git a/src/listaspesa/listaSpesa.java b/src/listaspesa/listaSpesa.java index 612b526..71d83f0 100644 --- a/src/listaspesa/listaSpesa.java +++ b/src/listaspesa/listaSpesa.java @@ -94,7 +94,7 @@ public class listaSpesa { String scelta; String descrizione; Prodotto prodotto; - + do { System.out.print("Inserire il nome: "); nome = sc.nextLine(); @@ -322,7 +322,28 @@ public class listaSpesa { } public static void stampaScontrino() { + boolean error, fidelityCard = false; + String scelta; + do { + error = false; + System.out.print("Si ha la carta fedeltà? [S/n]"); + scelta = sc.nextLine().toLowerCase(); + if (scelta.equals("y") || scelta.equals("s")) { + fidelityCard = true; + } else if (scelta.equals("n")) { + fidelityCard = false; + } else { + System.out.println("Errore: opzione non valida."); + pausa(); + error = true; + } + } while (error); + + for (Prodotto prodotto : scontrino) { + prodotto.stampaDati(); + } + System.out.println("Totale scontrino: " + totaleScontrino(fidelityCard)); } public static boolean ricercaProdotto(String nome, boolean isAlimentare) { // prodottoExists @@ -377,4 +398,15 @@ public class listaSpesa { } return ritorno; } + + static float totaleScontrino(boolean p_fidelityCard) { + float ritorno = 0; + for (Prodotto prodotto : scontrino) { + if (p_fidelityCard) { + prodotto.applicaSconto(); + } + ritorno += prodotto.getPrezzo(); + } + return ritorno; + } }