107 lines
3.1 KiB
C++
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;
|
|
} |