inserisciProdotto

This commit is contained in:
La Programmatrice Verde
2025-10-21 17:15:17 +02:00
parent 0d093e66bb
commit 35e7c6a217

View File

@@ -4,6 +4,9 @@
*/
package listaspesa;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.InputMismatchException;
import java.util.Scanner;
@@ -18,8 +21,11 @@ public class listaSpesa {
*/
static Scanner sc = new Scanner(System.in);
Prodotto magazzino[];
Prodotto scontrino[];
static Prodotto magazzino[];
static Prodotto scontrino[];
static int dimensioneMagazzino = 0, dimensioneScontrino = 0, indiceMagazzino = 0;
static String datePattern = "dd/MM/yyyy";
static SimpleDateFormat sdf = new SimpleDateFormat(datePattern);
public static void main(String[] args) {
int scelta = -1;
@@ -41,7 +47,15 @@ public class listaSpesa {
case 0:
break;
case 1:
System.out.print("Quanti prodotti inserire? ");
dimensioneMagazzino = sc.nextInt();
sc.nextLine();
magazzino = new Prodotto[dimensioneMagazzino];
for (int i = 0; i < dimensioneMagazzino; i++, indiceMagazzino++) {
inserisciProdotto();
}
pausa();
break;
case 2:
@@ -57,8 +71,7 @@ public class listaSpesa {
pausa();
break;
}
}
catch (InputMismatchException e) {
} catch (InputMismatchException e) {
System.out.println("Errore: scelta non valida.");
pausa();
}
@@ -70,19 +83,114 @@ public class listaSpesa {
sc.nextLine();
}
public static void inserisciProdotto(){
public static void inserisciProdotto() {
String nome;
float prezzo = 0;
float qta = 0;
float scontoFidelityCard = 0;
Date dataScadenza = null;
String tipoMateriale = null;
boolean error, isAlimentare = true;
String scelta;
System.out.print("Inserire il nome: ");
nome = sc.nextLine();
try {
do {
error = false;
System.out.print("Inserire il prezzo: ");
prezzo = sc.nextFloat();
sc.nextLine();
if (prezzo <= 0) {
System.out.println("Errore: non è possibile inserire un prezzo minore o uguale a zero.");
pausa();
error = true;
}
} while (error);
} catch (InputMismatchException e) {
System.out.println("Errore: numero non valido.");
}
try {
do {
error = false;
System.out.print("Inserire lo sconto con carta fedeltà (in %): ");
scontoFidelityCard = sc.nextFloat() / 100;
sc.nextLine();
if (scontoFidelityCard < 0) {
System.out.println("Errore: non è possibile inserire uno sconto negativo.");
pausa();
error = true;
}
} while (error);
} catch (InputMismatchException e) {
System.out.println("Errore: numero non valido.");
}
do {
error = false;
System.out.print("Il prodotto è un genere alimentare? [S/n]");
scelta = sc.nextLine().toLowerCase();
if (scelta.equals("y") || scelta.equals("s")) {
isAlimentare = true;
boolean dateError;
do {
dateError = 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;
}
} while (dateError);
} else if (scelta.equals("n")) {
isAlimentare = false;
System.out.println("Inserire il materiale del prodotto: ");
tipoMateriale = sc.nextLine();
} else {
System.out.println("Errore: opzione non valida.");
pausa();
error = true;
}
} while (error);
try {
do {
error = false;
System.out.print("Inserire la quantità: ");
qta = isAlimentare ? sc.nextFloat() : (float) sc.nextInt();
sc.nextLine();
if (qta <= 0) {
System.out.println("Errore: non è possibile inserire meno di un prodotto.");
pausa();
error = true;
}
} while (error);
} catch (InputMismatchException e) {
System.out.println("Errore: numero non valido.");
}
magazzino[indiceMagazzino] = isAlimentare ? new Alimentare(nome, prezzo, qta, scontoFidelityCard, dataScadenza)
: new NonAlimentare(nome, prezzo, qta, scontoFidelityCard, tipoMateriale);
}
public static void inserisciDatiScontrino(){
public static void inserisciDatiScontrino() {
}
public static void stampaScontrino(){
public static void stampaScontrino() {
}
public static boolean ricercaProdotto(String nome, boolean isAlimentare){
public static boolean ricercaProdotto(String nome, boolean isAlimentare) {
}
}