Advertisement
kaunas163

C++ pamoka 13 (antra dalis)

Jul 4th, 2014
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.47 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Studentas
  5. {
  6. private:
  7.     int amzius;     // studento amžius
  8.     double ugis,        // studento ūgis, m
  9.         svoris;     // studento svoris, kg
  10. public:
  11.     void Deti(int am, double ug, double sv) { amzius = am; ugis = ug; svoris = sv; }
  12.     int ImtiAmziu()     { return amzius; }
  13.     double ImtiUgi()    { return ugis; }
  14.     double ImtiSvori()  { return svoris; }
  15. };
  16.  
  17. class Liftas
  18. {
  19.     double kel_galia;   // lifto keliamoji galia, kg
  20.     int talpa;      // lifto talpa
  21. public:
  22.     void Deti(double gal, int tal) { kel_galia = gal; talpa = tal; }
  23.     double ImtiKelGalia()   { return kel_galia; }
  24.     int ImtiTalpa()     { return talpa; }
  25. };
  26.  
  27. void Ivedimas(Studentas S[], int kiek);
  28. void IvedimasApieLifta(Liftas & L);
  29. int Auksciausio_amzius(Studentas S[], int kiek);
  30. double Jauniausio_ugis(Studentas S[], int kiek);
  31. double PerKiekKartuPakils(Liftas L, Studentas S[], int kiek);
  32.  
  33. int main() {
  34.     setlocale(LC_ALL, "Lithuanian");
  35.  
  36.     int kiek = 3;       // kiek studentų
  37.     Studentas studentai[3]; // studentų masyvas
  38.     Liftas liftas;      // lifto objektas
  39.  
  40.     Ivedimas(studentai, kiek);
  41.     cout << "Aukščiausio studento amžius: " << Auksciausio_amzius(studentai, kiek)
  42.         << "\nJauniausio studento ūgis: " << Jauniausio_ugis(studentai, kiek) << " m.\n\n";
  43.     IvedimasApieLifta(liftas);
  44.     cout << "Liftas studentus pakels per " << PerKiekKartuPakils(liftas, studentai, kiek)
  45.         << " kartus.\n\n";
  46.  
  47.     return 0;
  48. }
  49.  
  50. /* Funkcija, leidžianti įvesti duomenis apie studentus
  51. S[] - nurodytas masyvas į kurį dedu duomenis
  52. kiek - kiek studentų */
  53. void Ivedimas(Studentas S[], int kiek) {
  54.     int amzius; double ugis, svoris;
  55.     cout << "Įveskite duomenis apie tris studentus (per tarpus).\n\n"
  56.         << "Amžius, Ūgis (m), Svoris (kg)\n\n";
  57.     for (int i = 0; i < kiek; i++)
  58.     {
  59.         cout << i+1 << "-as studentas.\n";
  60.         cin >> amzius >> ugis >> svoris;
  61.         S[i].Deti(amzius, ugis, svoris);
  62.         cout << endl;
  63.     }
  64.     cout << endl;
  65. }
  66.  
  67. /* Įvedami duomenys apie liftą.
  68. L - lifto objektas */
  69. void IvedimasApieLifta(Liftas & L)
  70. {
  71.     double galia; int talpa;
  72.     cout << "Įveskite duomenis apie liftą.\n\n"
  73.         << "Keliamoji galia (kg), talpa\n\n";
  74.     cin >> galia >> talpa;
  75.     L.Deti(galia, talpa);
  76.     cout << endl;
  77. }
  78.  
  79. /* Ieško koks yra aukščiausio studento amžius
  80. S[] - masyvas, kuriame yra duomenys apie studentus
  81. kiek - kiek studentų */
  82. int Auksciausio_amzius(Studentas S[], int kiek) {
  83.  
  84.     int amzius = S[0].ImtiAmziu();
  85.     double ugis = S[0].ImtiUgi();
  86.  
  87.     for (int i = 0; i < kiek; i++)
  88.     {
  89.         if (S[i].ImtiUgi() > ugis)
  90.         {
  91.             ugis = S[i].ImtiUgi();
  92.             amzius = S[i].ImtiAmziu();
  93.         }
  94.     }
  95.     return amzius;
  96. }
  97.  
  98. /* Ieško koks yra jaunausio studento ūgis
  99. S[] - masyvas, kuriame yra duomenys apie studentus
  100. kiek - kiek studentų */
  101. double Jauniausio_ugis(Studentas S[], int kiek) {
  102.  
  103.     int amzius = S[0].ImtiAmziu();
  104.     double ugis = S[0].ImtiUgi();
  105.  
  106.     for (int i = 0; i < kiek; i++)
  107.     {
  108.         if (S[i].ImtiAmziu() < amzius)
  109.         {
  110.             amzius = S[i].ImtiAmziu();
  111.             ugis = S[i].ImtiUgi();
  112.         }
  113.     }
  114.     return ugis;
  115. }
  116.  
  117. /* Per kelis kartus visi studentai pakils liftu į reikiamą aukštą?
  118. L - lifto objektas
  119. S - studentų masyvas
  120. kiek - kiek studentų */
  121. double PerKiekKartuPakils(Liftas L, Studentas S[], int kiek)
  122. {
  123.     double bendras = 0;     // bendras studentų svoris
  124.     for (int i = 0; i < kiek; i++)
  125.     {
  126.         bendras += S[i].ImtiSvori();
  127.         // bendras = bendras + S[i].ImtiSvori();
  128.     }
  129.  
  130.     double a = bendras / L.ImtiKelGalia();
  131.     double b = kiek / L.ImtiTalpa();
  132.  
  133.     if (a > b)
  134.         return a;
  135.     else if (a < b)
  136.         return b;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement