Advertisement
Guest User

zad

a guest
Apr 25th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.12 KB | None | 0 0
  1. // POJAZD.CPP
  2.  
  3. #include <iostream>
  4. #include "Pojazd.h"
  5.  
  6. Pojazd::Pojazd(double _bak, double _start)
  7.     : pojemnoscBaku(_bak)
  8. {
  9.     if (_start < pojemnoscBaku) {
  10.         bak = _start;
  11.     }
  12.     else {
  13.         bak = pojemnoscBaku;
  14.     }
  15.     if (_start <= 0) {
  16.         bak = 0;
  17.     }
  18.     else {
  19.         bak = _start;
  20.     }
  21. }
  22. double Pojazd::tankuj(double _ile)
  23. {
  24.     double daSieNalac = pojemnoscBaku - bak;
  25.     if (_ile > daSieNalac) {
  26.         bak = pojemnoscBaku;
  27.         return daSieNalac;
  28.     }
  29.     else {
  30.         bak += _ile;
  31.         return _ile;
  32.     }
  33. }
  34.  
  35. //POJAZD.H
  36.  
  37. #pragma once
  38. #include <iostream>
  39.  
  40. class Pojazd {
  41. protected:
  42.     const double pojemnoscBaku;  //  [l]
  43.     double bak;                  //  stan baku [l]
  44. public:
  45.     Pojazd(double _bak, double _start);
  46.     double stanBaku() const { return bak; }
  47.     double tankuj(double _ile);
  48. };
  49.  
  50. //CIEZAROWY.CPP
  51.  
  52. #include "Ciezarowy.h"
  53.  
  54. Ciezarowy::Ciezarowy(double _bak, double _min, double _tona, double _start)
  55.     : Pojazd(_bak, _start)
  56.     , spalanieMin(_min)
  57.     , spalanieNaTone(_tona)
  58. {
  59.     if (_start < pojemnoscBaku) {
  60.         bak = _start;
  61.     }
  62.     else {
  63.         bak = pojemnoscBaku;
  64.     }
  65.     if (_start <= 0) {
  66.         bak = 0;
  67.     }
  68.     else {
  69.         bak = _start;
  70.     }
  71. }
  72.  
  73. bool Ciezarowy::jedz(double _dystans, double _obciazenie)
  74. {
  75.     double spalanie = spalanieMin + spalanieNaTone * _obciazenie;
  76.     double zuzycie = _dystans * spalanie / 100.0;
  77.     if (zuzycie > bak) {
  78.         std::cout << "Za malo paliwa by przejechac odcinek!"
  79.             << " Potrzeba " << zuzycie << "l, dostepne " << bak << "l." << std::endl;
  80.         return false;
  81.     }
  82.     else {
  83.         std::cout << "Zuzyto " << zuzycie << " l paliwa." << std::endl;
  84.         bak -= zuzycie;
  85.         return true;
  86.     }
  87. }
  88.  
  89. //OSOBOWY.CPP
  90.  
  91. #include "Osobowy.h"
  92.  
  93. Osobowy::Osobowy(double _bak, double _eko, double _max, double _start)
  94.     : spalanieEko(_eko)
  95.     , spalanieMax(_max)
  96.     , Pojazd(_bak, _start)
  97. {
  98.     if (_start < pojemnoscBaku) {
  99.         bak = _start;
  100.     }
  101.     else {
  102.         bak = pojemnoscBaku;
  103.     }
  104.     if (_start <= 0) {
  105.         bak = 0;
  106.     }
  107.     else {
  108.         bak = _start;
  109.     }
  110. }
  111.  
  112. bool Osobowy::jedz(double _dystans, bool _szybko)
  113. {
  114.     double zuzycie;
  115.     if (_szybko) zuzycie = _dystans * spalanieMax / 100.0;
  116.     else zuzycie = _dystans * spalanieEko / 100.0;
  117.     if (zuzycie > bak) {
  118.         std::cout << "Za malo paliwa by przejechac odcinek!"
  119.             << " Potrzeba " << zuzycie << "l, dostepne " << bak << "l." << std::endl;
  120.         return false;
  121.     }
  122.     else {
  123.         std::cout << "Zuzyto " << zuzycie << " l paliwa." << std::endl;
  124.         bak -= zuzycie;
  125.         return true;
  126.     }
  127. }
  128.  
  129. //OSOBOWY.H
  130.  
  131. #pragma once
  132. #pragma once
  133. #include <iostream>
  134. #include "Pojazd.h"
  135.  
  136. class Osobowy : public Pojazd
  137. {
  138. private:
  139.     const double spalanieEko;    //  [l/100km]
  140.     const double spalanieMax;    //  [l/100km]
  141. public:
  142.     Osobowy(double _bak, double _eko, double _max, double _start);
  143.     bool jedz(double _dystans, bool _szybko = false);
  144. };
  145.  
  146. //Ciezarowy.h
  147. #pragma once
  148. #pragma once
  149. #include "Pojazd.h"
  150. #include <iostream>
  151.  
  152. class Ciezarowy: public Pojazd
  153. {
  154. private:
  155.     const double spalanieMin;    //  [l/100km]
  156.     const double spalanieNaTone; //  [l/100km/tona]
  157. public:
  158.     Ciezarowy(double _bak, double _min, double _tona, double _start);
  159.     //double tankuj(double _ile);
  160.     bool jedz(double _dystans, double _obciazenie = 0.0);
  161. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement