Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sing namespace std;
- struct SArticolo
- {
- int iCodice = 0;
- string sDescrizione;
- float fPrezzo = 0;
- int iSconto = 0;
- float fScorta = 0;
- float fScortaMinima = 0;
- };
- struct SVendite
- {
- int iCodice = 0;
- float fQuantità = 0;
- };
- bool EsistenzaArticolo(SArticolo asMagazzino[], int in_Kidim, int in_iCodice)
- {
- for (int i = 0; i < in_Kidim; i++)
- {
- if (asMagazzino[i].iCodice != 0)
- {
- if (asMagazzino[i].iCodice == in_iCodice)
- {
- return true;
- }
- }
- }
- return false;
- }
- void PrezzoScontoArticolo(SArticolo asMagazzino[], int in_Kidim, int in_iCodice, float *out_fPrezzo, float *out_fSconto, bool *out_bArticolo)
- {
- int j = -1;
- for (int i = 0; i < in_Kidim; i++)
- {
- if (asMagazzino[i].iCodice == in_iCodice)
- {
- j = i;
- }
- }
- if ( j == -1)
- {
- *out_bArticolo = false;
- }
- else
- {
- *out_fPrezzo = asMagazzino[j].fPrezzo;
- *out_fSconto = asMagazzino[j].iSconto;
- }
- }
- int SottoScorta ( SArticolo asMagazzino[], int in_Kidim)
- {
- int j = 0;
- for (int i = 0; i < in_Kidim; i++)
- {
- if (asMagazzino[i].fScorta < asMagazzino[i].fScortaMinima)
- {
- j++;
- }
- }
- return j;
- }
- void InserisciMagazzino(SArticolo asMagazzino[], int in_Kidim, int in_iCodice)
- {
- if (EsistenzaArticolo(asMagazzino, in_Kidim, in_iCodice) == true)
- {
- cout << endl << "ARTICOLO GIA PRESENTE" << endl << endl;
- }
- else
- {
- int j = -1;
- for(int i = 0; i < in_Kidim; i++)
- {
- if (asMagazzino[i].iCodice == 0)
- {
- j = i;
- break;
- }
- }
- asMagazzino[j].iCodice = in_iCodice;
- cout << endl << "Descrizione Articolo: ";
- cin >> asMagazzino[j].sDescrizione;
- cout << endl << "Prezzo: ";
- cin >> asMagazzino[j].fPrezzo;
- cout << endl << "Sconto: ";
- cin >> asMagazzino[j].iSconto;
- cout << endl << "Scorta: ";
- cin >> asMagazzino[j].fScorta;
- cout << endl << "ScortaMinima: ";
- cin >> asMagazzino[j].fScortaMinima;
- }
- }
- void InserisciCarrello(SArticolo asMagazzino[], SVendite asCarrello[], int in_KidimA, int in_KidimV, int in_iCodice)
- {
- if (EsistenzaArticolo(asMagazzino, in_KidimA, in_iCodice) == true)
- {
- int j = 0;
- int iConferma = 0;
- int k = 0;
- int iSottrazione = 0;
- for (int i = 0; i < in_KidimA; i++)
- {
- if (asMagazzino[i].iCodice == in_iCodice)
- {
- k = i;
- }
- }
- for (int i = 0; i < in_KidimV; i++)
- {
- if (asCarrello[i].iCodice == 0)
- {
- j = i;
- for (int i = 0; i < in_KidimV; i++)
- {
- if (asCarrello[i].iCodice == in_iCodice)
- {
- cout << endl << "Quanti pezzi vuoi aggiungere? (l'articolo e' gia presente nel carrello): " << endl;
- cin >> iSottrazione;
- if (asMagazzino[k].fScorta < iSottrazione)
- {
- cout << endl << "Quantità insufficente" << endl;
- iConferma = 1;
- break;
- }
- asCarrello[i].fQuantità += iSottrazione;
- iConferma = 1;
- break;
- }
- }
- if (iConferma == 0)
- {
- asCarrello[j].iCodice = in_iCodice;
- cout << endl << "Inserire quantita' articoli" << endl;
- cin >> iSottrazione;
- if (asMagazzino[k].fScorta < iSottrazione)
- {
- cout << endl << "Quantità insufficente" << endl;
- asCarrello[j].iCodice = 0;
- break;
- }
- asCarrello[j].fQuantità = iSottrazione;
- break;
- }
- else
- break;
- }
- }
- asMagazzino[k].fScorta -= iSottrazione;
- }
- else
- {
- cout << endl << "Siamo spiacenti l'articolo non e' presente nel nostro magazzino" << endl << endl;
- }
- }
- void StampaMagazzino(SArticolo asMagazzino[], int in_Kidim)
- {
- cout << endl << "----------------------------------------------------" << endl << endl << "ARTICOLI DEL MAGAZZINO: " << endl << endl;
- for (int i = 0; i < in_Kidim; i++)
- {
- if (asMagazzino[i].iCodice != 0)
- {
- cout << "Codice: " << asMagazzino[i].iCodice << endl;
- cout << "Descrizione: " << asMagazzino[i].sDescrizione << endl;
- cout << "Prezzo: " << asMagazzino[i].fPrezzo << endl;
- cout << "Scorta: " << asMagazzino[i].fScorta << endl << endl;
- }
- }
- }
- void StampaCarrello(SVendite asCarrello[], int in_kidim)
- {
- cout << "----------------------------------------------------" << endl << endl << "ARTICOLI DEL CARRELLO: " << endl << endl;
- for (int i = 0; i < in_kidim; i++)
- {
- if (asCarrello[i].iCodice != 0)
- {
- cout << "Codice: " << asCarrello[i].iCodice << endl;
- cout << "Quantità: " << asCarrello[i].fQuantità << endl << endl;
- }
- }
- }
- float ValoreMagazzino(SArticolo asMagazzino[], int in_Kidim)
- {
- float fTotale = 0;
- for (int i = 0; i < in_Kidim; i++)
- {
- if (asMagazzino[i].iCodice != 0)
- {
- fTotale += asMagazzino[i].fPrezzo * asMagazzino[i].fScorta;
- }
- }
- return fTotale;
- }
- float ImportScontrino(SArticolo asMagazzino[], SVendite asCarrello[], int in_VidimA, int in_KidimV)
- {
- float fTotale = 0;
- float fPrezzo = 0;
- for (int i = 0; i < in_KidimV; i++)
- {
- if (asCarrello[i].iCodice == 0)
- {
- break;
- }
- bool bConferma = false;
- int iPuntatore = 0;
- for (int j = 0; j < in_KidimV; j++)
- {
- if (asCarrello[i].iCodice == asMagazzino[j].iCodice)
- {
- iPuntatore = j;
- bConferma = true;
- break;
- }
- }
- if (bConferma == true)
- {
- fPrezzo = asMagazzino[iPuntatore].fPrezzo * asCarrello[i].fQuantità;
- fTotale += fPrezzo - (fPrezzo / 100 * asMagazzino[iPuntatore].iSconto);
- }
- }
- return fTotale;
- }
- void StampaScontrino(SArticolo asMagazzino[], SVendite asCarrello[], int in_KidimA, int in_KidimV)
- {
- cout << "SCONTRINO:" << endl << endl;
- for (int i = 0; i < in_KidimV; i++)
- {
- if (asCarrello[i].iCodice == 0)
- {
- break;
- }
- for (int j = 0; j < in_KidimV; j++)
- {
- if (asCarrello[i].iCodice == 0)
- {
- break;
- }
- if (asCarrello[i].iCodice == asMagazzino[j].iCodice)
- {
- cout << endl << endl << setw(20) << asMagazzino[j].sDescrizione << setw(10) << asMagazzino[j].fPrezzo * asCarrello[i].fQuantità << endl;
- if (asCarrello[i].fQuantità > 1)
- {
- cout << endl << " " << asCarrello[i].fQuantità << " X " << asMagazzino[j].fPrezzo << endl;
- }
- if (asMagazzino[j].iSconto > 0)
- {
- cout << endl << " " << setw (15) << "SCONTO " << asMagazzino[j].iSconto << "%" << setw(10) << (asMagazzino[j].fPrezzo * asCarrello[i].fQuantità) / 100 * asMagazzino[j].iSconto << endl;
- }
- }
- }
- }
- cout << endl << "----------------------------------------------------" << endl << endl;
- cout << "Tot. Euro " << ImportScontrino(asMagazzino, asCarrello, in_KidimA, in_KidimV) << endl;
- }
- int main()
- {
- const int kidimA = 100;
- SArticolo asMagazzino[kidimA]{
- {1, "Riso Carnaroli", 2.5, 0, 10, 5},
- {3, "Polpa di pomodoro", 0.8, 10, 50, 40},
- {4, "Shampo", 2.2, 0, 20, 30},
- {7, "Mele fuji", 1.5, 0, 80, 50},
- {10, "Rotoli asciugatutto", 1.8, 30, 10, 40},
- {16, "Latte intero 1 l.", 0.8, 20, 40, 50}
- };
- int iNAMagazzino = 6; //n. articoli presenti in magazzino
- const int KidimV = 30;
- SVendite asCarrello[KidimV]{
- {4, 1},
- {10, 4},
- {16, 10},
- {2, 3}
- };
- int iNACarrello = 6; //n. articoli presenti nel carrello
- //-----------------------------------------------------------------------------------
- cout << "inserire codice prodotto: ";
- int iCodice = 0;
- cin >> iCodice;
- if (EsistenzaArticolo(asMagazzino, kidimA, iCodice) == true)
- {
- cout << endl << "Articolo presente" << endl;
- }
- else
- {
- cout << endl << "Articolo non presente" << endl;
- }
- //----------------------------------------------------
- cout << endl << "Inserire codice dell'articolo il quale si vuol sapere il prezzo: " << endl;
- cin >> iCodice;
- float fPrezzo = 0;
- float fSconto = 0;
- bool sArticolo = true;
- PrezzoScontoArticolo(asMagazzino, kidimA, iCodice, &fPrezzo, &fSconto, &sArticolo);
- if (sArticolo == false)
- {
- cout << "Articolo ineistente" << endl;
- }
- else
- {
- cout << "prezzo: " << fPrezzo << endl << "sconto: " << fSconto << endl;
- }
- //-----------------------------------------------------------------------------------
- cout << endl << "Numero prodotti sottoscorta: " << SottoScorta(asMagazzino, kidimA) << endl;
- //-----------------------------------------------------------------------------------
- cout << endl << "Quanti aticoli si vuole aggiungere al magazzino? ";
- int iNum = 0;
- cin >> iNum;
- iNAMagazzino += iNum;
- for (int i = 0; i < iNum; i++)
- {
- if (iNAMagazzino > kidimA)
- {
- cout << endl << "Spazio insufficente" << endl << endl;
- break;
- }
- else
- {
- cout << endl << "INSERIRE CODICE dell'articolo da aggiungere al magazzino: ";
- cin >> iCodice;
- InserisciMagazzino(asMagazzino, kidimA, iCodice);
- }
- }
- //-----------------------------------------------------------------------------------
- cout << endl << endl << "Quanti articoli si vuole mettere nel carrello?" << endl;
- int iNum2 = 0;
- cin >> iNum2;
- iNACarrello += iNum2;
- for (int i = 0; i < iNum2; i++)
- {
- if (iNACarrello > KidimV)
- {
- cout << endl << "Spazio insufficente" << endl;
- break;
- } //ScaricoMagazzino = gia impleentato in questa funzione per errore
- cout << endl << "INSERIRE CODICE dell'articolo da aggiungere al Carrello: " << endl;
- int iCodice = 0;
- cin >> iCodice;
- InserisciCarrello(asMagazzino, asCarrello, kidimA, KidimV, iCodice);
- }
- //-----------------------------------------------------------------------------------
- StampaMagazzino(asMagazzino, kidimA);
- //-----------------------------------------------------------------------------------
- StampaCarrello(asCarrello, KidimV);
- //-----------------------------------------------------------------------------------
- cout << endl << "Valore Magazzino: " << ValoreMagazzino(asMagazzino, kidimA) << endl;
- //-----------------------------------------------------------------------------------
- cout << endl << "Totale spesa: " << ImportScontrino(asMagazzino, asCarrello, kidimA, KidimV) << endl << endl;
- //-----------------------------------------------------------------------------------
- StampaScontrino(asMagazzino, asCarrello, kidimA, KidimV);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement