Advertisement
kaunas163

Kažkieno informatikos egzamino pavyzdinė 1

Apr 18th, 2014
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.91 KB | None | 0 0
  1. // Source.cpp
  2.  
  3. #include <string>
  4. #include <iomanip>
  5. #include <fstream>
  6. #include <iostream>
  7. using namespace std;
  8.  
  9. const int n = 100;  // didžiausias masyvo dydis
  10. const char DUOM[] = "butai.txt";
  11.  
  12. class Butas {
  13.     string  adresas;    // buto adresas
  14.     double  plotas;     // buto plotas kvadratiniais metrais
  15.     int     kamb;       // kambarių skaičius
  16. public:
  17.     void set(string ad, double pl, int ka)
  18.     { adresas = ad; plotas = pl; kamb = ka; }
  19.     string getAdresa()  { return adresas; }
  20.     double getPlota()   { return plotas; }
  21.     int getKambarius()  { return kamb; }
  22. };
  23.  
  24. void Nuskaitymas(const char DUOM[], Butas B[n], int & butusk);
  25. double DidButoPlotas(Butas B[n], int butusk);
  26.  
  27. int main() {
  28.     setlocale(LC_ALL, "Lithuanian");
  29.     Butas B[n];     // masyvas saugoti informacijai apie butus
  30.     int butusk;     // butų skaičius
  31.     Nuskaitymas(DUOM, B, butusk);
  32.     cout << "Didžiausio buto plotas: " << DidButoPlotas(B, butusk)
  33.         << " kvadratiniai metrai.\n\n";
  34.     return 0;
  35. }
  36.  
  37. /* Nuskaito duomenis iš failo
  38. DUOM - duomenų failas
  39. B - masyvas saugantis informaciją apie butus
  40. butusk - butų skaičius */
  41. void Nuskaitymas(const char DUOM[], Butas B[n], int & butusk) {
  42.     string adr; double plot; int kamb;  // laikini kintamieji
  43.     fstream fin(DUOM);
  44.     int sk = 0;
  45.     while (!fin.eof())
  46.     {
  47.         getline(fin, adr, ',');
  48.         fin >> plot >> kamb;
  49.         B[sk].set(adr, plot, kamb);
  50.         sk++;
  51.     }
  52.     butusk = sk;
  53.     fin.close();
  54. }
  55.  
  56. /* Funkcija, ieškanti didžiausio buto plotą
  57. B - masyvas saugantis informaciją apie visus butus
  58. butusk - butų skaičius */
  59. double DidButoPlotas(Butas B[n], int butusk) {
  60.     double laikDidPlotas = 0;   // laik. kint. saugoti didžiausio buto plotui
  61.     for (int i = 0; i < butusk; i++)
  62.     {
  63.         if (B[i].getPlota() > laikDidPlotas)
  64.             laikDidPlotas = B[i].getPlota();
  65.     }
  66.     return laikDidPlotas;
  67. }
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76. // butai.txt
  77. /*
  78. Juozapo g. 45,      56.8    3
  79. Kęstučio g. 89,       75.5    4
  80. Mickevičiaus 14,   40  2
  81. Vilniaus g. 96,     120 3
  82. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement