School-Coding-Cpp/sfusi/gestione_di_un_magazzino_st...

107 lines
3.1 KiB
C++

/*
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 <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>
#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;
}