Advertisement
eniodordan

[OOP] LV3 - Zadaci + Analiza

Nov 15th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. // Zadaci
  2. // 1. zadatak
  3. // ---------------------------------------
  4.  
  5. class Prepaid {
  6. protected:
  7.     float mBalance;
  8. public:
  9.     Prepaid();
  10.     Prepaid(float);
  11.     void AddMoney(float);
  12.     float GetBalance() const;
  13.     virtual void SendSMS() = 0;
  14. };
  15.  
  16. // ---------------------------------------
  17.  
  18. Prepaid::Prepaid() : mBalance(0) {}
  19.  
  20. Prepaid::Prepaid(float balance) : mBalance(balance) {}
  21.  
  22. void Prepaid::AddMoney(float nadoplata) {
  23.     mBalance += nadoplata;
  24. }
  25.  
  26. float Prepaid::GetBalance() const {
  27.     return mBalance;
  28. }
  29.  
  30. // ---------------------------------------
  31.  
  32. class Tele2 : public Prepaid {
  33. private:
  34.     float mPrice;
  35. public:
  36.     Tele2();
  37.     Tele2(float, float);
  38.     void SendSMS();
  39. };
  40.  
  41. // ---------------------------------------
  42.  
  43. Tele2::Tele2() : mPrice(0), Prepaid() {}
  44.  
  45. Tele2::Tele2(float price, float balance) : mPrice(price), Prepaid(balance) {}
  46.  
  47. void Tele2::SendSMS() {
  48.     mBalance -= mPrice;
  49.     cout << "Message sent! Message price: " << mPrice << "$" <<endl;
  50. }
  51.  
  52. // ---------------------------------------
  53.  
  54. int main() {
  55.     Tele2 Korisnik(2.3, 50);
  56.     Prepaid *p;
  57.  
  58.     p = &Korisnik;
  59.     cout << "Balance: " << p->GetBalance() << "$" << endl;
  60.     p->SendSMS();
  61.     cout << "Balance: " << p->GetBalance() << "$" << endl;
  62.  
  63.     return 0;
  64. }
  65.  
  66. // 2. zadatak
  67. // ---------------------------------------
  68.  
  69. class Device {
  70. protected:
  71.     bool mPoweredON;
  72.     string mDeviceID;
  73.     string mManufacturer;
  74. public:
  75.     Device();
  76.     Device(bool, string, string);
  77.     virtual void TurnON_OFF();
  78. };
  79.  
  80. // ---------------------------------------
  81.  
  82. Device::Device() : mPoweredON(false), mDeviceID(""), mManufacturer("") {}
  83.  
  84. Device::Device(bool PoweredON, string DeviceID, string Manufacturer) : mPoweredON(PoweredON), mDeviceID(DeviceID), mManufacturer(Manufacturer) {}
  85.  
  86. void Device::TurnON_OFF() { mPoweredON = !mPoweredON; }
  87.  
  88. // ---------------------------------------
  89.  
  90. class USBDevice : public virtual Device {
  91. protected:
  92.     bool mConnected;
  93.     float mUSBStandard;
  94. public:
  95.     USBDevice();
  96.     USBDevice(bool, float, bool, string, string);
  97.     virtual void Connect();
  98. };
  99.  
  100. // ---------------------------------------
  101.  
  102. USBDevice::USBDevice() : mConnected(false), mUSBStandard(2.0), Device(false, "", "") {}
  103.  
  104. USBDevice::USBDevice(bool Connected, float USBStandard, bool PoweredON, string DeviceID, string Manufacturer) : mConnected(Connected), mUSBStandard(USBStandard), Device(PoweredON, DeviceID, Manufacturer) {}
  105.  
  106. void USBDevice::Connect() { mConnected = !mConnected; }
  107.  
  108. // ---------------------------------------
  109.  
  110. class NetworkDevice : public virtual Device {
  111. protected:
  112.     bool mConnected;
  113.     string mNetworkStandard;
  114. public:
  115.     NetworkDevice();
  116.     NetworkDevice(bool, string, bool, string, string);
  117.     virtual void Connect();
  118. };
  119.  
  120. // ---------------------------------------
  121.  
  122. NetworkDevice::NetworkDevice() : mConnected(false), mNetworkStandard(""), Device(false, "", "") {}
  123.  
  124. NetworkDevice::NetworkDevice(bool Connected, string NetworkStandard, bool PoweredON, string DeviceID, string Manufacturer) : mConnected(Connected), mNetworkStandard(NetworkStandard), Device(PoweredON, DeviceID, Manufacturer) {}
  125.  
  126. void NetworkDevice::Connect() { mConnected = !mConnected; }
  127.  
  128. // ---------------------------------------
  129.  
  130. class WirelessAdapter : public USBDevice, public NetworkDevice {
  131. private:
  132.     int mAntennas;
  133.     int mGain;
  134. public:
  135.     WirelessAdapter();
  136.     WirelessAdapter(int, int, bool, float, string, bool, string, string);
  137.     virtual void Connect();
  138.     void Status();
  139. };
  140.  
  141. // ---------------------------------------
  142.  
  143. WirelessAdapter::WirelessAdapter() : mAntennas(0), mGain(0), USBDevice(false, 2.0, false, "", ""), NetworkDevice(false, "", false, "", "") {}
  144.  
  145. WirelessAdapter::WirelessAdapter(int Antennas, int Gain, bool Connected, float USBStandard, string NetworkStandard, bool PoweredON, string DeviceID, string Manufacturer) : mAntennas(Antennas), mGain(Gain), USBDevice(Connected, USBStandard, PoweredON, DeviceID, Manufacturer), NetworkDevice(Connected, NetworkStandard, PoweredON, DeviceID, Manufacturer) {}
  146.  
  147. void WirelessAdapter::Connect() {
  148.     USBDevice::Connect();
  149.     NetworkDevice::Connect();
  150. }
  151.  
  152. void WirelessAdapter::Status() {
  153.     if (USBDevice::mPoweredON) {
  154.         if (USBDevice::mConnected) {
  155.             cout << "USB Device is connected!" << endl;
  156.         }
  157.         else {
  158.             cout << "USB Device is disconnected!" << endl;
  159.         }
  160.     }
  161.     else {
  162.         cout << "USB Device is not powered on!" << endl;
  163.     }
  164.  
  165.     if (NetworkDevice::mPoweredON) {
  166.         if (NetworkDevice::mConnected) {
  167.             cout << "Network Device is connected!" << endl;
  168.         }
  169.         else {
  170.             cout << "Network Device is disconnected!" << endl;
  171.         }
  172.     }
  173.     else {
  174.         cout << "Network Device is not powered on!" << endl;
  175.     }
  176. }
  177.  
  178. // ---------------------------------------
  179.  
  180. int main() {
  181.     WirelessAdapter Samsung;
  182.  
  183.     Samsung.TurnON_OFF();
  184.     Samsung.Connect();
  185.     Samsung.Status();
  186.  
  187.     return 0;
  188. }
  189.  
  190. // Analiza
  191. // 1. Napiši klasu MotornoVozilo koja ima podatkovne članove za boju, zapremninu
  192. // spremnika goriva, trenutnu razinu goriva i prosječnu potrošnju, defaultni i
  193. // parametarski konstruktor, metodu Oboji koja boja vozilo, Natoci koja puni
  194. // gorivo i čistu virtualnu metodu Vozi, koja kao parametar ima broj kilometara
  195. // koliko se vozi.Napiši klasu Automobil koja nasljeđuje klasu MotornoVozilo, a
  196. // ima podatkovne članove za model i max.brzinu te defaultni i parametarski
  197. // konstruktor.Prepiši metodu vozi, tako da umanjuje količinu goriva prema
  198. // broju kilometara koje se vozi i prosječnoj potrošnji.Napraviti garažu(1D polje
  199. // MotornihVozila) i provozati svako vozilo iz garaže.
  200.  
  201. // ---------------------------------------
  202.  
  203. class Vehicle {
  204. protected:
  205.     string mColor;
  206.     float mFuelTank;
  207.     float mFuelLevel;
  208.     float mAverageConsumption;
  209. public:
  210.     Vehicle();
  211.     Vehicle(string, float, float, float);
  212.     void Paint(string);
  213.     void Refuel(float);
  214.     virtual void Drive(float) = 0;
  215. };
  216.  
  217. // ---------------------------------------
  218.  
  219. Vehicle::Vehicle() : mColor(""), mFuelTank(0.0), mFuelLevel(0.0), mAverageConsumption(0.0) {}
  220.  
  221. Vehicle::Vehicle(string Color, float FuelTank, float FuelLevel, float AverageConsumption) : mColor(Color), mFuelTank(FuelTank), mFuelLevel(FuelLevel), mAverageConsumption(AverageConsumption) {}
  222.  
  223. void Vehicle::Paint(string color) {
  224.     mColor = color;
  225. }
  226.  
  227. void Vehicle::Refuel(float fuel) {
  228.     mFuelTank += fuel;
  229. }
  230.  
  231. // ---------------------------------------
  232.  
  233. class Car : public Vehicle {
  234. private:
  235.     string mModel;
  236.     float mMaxSpeed;
  237. public:
  238.     Car();
  239.     Car(string, float, string, float, float, float);
  240.     virtual void Drive(float);
  241. };
  242.  
  243. // ---------------------------------------
  244.  
  245. Car::Car() : mModel(""), mMaxSpeed(0.0), Vehicle("", 0.0, 0.0, 0.0) {}
  246.  
  247. Car::Car(string Model, float MaxSpeed, string Color, float FuelTank, float FuelLevel, float AverageConsumption) : mModel(Model), mMaxSpeed(MaxSpeed), Vehicle(Color, FuelTank, FuelLevel, AverageConsumption) {}
  248.  
  249. void Car::Drive(float distance) {
  250.     if (mFuelLevel - mAverageConsumption * distance < 0) {
  251.         mFuelLevel = 0;
  252.     }
  253.     else {
  254.         mFuelLevel = mFuelLevel - mAverageConsumption * distance;
  255.     }
  256. }
  257.  
  258. // ---------------------------------------
  259.  
  260. int main() {
  261.     float random;
  262.     Vehicle** Garage = new Vehicle*[3] {
  263.         new Car( "Opel", 200.00, "Black", 150.00, 70.00, 0.2 ),
  264.         new Car( "Lamborghini", 300.00, "Yellow", 100.00, 10.00, 0.8 ),
  265.         new Car( "Audi", 250.00, "White", 200.00, 120.00, 0.5 )
  266.     };
  267.  
  268.     srand((unsigned int)time(0));
  269.     for (int i = 0; i < 3; i++) {
  270.         random = 100 + (float)rand() * 400 / (float)RAND_MAX;
  271.         Garage[i]->Drive(random);
  272.     }
  273.  
  274.     for (int i = 0; i < 3; i++) {
  275.         delete Garage[i];
  276.     }
  277.     delete Garage;
  278.  
  279.     return 0;
  280. }
  281.  
  282. // 2. Napiši klasu Kalkulator koja predstavlja i ima mogućnosti osnovnog kalkulatora
  283. // (unesi operande, zbroji, oduzmi, pomnozi, podijeli, prikaži rezultat).Iz nje
  284. // izvedi klasu znanstveni kalkulator koja omogućuje dodatne operacije poput
  285. // korjenovanja, potenciranja te onih operacija koje smatrate nužnima.
  286.  
  287. // ---------------------------------------
  288.  
  289. class Calculator{
  290. protected:
  291.     double mResult;
  292. public:
  293.     Calculator();
  294.     void Add(double, double);
  295.     void Subtract(double, double);
  296.     void Multiply(double, double);
  297.     void Divide(double, double);
  298.     void ShowResult() const;
  299. };
  300.  
  301. // ---------------------------------------
  302.  
  303. Calculator::Calculator() : mResult(0.0) {}
  304.  
  305. void Calculator::Add(double A, double B) { mResult = A + B; }
  306.  
  307. void Calculator::Subtract(double A, double B) { mResult = A - B; }
  308.  
  309. void Calculator::Multiply(double A, double B) { mResult = A * B; }
  310.  
  311. void Calculator::Divide(double A, double B) { mResult = A / B; }
  312.  
  313. void Calculator::ShowResult() const { cout << mResult << endl; }
  314.  
  315. // ---------------------------------------
  316.  
  317. class ScientificCalculator : public Calculator {
  318. public:
  319.     void SquareRoot(double);
  320.     void Power(double, double);
  321.     void Sine(double);
  322.     void Cosine(double);
  323. };
  324.  
  325. // ---------------------------------------
  326.  
  327. void ScientificCalculator::SquareRoot(double X) { mResult = sqrt(X); }
  328.  
  329. void ScientificCalculator::Power(double Base, double Exponent) { mResult = pow(Base, Exponent); }
  330.  
  331. void ScientificCalculator::Sine(double X) { mResult = sin(X); }
  332.  
  333. void ScientificCalculator::Cosine(double X) { mResult = cos(X); }
  334.  
  335. // ---------------------------------------
  336.  
  337. int main() {
  338.     ScientificCalculator Kalkulator;
  339.     double a = 2.3, b = 4.6, x = 5.2;
  340.  
  341.     Kalkulator.Add(a, b);
  342.     Kalkulator.ShowResult();
  343.  
  344.     Kalkulator.Subtract(a, b);
  345.     Kalkulator.ShowResult();
  346.  
  347.     Kalkulator.Multiply(a, b);
  348.     Kalkulator.ShowResult();
  349.  
  350.     Kalkulator.Divide(a, b);
  351.     Kalkulator.ShowResult();
  352.  
  353.     Kalkulator.SquareRoot(x);
  354.     Kalkulator.ShowResult();
  355.  
  356.     Kalkulator.Power(a, b);
  357.     Kalkulator.ShowResult();
  358.  
  359.     Kalkulator.Sine(x);
  360.     Kalkulator.ShowResult();
  361.  
  362.     Kalkulator.Cosine(x);
  363.     Kalkulator.ShowResult();
  364.  
  365.     return 0;
  366. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement