amarek

OOP LV3 - Analiza

Nov 11th, 2019
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.30 KB | None | 0 0
  1. // 1. Napiši klasu MotornoVozilo koja ima podatkovne članove za boju, zapremninu
  2. // spremnika goriva, trenutnu razinu goriva i prosječnu potrošnju, defaultni i
  3. // parametarski konstruktor, metodu Oboji koja boja vozilo, Natoci koja puni
  4. // gorivo i čistu virtualnu metodu Vozi, koja kao parametar ima broj kilometara
  5. // koliko se vozi.Napiši klasu Automobil koja nasljeđuje klasu MotornoVozilo, a
  6. // ima podatkovne članove za model i max.brzinu te defaultni i parametarski
  7. // konstruktor.Prepiši metodu vozi, tako da umanjuje količinu goriva prema
  8. // broju kilometara koje se vozi i prosječnoj potrošnji.Napraviti garažu(1D polje
  9. // MotornihVozila) i provozati svako vozilo iz garaže.
  10.  
  11. #include <iostream>
  12. #include <cstdlib>
  13. #include <ctime>
  14. #include <string>
  15.  
  16. using namespace std;
  17.  
  18. // ---------------------------------------
  19.  
  20. class Vehicle {
  21. protected:
  22.     string mColor;
  23.     float mFuelTank;
  24.     float mFuelLevel;
  25.     float mAverageConsumption;
  26. public:
  27.     Vehicle();
  28.     Vehicle(string, float, float, float);
  29.     void Paint(string);
  30.     void Refuel(float);
  31.     virtual void Drive(float) = 0;
  32. };
  33.  
  34. // ---------------------------------------
  35.  
  36. Vehicle::Vehicle() : mColor(""), mFuelTank(0.0), mFuelLevel(0.0), mAverageConsumption(0.0) {}
  37.  
  38. Vehicle::Vehicle(string Color, float FuelTank, float FuelLevel, float AverageConsumption) : mColor(Color), mFuelTank(FuelTank), mFuelLevel(FuelLevel), mAverageConsumption(AverageConsumption) {}
  39.  
  40. void Vehicle::Paint(string color) {
  41.     mColor = color;
  42. }
  43.  
  44. void Vehicle::Refuel(float fuel) {
  45.     mFuelTank += fuel;
  46. }
  47.  
  48. // ---------------------------------------
  49.  
  50. class Car : public Vehicle {
  51. private:
  52.     string mModel;
  53.     float mMaxSpeed;
  54. public:
  55.     Car();
  56.     Car(string, float, string, float, float, float);
  57.     virtual void Drive(float);
  58. };
  59.  
  60. // ---------------------------------------
  61.  
  62. Car::Car() : mModel(""), mMaxSpeed(0.0), Vehicle("", 0.0, 0.0, 0.0) {}
  63.  
  64. Car::Car(string Model, float MaxSpeed, string Color, float FuelTank, float FuelLevel, float AverageConsumption) : mModel(Model), mMaxSpeed(MaxSpeed), Vehicle(Color, FuelTank, FuelLevel, AverageConsumption) {}
  65.  
  66. void Car::Drive(float distance) {
  67.     if (mFuelLevel - mAverageConsumption * distance < 0) {
  68.         mFuelLevel = 0;
  69.     }
  70.     else {
  71.         mFuelLevel = mFuelLevel - mAverageConsumption * distance;
  72.     }
  73. }
  74.  
  75. // ---------------------------------------
  76.  
  77. int main() {
  78.     float random;
  79.     Vehicle** Garage = new Vehicle*[3] {
  80.         new Car( "Opel", 200.00, "Black", 150.00, 70.00, 0.2 ),
  81.         new Car( "Lamborghini", 300.00, "Yellow", 100.00, 10.00, 0.8 ),
  82.         new Car( "Audi", 250.00, "White", 200.00, 120.00, 0.5 )
  83.     };
  84.  
  85.     srand((unsigned int)time(0));
  86.     for (int i = 0; i < 3; i++) {
  87.         random = 100 + (float)rand() * 400 / (float)RAND_MAX;
  88.         Garage[i]->Drive(random);
  89.     }
  90.  
  91.     for (int i = 0; i < 3; i++) {
  92.         delete Garage[i];
  93.     }
  94.     delete Garage;
  95.  
  96.     return 0;
  97. }
  98.  
  99. // 2. Napiši klasu Kalkulator koja predstavlja i ima mogućnosti osnovnog kalkulatora
  100. // (unesi operande, zbroji, oduzmi, pomnozi, podijeli, prikaži rezultat).Iz nje
  101. // izvedi klasu znanstveni kalkulator koja omogućuje dodatne operacije poput
  102. // korjenovanja, potenciranja te onih operacija koje smatrate nužnima.
  103.  
  104. #include <iostream>
  105. #include <math.h>
  106.  
  107. using namespace std;
  108.  
  109. // ---------------------------------------
  110.  
  111. class Calculator{
  112. protected:
  113.     double mResult;
  114. public:
  115.     Calculator();
  116.     void Add(double, double);
  117.     void Subtract(double, double);
  118.     void Multiply(double, double);
  119.     void Divide(double, double);
  120.     void ShowResult() const;
  121. };
  122.  
  123. // ---------------------------------------
  124.  
  125. Calculator::Calculator() : mResult(0.0) {}
  126.  
  127. void Calculator::Add(double A, double B) { mResult = A + B; }
  128.  
  129. void Calculator::Subtract(double A, double B) { mResult = A - B; }
  130.  
  131. void Calculator::Multiply(double A, double B) { mResult = A * B; }
  132.  
  133. void Calculator::Divide(double A, double B) { mResult = A / B; }
  134.  
  135. void Calculator::ShowResult() const { cout << mResult << endl; }
  136.  
  137. // ---------------------------------------
  138.  
  139. class ScientificCalculator : public Calculator {
  140. public:
  141.     void SquareRoot(double);
  142.     void Power(double, double);
  143.     void Sine(double);
  144.     void Cosine(double);
  145. };
  146.  
  147. // ---------------------------------------
  148.  
  149. void ScientificCalculator::SquareRoot(double X) { mResult = sqrt(X); }
  150.  
  151. void ScientificCalculator::Power(double Base, double Exponent) { mResult = pow(Base, Exponent); }
  152.  
  153. void ScientificCalculator::Sine(double X) { mResult = sin(X); }
  154.  
  155. void ScientificCalculator::Cosine(double X) { mResult = cos(X); }
  156.  
  157. // ---------------------------------------
  158.  
  159. int main() {
  160.     ScientificCalculator Kalkulator;
  161.     double a = 2.3, b = 4.6, x = 5.2;
  162.  
  163.     Kalkulator.Add(a, b);
  164.     Kalkulator.ShowResult();
  165.  
  166.     Kalkulator.Subtract(a, b);
  167.     Kalkulator.ShowResult();
  168.  
  169.     Kalkulator.Multiply(a, b);
  170.     Kalkulator.ShowResult();
  171.  
  172.     Kalkulator.Divide(a, b);
  173.     Kalkulator.ShowResult();
  174.  
  175.     Kalkulator.SquareRoot(x);
  176.     Kalkulator.ShowResult();
  177.  
  178.     Kalkulator.Power(a, b);
  179.     Kalkulator.ShowResult();
  180.  
  181.     Kalkulator.Sine(x);
  182.     Kalkulator.ShowResult();
  183.  
  184.     Kalkulator.Cosine(x);
  185.     Kalkulator.ShowResult();
  186.  
  187.     return 0;
  188. }
Advertisement
Add Comment
Please, Sign In to add comment