Advertisement
Guest User

buco

a guest
Sep 23rd, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.17 KB | None | 0 0
  1. sing namespace std;
  2.  
  3. struct SArticolo
  4. {
  5.     int iCodice = 0;
  6.     string sDescrizione;
  7.     float fPrezzo = 0;
  8.     int iSconto = 0;
  9.     float fScorta = 0;
  10.     float fScortaMinima = 0;
  11. };
  12.  
  13. struct SVendite
  14. {
  15.     int iCodice = 0;
  16.     float fQuantità = 0;
  17. };
  18.  
  19. bool EsistenzaArticolo(SArticolo asMagazzino[], int in_Kidim, int in_iCodice)
  20. {
  21.     for (int i = 0; i < in_Kidim; i++)
  22.     {
  23.         if (asMagazzino[i].iCodice != 0)
  24.         {
  25.             if (asMagazzino[i].iCodice == in_iCodice)
  26.             {
  27.                 return true;    
  28.             }
  29.         }
  30.        
  31.     }
  32.     return false;
  33. }
  34.  
  35. void PrezzoScontoArticolo(SArticolo asMagazzino[], int in_Kidim, int in_iCodice, float *out_fPrezzo, float *out_fSconto, bool *out_bArticolo)
  36. {
  37.     int j = -1;
  38.     for (int i = 0; i < in_Kidim; i++)
  39.     {
  40.         if (asMagazzino[i].iCodice == in_iCodice)
  41.         {
  42.             j = i;
  43.         }
  44.  
  45.     }
  46.      if ( j == -1)
  47.      {
  48.          *out_bArticolo = false;
  49.      }
  50.      else
  51.      {
  52.         *out_fPrezzo = asMagazzino[j].fPrezzo;
  53.         *out_fSconto = asMagazzino[j].iSconto;
  54.      }
  55. }
  56.  
  57.  
  58. int SottoScorta ( SArticolo asMagazzino[], int in_Kidim)
  59. {
  60.     int j = 0;
  61.     for (int i = 0; i < in_Kidim; i++)
  62.     {
  63.         if (asMagazzino[i].fScorta < asMagazzino[i].fScortaMinima)
  64.         {
  65.             j++;
  66.         }
  67.     }
  68.  
  69.     return j;
  70. }
  71.  
  72.  
  73. void InserisciMagazzino(SArticolo asMagazzino[], int in_Kidim, int in_iCodice)
  74. {
  75.  
  76.     if (EsistenzaArticolo(asMagazzino, in_Kidim, in_iCodice) == true)
  77.     {
  78.         cout << endl << "ARTICOLO GIA PRESENTE" << endl << endl;
  79.     }
  80.     else
  81.     {
  82.         int j = -1;
  83.         for(int i = 0; i < in_Kidim; i++)
  84.         {
  85.             if (asMagazzino[i].iCodice == 0)
  86.             {
  87.                 j = i;
  88.                 break;
  89.             }
  90.         }
  91.  
  92.         asMagazzino[j].iCodice = in_iCodice;
  93.  
  94.         cout << endl << "Descrizione Articolo: ";
  95.         cin >> asMagazzino[j].sDescrizione;
  96.  
  97.         cout << endl << "Prezzo: ";
  98.         cin >> asMagazzino[j].fPrezzo;
  99.  
  100.         cout << endl << "Sconto: ";
  101.         cin >> asMagazzino[j].iSconto;
  102.  
  103.         cout << endl << "Scorta: ";
  104.         cin >> asMagazzino[j].fScorta;
  105.  
  106.         cout << endl << "ScortaMinima: ";
  107.         cin >> asMagazzino[j].fScortaMinima;
  108.  
  109.     }
  110. }
  111.  
  112.  
  113. void InserisciCarrello(SArticolo asMagazzino[], SVendite asCarrello[], int in_KidimA, int in_KidimV, int in_iCodice)
  114. {
  115.     if (EsistenzaArticolo(asMagazzino, in_KidimA, in_iCodice) == true)
  116.     {
  117.         int j = 0;
  118.         int iConferma = 0;
  119.         int k = 0;
  120.         int iSottrazione = 0;
  121.  
  122.         for (int i = 0; i < in_KidimA; i++)
  123.         {
  124.             if (asMagazzino[i].iCodice == in_iCodice)
  125.             {
  126.                 k = i;
  127.             }
  128.         }
  129.  
  130.         for (int i = 0; i < in_KidimV; i++)
  131.         {
  132.             if (asCarrello[i].iCodice == 0)
  133.             {
  134.                 j = i;
  135.  
  136.                 for (int i = 0; i < in_KidimV; i++)
  137.                 {
  138.                     if (asCarrello[i].iCodice == in_iCodice)
  139.                     {
  140.                         cout << endl << "Quanti pezzi vuoi aggiungere? (l'articolo e' gia presente nel carrello): " << endl;
  141.                         cin >> iSottrazione;
  142.  
  143.                         if (asMagazzino[k].fScorta < iSottrazione)
  144.                         {
  145.                             cout << endl << "Quantità insufficente" << endl;
  146.                             iConferma = 1;
  147.                             break;
  148.                         }
  149.                         asCarrello[i].fQuantità += iSottrazione;
  150.                         iConferma = 1;
  151.                         break;
  152.                     }
  153.                 }
  154.  
  155.                 if (iConferma == 0)
  156.                 {
  157.                     asCarrello[j].iCodice = in_iCodice;
  158.                     cout << endl << "Inserire quantita' articoli" << endl;
  159.                     cin >> iSottrazione;
  160.                     if (asMagazzino[k].fScorta < iSottrazione)
  161.                     {
  162.                         cout << endl << "Quantità insufficente" << endl;
  163.                         asCarrello[j].iCodice = 0;
  164.                         break;
  165.                     }
  166.                     asCarrello[j].fQuantità = iSottrazione;
  167.                     break;
  168.                 }
  169.                 else
  170.                     break;
  171.  
  172.             }
  173.         }
  174.  
  175.         asMagazzino[k].fScorta -= iSottrazione;
  176.  
  177.     }
  178.     else
  179.     {
  180.         cout << endl << "Siamo spiacenti l'articolo non e' presente nel nostro magazzino" << endl << endl;
  181.     }
  182. }
  183.  
  184. void StampaMagazzino(SArticolo asMagazzino[], int in_Kidim)
  185. {
  186.     cout << endl << "----------------------------------------------------" << endl << endl << "ARTICOLI DEL MAGAZZINO: " << endl << endl;
  187.     for (int i = 0; i < in_Kidim; i++)
  188.     {
  189.         if (asMagazzino[i].iCodice != 0)
  190.         {
  191.             cout << "Codice: " << asMagazzino[i].iCodice << endl;
  192.             cout << "Descrizione: " << asMagazzino[i].sDescrizione << endl;
  193.             cout << "Prezzo: " << asMagazzino[i].fPrezzo << endl;
  194.             cout << "Scorta: " << asMagazzino[i].fScorta << endl << endl;
  195.         }
  196.            
  197.     }
  198. }
  199.  
  200.  
  201. void StampaCarrello(SVendite asCarrello[], int in_kidim)
  202. {
  203.     cout << "----------------------------------------------------" << endl << endl << "ARTICOLI DEL CARRELLO: " << endl << endl;
  204.  
  205.     for (int i = 0; i < in_kidim; i++)
  206.     {
  207.         if (asCarrello[i].iCodice != 0)
  208.         {
  209.             cout << "Codice: " << asCarrello[i].iCodice << endl;
  210.             cout << "Quantità: " << asCarrello[i].fQuantità << endl << endl;
  211.         }
  212.     }
  213.  
  214. }
  215.  
  216.  
  217. float ValoreMagazzino(SArticolo asMagazzino[], int in_Kidim)
  218. {
  219.     float fTotale = 0;
  220.     for (int i = 0; i < in_Kidim; i++)
  221.     {
  222.         if (asMagazzino[i].iCodice != 0)
  223.         {
  224.             fTotale += asMagazzino[i].fPrezzo * asMagazzino[i].fScorta;
  225.         }
  226.     }
  227.     return fTotale;
  228. }
  229.  
  230. float ImportScontrino(SArticolo asMagazzino[], SVendite asCarrello[], int in_VidimA, int in_KidimV)
  231. {
  232.     float fTotale = 0;
  233.     float fPrezzo = 0;
  234.     for (int i = 0; i < in_KidimV; i++)
  235.     {
  236.         if (asCarrello[i].iCodice == 0)
  237.         {
  238.             break;
  239.         }
  240.  
  241.         bool bConferma = false;
  242.         int iPuntatore = 0;
  243.         for (int j = 0; j < in_KidimV; j++)
  244.         {
  245.             if (asCarrello[i].iCodice == asMagazzino[j].iCodice)
  246.             {
  247.                 iPuntatore = j;
  248.                 bConferma = true;
  249.                 break;
  250.             }
  251.  
  252.         }
  253.  
  254.         if (bConferma == true)
  255.         {
  256.             fPrezzo = asMagazzino[iPuntatore].fPrezzo * asCarrello[i].fQuantità;
  257.             fTotale += fPrezzo - (fPrezzo / 100 * asMagazzino[iPuntatore].iSconto);
  258.  
  259.         }
  260.     }
  261.  
  262.     return fTotale;
  263. }
  264.  
  265.  
  266. void StampaScontrino(SArticolo asMagazzino[], SVendite asCarrello[], int in_KidimA, int in_KidimV)
  267. {
  268.     cout << "SCONTRINO:" << endl << endl;
  269.     for (int i = 0; i < in_KidimV; i++)
  270.     {
  271.         if (asCarrello[i].iCodice == 0)
  272.         {
  273.             break;
  274.         }
  275.  
  276.         for (int j = 0; j < in_KidimV; j++)
  277.         {
  278.             if (asCarrello[i].iCodice == 0)
  279.             {
  280.                 break;
  281.             }
  282.  
  283.             if (asCarrello[i].iCodice == asMagazzino[j].iCodice)
  284.             {
  285.                 cout << endl << endl << setw(20) << asMagazzino[j].sDescrizione << setw(10) << asMagazzino[j].fPrezzo * asCarrello[i].fQuantità << endl;
  286.                
  287.                 if (asCarrello[i].fQuantità > 1)
  288.                 {
  289.                     cout << endl << "   " << asCarrello[i].fQuantità << " X " << asMagazzino[j].fPrezzo << endl;
  290.                 }
  291.  
  292.                 if (asMagazzino[j].iSconto > 0)
  293.                 {
  294.                     cout << endl << "     " << setw (15) << "SCONTO " << asMagazzino[j].iSconto << "%" << setw(10) << (asMagazzino[j].fPrezzo * asCarrello[i].fQuantità) / 100 * asMagazzino[j].iSconto << endl;
  295.  
  296.                 }
  297.             }
  298.         }
  299.     }
  300.    
  301.     cout << endl << "----------------------------------------------------" << endl << endl;
  302.     cout << "Tot. Euro                       " << ImportScontrino(asMagazzino, asCarrello, in_KidimA, in_KidimV) << endl;
  303. }
  304.  
  305. int main()
  306. {
  307.     const int kidimA = 100;
  308.     SArticolo asMagazzino[kidimA]{
  309.         {1, "Riso Carnaroli", 2.5, 0, 10, 5},
  310.         {3, "Polpa di pomodoro", 0.8, 10, 50, 40},
  311.         {4, "Shampo", 2.2, 0, 20, 30},
  312.         {7, "Mele fuji", 1.5, 0, 80, 50},
  313.         {10, "Rotoli asciugatutto", 1.8, 30, 10, 40},
  314.         {16, "Latte intero 1 l.", 0.8, 20, 40, 50}
  315.     };
  316.  
  317.     int iNAMagazzino = 6; //n. articoli presenti in magazzino
  318.  
  319.     const int KidimV = 30;
  320.     SVendite asCarrello[KidimV]{
  321.         {4, 1},
  322.         {10, 4},
  323.         {16, 10},
  324.         {2, 3}
  325.     };
  326.      
  327.     int iNACarrello = 6; //n. articoli presenti nel carrello
  328.  
  329.     //-----------------------------------------------------------------------------------
  330.  
  331.     cout << "inserire codice prodotto: ";
  332.     int iCodice = 0;
  333.     cin >> iCodice;
  334.  
  335.     if (EsistenzaArticolo(asMagazzino, kidimA, iCodice) == true)
  336.     {
  337.         cout << endl << "Articolo presente" << endl;
  338.     }
  339.     else
  340.     {
  341.         cout << endl << "Articolo non presente" << endl;
  342.     }
  343.     //----------------------------------------------------
  344.  
  345.     cout << endl << "Inserire codice dell'articolo il quale si vuol sapere il prezzo: " << endl;
  346.     cin >> iCodice;
  347.  
  348.     float fPrezzo = 0;
  349.     float fSconto = 0;
  350.     bool sArticolo = true;
  351.  
  352.     PrezzoScontoArticolo(asMagazzino, kidimA, iCodice, &fPrezzo, &fSconto, &sArticolo);
  353.  
  354.     if (sArticolo == false)
  355.     {
  356.         cout << "Articolo ineistente" << endl;
  357.     }
  358.     else
  359.     {
  360.         cout << "prezzo: " << fPrezzo << endl << "sconto: " << fSconto << endl;
  361.     }
  362.  
  363.     //-----------------------------------------------------------------------------------
  364.  
  365.     cout << endl << "Numero prodotti sottoscorta: " << SottoScorta(asMagazzino, kidimA) << endl;
  366.  
  367.     //-----------------------------------------------------------------------------------
  368.  
  369.     cout << endl << "Quanti aticoli si vuole aggiungere al magazzino?   ";
  370.     int iNum = 0;
  371.     cin >> iNum;
  372.  
  373.     iNAMagazzino += iNum;
  374.  
  375.     for (int i = 0; i < iNum; i++)
  376.     {
  377.         if (iNAMagazzino > kidimA)
  378.         {
  379.             cout << endl << "Spazio insufficente" << endl << endl;
  380.             break;
  381.         }
  382.         else
  383.         {
  384.             cout << endl << "INSERIRE CODICE dell'articolo da aggiungere al magazzino: ";
  385.             cin >> iCodice;
  386.  
  387.             InserisciMagazzino(asMagazzino, kidimA, iCodice);
  388.         }
  389.     }
  390.  
  391.     //-----------------------------------------------------------------------------------
  392.  
  393.     cout << endl  << endl << "Quanti articoli si vuole mettere nel carrello?" << endl;
  394.     int iNum2 = 0;
  395.     cin >> iNum2;
  396.  
  397.     iNACarrello += iNum2;
  398.  
  399.     for (int i = 0; i < iNum2; i++)
  400.     {
  401.         if (iNACarrello > KidimV)
  402.         {
  403.             cout << endl << "Spazio insufficente" << endl;
  404.             break;
  405.         }                                                                                    //ScaricoMagazzino = gia impleentato in questa funzione per errore
  406.  
  407.         cout << endl << "INSERIRE CODICE dell'articolo da aggiungere al Carrello: " << endl;
  408.         int iCodice = 0;
  409.         cin >> iCodice;
  410.  
  411.         InserisciCarrello(asMagazzino, asCarrello, kidimA, KidimV, iCodice);
  412.     }
  413.  
  414.     //-----------------------------------------------------------------------------------
  415.  
  416.     StampaMagazzino(asMagazzino, kidimA);
  417.  
  418.     //-----------------------------------------------------------------------------------
  419.  
  420.     StampaCarrello(asCarrello, KidimV);
  421.  
  422.     //-----------------------------------------------------------------------------------
  423.  
  424.     cout << endl << "Valore Magazzino: " << ValoreMagazzino(asMagazzino, kidimA) << endl;
  425.  
  426.  
  427.     //-----------------------------------------------------------------------------------
  428.  
  429.     cout << endl << "Totale spesa: " << ImportScontrino(asMagazzino, asCarrello, kidimA, KidimV) << endl << endl;
  430.  
  431.     //-----------------------------------------------------------------------------------
  432.  
  433.     StampaScontrino(asMagazzino, asCarrello, kidimA, KidimV);
  434.  
  435. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement