TechStoreManager
van olceseeve @olceseeve
- 70
- 0
- 0
Introduzione
Un codice per creare un'interfaccia che mi dica cosa ho in magazzino, in quali quantità e a che prezzo, per poter vendere i prodotti e aggiungerne di nuovi.
import java.util.Scanner;
public class TechStoreManager{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 1. CREIAMO IL MAGAZZINO (Array fisso)
Prodotto[] magazzino = new Prodotto[10]; // Max X prodotti per test, inserire dimensioni
// Tiene traccia di quanti ne abbiamo davvero
// 2. DATI PRE-CARICATI (Bootstrap)
// Inseriamo subito 2 prodotti per non doverli scrivere ogni volta
magazzino[0] = new Prodotto(0,"Smartphone X", 500.0, 5);
magazzino[1] = new Prodotto(1,"Cuffie BT", 49.99, 10);
int contaProdotti = 2; // Importante! Abbiamo occupato 2 posti (0 e 1)
boolean running = true;
while (running) {
// visualizza un menu in console
System.out.println("\n--- TECHSTORE LITE ---");
System.out.println("1. Lista Prodotti");
System.out.println("2. Aggiungi Prodotto");
System.out.println("3. Vendi (usa ID)");
System.out.println("0. Esci");
System.out.print("Scegli: ");
int scelta = scanner.nextInt();
scanner.nextLine(); // Bug fix dello scanner
if (scelta == 1) {
// TODO: Scrivere ciclo for per stampare la lista
// Usare: magazzino[i].stampa(i);
System.out.println("--- LISTA ---");
for(int i = 0; i < contaProdotti; i++) {
magazzino[i].schedaProdotto();
}
} else if (scelta == 2) {
// Controllare se c'è spazio in magazzino:
// se si creare e aggiungere nuovo prodotto
// altrimenti stampare "magazzino pieno"
if(contaProdotti<magazzino.length) {
System.out.println("Inserimento nuovo prodotto.");
int nuovoCodice = contaProdotti;
System.out.println("Il codice assegnato è: " + nuovoCodice);
System.out.println("Inserisci nome");
String name = scanner.nextLine();
System.out.println("Prezzo:");
double price = scanner.nextDouble();
scanner.nextLine();
System.out.println("Quantità:");
int quantity = scanner.nextInt();
scanner.nextLine();
magazzino[nuovoCodice] = new Prodotto(nuovoCodice,name,price,quantity);
contaProdotti++;
scanner.nextLine();
System.out.println("Prodotto inserito correttamente!");
}
else {
System.out.println("Magazzino pieno");
}
} else if (scelta == 3) {
// VENDITA SEMPLIFICATA: scegliere ID (posizione) del
// prodotto da vendere ... controllare esistenza
// se non disponibile, segnalare
System.out.println("Scegli prodotto:");
int ID = scanner.nextInt();
scanner.nextLine();
if(ID >= 0 && ID < contaProdotti) {
System.out.print("Quante unità vuoi acquistare? ");
int quantitaAcquistata = scanner.nextInt();
scanner.nextLine(); // Consuma l'Invio
if(quantitaAcquistata > 0 && magazzino[ID].quantita >= quantitaAcquistata) {
magazzino[ID].quantita -= quantitaAcquistata;
if (magazzino[ID].quantita == 0) {
magazzino[ID].disponibile = false;
}
System.out.println("Vendita effettuata! Hai acquistato " + quantitaAcquistata + " unità.");
System.out.println("Ne restano in magazzino: " + magazzino[ID].quantita);
} else if (quantitaAcquistata <= 0) {
System.out.println("Attenzione: La quantità da acquistare deve essere maggiore di zero.");
} else {
System.out.println("Prodotto Esaurito! Quantità richiesta (" + quantitaAcquistata + ") non disponibile.");
}
}
else {
System.out.println("Prodotto inesistente");
}
} else if (scelta == 0) {
// fine programma
running = false;
}
}
scanner.close();
System.out.println("Bye Bye!");
return;
}
}

Materiali e strumenti
Visual Studio Code e Java JDK 25
creazione classe Prodotto
public class Prodotto{
// ATTRIBUTI: cosa descrive un prodotto? Aggiungere eventuali attributi mancanti...
String nome;
double prezzo;
int quantita;
boolean disponibile;
int codice;
int quantitaAcquistata;
// COSTRUTTORE: come creo un nuovo prodotto?
public Prodotto(int codice, String nome, double prezzo, int quantita) {
// ... assegnare i valori
this.codice = codice;
this.nome = nome;
this.prezzo = prezzo;
this.quantita = quantita;
if(this.quantita <= 0) {
this.disponibile = false;
}
else {
this.disponibile = true;
}
}
// METODO: Stampa le info del prodotto
public void schedaProdotto() {
if(this.disponibile == true){
System.out.println("- " + this.codice + " | Nome prodotto: " + this.nome + " | € " + this.prezzo + " | Qta: " + this.quantita + " | Disponibile");
}
else {
System.out.println("- " + this.codice + " | Nome prodotto: " + this.nome + " | € " + this.prezzo + " | Qta: " + this.quantita + " | Esaurito");
}
}
// METODO: Vendi (diminuisci quantità)
// Ritorna true se la vendita è riuscita, false se non c'è quantità
public boolean vendi() {
if (this.quantita > 0) {
this.quantita = this.quantita - quantitaAcquistata;
System.out.println("Vendita effettuata.");
return true;
} else {
System.out.println("Prodotto già esaurito.");
return false;
}
}
// Aggiungere eventuali comportamenti (metodi) mancanti...
//public void restock (int codice) {
}

0 opmerkingen
Log in of doe gratis mee om te reageren