Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2014
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.20 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <string>
  4. #include <fstream>
  5. #include <cmath>
  6. using namespace std;
  7. //-------------------------------------------
  8.  
  9. const char CFDuom[]  = "Duomenys.txt";
  10. const char CFDuom1[] = "Duomenys1.txt";
  11. const char CFDuom2[] = "Duomenys2.txt";
  12. const char CFRez[]   = "Rezultatai.txt";
  13. const int CMax       = 100;
  14. //-------------------------------------------
  15.  
  16. class Saldainis {
  17.     private:
  18.         string tipas;
  19.         string pavadinimas;
  20.         double kilogramoKaina;
  21.         int kiekis;
  22.    
  23.     public:
  24.         Saldainis();
  25.         Saldainis( string saldainioTipas, string saldainioPavadinimas, double saldainioKilogramoKaina, int saldainiųKiekis );
  26.         ~Saldainis() {   }
  27.         string ImtiTipą()              { return tipas;            }
  28.         string ImtiPavadinimą()            { return pavadinimas;      }
  29.         double ImtiKilogramoKainą()     { return kilogramoKaina;   }
  30.         int ImtiSaldainiųKiekį()      { return kiekis;           }
  31.    
  32. };
  33.  
  34. Saldainis::Saldainis():
  35.  
  36.     tipas            (""),
  37.     pavadinimas      (""),
  38.     kilogramoKaina   (0.0),
  39.     kiekis           (0)
  40.  
  41. { }
  42.  
  43. Saldainis::Saldainis( string saldainioTipas, string saldainioPavadinimas, double saldainioKilogramoKaina, int saldainiųKiekis ):
  44.     tipas           ( saldainioTipas          ),
  45.     pavadinimas     ( saldainioPavadinimas    ),
  46.     kilogramoKaina  ( saldainioKilogramoKaina ),
  47.     kiekis          ( saldainiųKiekis         )
  48.  
  49. { }
  50. //-------------------------------------------
  51. void Įvedimas ( const char Fv[], Saldainis S[], string & savininkas, int & n );
  52. double BendraKaina ( Saldainis S[], int n );
  53. int BrangiausioSaldainioIndeksas( Saldainis S[], int n );
  54. void Išvedimas ( const char Fv[], Saldainis S[] );
  55. int Kiekis ( Saldainis S[], int limitas, int n );
  56. void Bendras ( Saldainis S[], Saldainis S2[], Saldainis Bendras[], int n1, int n2, int limitas, int & bendrasN );
  57.  
  58. //-------------------------------------------
  59. int main()
  60. {
  61.     setlocale( LC_ALL, "Lithuanian" );
  62.     ofstream Fr( CFRez );
  63.     Saldainis S[CMax],
  64.               Saldainis1[CMax],
  65.               Saldainis2[CMax],
  66.               BendrasSaldainis[CMax];
  67.  
  68.     string savininkas,
  69.             savininkas1,
  70.             savininkas2;
  71.     int n  = 0;
  72.     int n1 = 0;
  73.     int n2 = 0;
  74.     int bendrasN = 0;
  75.  
  76.     int litųLimitas = 3;
  77.  
  78.     Įvedimas ( CFDuom, S, savininkas, n );
  79.  
  80.     int indeksas = BrangiausioSaldainioIndeksas( S, n );
  81.    
  82.     Fr << "Brangiausio tipo saldainių pavadinimas: ";
  83.     Fr << S[indeksas].ImtiPavadinimą() << endl;
  84.     Fr << endl << "----------------------------------" << endl << endl;
  85.  
  86.  
  87.     Įvedimas ( CFDuom1, Saldainis1, savininkas1, n1 );
  88.     Įvedimas ( CFDuom2, Saldainis2, savininkas2, n2 );
  89.  
  90.     if ( BendraKaina( Saldainis1, n1 ) > BendraKaina( Saldainis2, n2 ) )
  91.         Fr  << "Brangiausio saldainių rinkinio turėtojas: " << savininkas1 << endl;
  92.     else if ( BendraKaina( Saldainis1, n1 ) < BendraKaina( Saldainis2, n2 ) )
  93.         Fr  << "Brangiausio saldainių rinkinio turėtojas: " << savininkas2 << endl;
  94.     else if ( BendraKaina( Saldainis1, n1 ) == BendraKaina( Saldainis2, n2 ) )
  95.         Fr << "Abiejų studentų saldainių rinkinių kaina yra lygi. " << endl;
  96.  
  97.     Bendras ( BendrasSaldainis, Saldainis1, Saldainis2, n1, n2, litųLimitas, bendrasN );
  98.  
  99.     Fr << "Litų limitas: " << litųLimitas << endl;
  100.  
  101.     //bendrasN = n1 + n2;
  102.  
  103.     for ( int i = 0; i < bendrasN; i++ )
  104.     {
  105.         //if ( BendrasSaldainis[i].ImtiKilogramoKainą() > litųLimitas )
  106.         //{
  107.         Fr << BendrasSaldainis[i].ImtiTipą() << " " << BendrasSaldainis[i].ImtiPavadinimą() << " " << BendrasSaldainis[i].ImtiKilogramoKainą() << " "
  108.             << BendrasSaldainis[i].ImtiSaldainiųKiekį() << endl;
  109.         //}
  110.     };
  111.  
  112.     Fr.close();
  113.         system("pause");
  114.     return 0;
  115.  
  116. };
  117.  
  118. void Įvedimas ( const char Fv[], Saldainis S[], string & savininkas, int & n )
  119. {
  120.      string tipas;
  121.      string pavadinimas;
  122.      double kaina;
  123.      int kiekis;
  124.      int i = 0;
  125.  
  126.     ifstream fd( Fv );
  127.     getline( fd, savininkas,',' );
  128.     while ( !fd.eof() )
  129.     {
  130.         getline( fd, tipas, ',' );
  131.         getline( fd, pavadinimas, ',');
  132.         fd >> kaina;
  133.         fd >> kiekis;
  134.         S[i] = Saldainis( tipas, pavadinimas, kaina, kiekis );
  135.         i++;
  136.         n = i;
  137.     }
  138.  
  139. };
  140.  
  141. double BendraKaina ( Saldainis S[], int n )
  142. {
  143.     double suma = 0;
  144.  
  145.     for ( int i = 0; i < n; i++ )
  146.     {
  147.         suma = suma + S[i].ImtiKilogramoKainą() * S[i].ImtiSaldainiųKiekį();
  148.     };
  149.  
  150.     return (double) suma;
  151. };
  152.  
  153. int BrangiausioSaldainioIndeksas( Saldainis S[], int n )
  154. {
  155.     if ( n == 0 )
  156.         return -1;
  157.  
  158.     int k = 0;
  159.     for ( int i = 1; i < n; i++ )
  160.     {
  161.         if ( S[i].ImtiKilogramoKainą() > S[k].ImtiKilogramoKainą() )
  162.             k = i;
  163.     };
  164.     return k;
  165. };
  166.  
  167. int KiekisLimito ( Saldainis S[], int limitas, int n )
  168. {
  169.     int kiekis = 0;
  170.     for ( int i = 0; i <= n; i++ )
  171.     {
  172.          if ( S[i].ImtiKilogramoKainą() > limitas )
  173.             kiekis++;
  174.     };
  175.     return kiekis;
  176. };
  177.  
  178. void Bendras ( Saldainis S[], Saldainis S2[], Saldainis S3[], int n1, int n2, int limitas, int & n3 )
  179. {
  180.     int i;
  181.     int k = 0;
  182.  
  183.     for ( i = 0; i < n1; i++ )
  184.     {
  185.         if ( S2[i].ImtiKilogramoKainą() > limitas )
  186.         {
  187.             S[k] = Saldainis( S2[i].ImtiTipą(), S2[i].ImtiPavadinimą(), S2[i].ImtiKilogramoKainą(), S2[i].ImtiSaldainiųKiekį() );
  188.             k++;
  189.         }      
  190.     }
  191.  
  192.  
  193.     for ( i = 0; i < n2; i ++ )
  194.     {
  195.         if ( S3[i].ImtiKilogramoKainą() > limitas )
  196.         {
  197.             S[k] = Saldainis ( S3[i].ImtiTipą(), S3[i].ImtiPavadinimą(), S3[i].ImtiKilogramoKainą(), S3[i].ImtiSaldainiųKiekį() );
  198.             k++;
  199.         }      
  200.     }
  201.  
  202.     n3 = k;
  203. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement