/* Nome: Mario Cognome: Montanari Classe: 3AIN Data: 30/01/2025 Esercizio: Gestione di un Magazzino Scrivere un programma che gestisce un piccolo magazzino. Il programma deve: 1. Definire una struct Prodotto con i seguenti campi: - int codice → Codice identificativo; - int quantita → Quantità disponibile; - float prezzo → Prezzo unitario; - bool disponibile → true se la quantità è maggiore di 0, false altrimenti. 2. Implementare una funzione: - void aggiornaDisponibilita(struct Prodotto prodotti[], int n); La funzione riceve un array di struct Prodotto e aggiorna il campo disponibile in base alla quantità. Nel main, dichiarare un array di almeno 3 prodotti, chiamare la funzione e stampare l'elenco dei prodotti con il loro stato di disponibilità. */ #include #include #include #include #define NPRODOTTI 10 #define CMIN 10000 #define CMAX 99999 #define QMIN 0 #define QMAX 9 #define PMIN 10 #define PMAX 99 #define PDMIN 10 #define PDMAX 100 using namespace std; typedef struct { int codice; int quantita; float prezzo; bool disponibile; } Prodotto; void riempiProdotti(Prodotto prodotti[], int nprodotti); void aggiornaDisponibilita(Prodotto prodotti[], int nprodotti); int main(void) { Prodotto prodotti[NPRODOTTI]; int nprodotti = NPRODOTTI; srand(time(NULL)); riempiProdotti(prodotti, nprodotti); aggiornaDisponibilita(prodotti, nprodotti); return 0; } void riempiProdotti(Prodotto prodotti[], int nprodotti) { float parteDecimale = 0; for (int i = 0; i < nprodotti; i++) { prodotti[i].codice = rand() % (CMAX - CMIN + 1) + CMIN; prodotti[i].quantita = rand() % (QMAX - QMIN + 1) + QMIN; prodotti[i].prezzo = rand() % (PMAX - PMIN + 1) + PMIN; parteDecimale = rand() % (PDMAX - PDMIN + 1) + PDMIN; for (int j = 0; j < nprodotti; j++) { if (parteDecimale == 10 || parteDecimale == 20 || parteDecimale == 30 ||parteDecimale == 40 ||parteDecimale == 50 ||parteDecimale == 60 ||parteDecimale == 70 || parteDecimale == 80 || parteDecimale == 90 || parteDecimale == 100) { parteDecimale = rand() % (PDMAX - PDMIN + 1) + PDMIN; } } prodotti[i].prezzo = prodotti[i].prezzo + (parteDecimale / 100); if (prodotti[i].quantita > 0) { prodotti[i].disponibile = true; } else { prodotti[i].disponibile = false; } } } void aggiornaDisponibilita(Prodotto prodotti[], int nprodotti) { cout << " -------------------------------------------------------------" << endl; cout << " | Codice:" << setw(18) << "| Quantita': " << setw(13) << "| Prezzo: " << setw(10) << "| Disponibilita': |" << endl; cout << " -------------------------------------------------------------" << endl; for (int i = 0; i < nprodotti; i++) { cout << " | " << prodotti[i].codice << setw(7) << " | " << prodotti[i].quantita << setw(15) << " | " << prodotti[i].prezzo << setw(7) << " | " << prodotti[i].disponibile << setw(18) << "|" << endl; } cout << " -------------------------------------------------------------" << endl; }