Lauda

Untitled

Nov 5th, 2012
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.88 KB | None | 0 0
  1. // TV.H
  2. #ifndef TV_HPP_INCLUDED
  3. #define TV_HPP_INCLUDED
  4.  
  5. #include <iostream>
  6. #include <cstdlib>
  7. #include <string>
  8.  
  9. using namespace std;
  10.  
  11. #define MAXKANAL 10
  12. #define MINKANAL 0
  13. #define PK 1
  14.  
  15. enum stanje
  16. {
  17.     sON, sOFF, sOUT
  18. };
  19.  
  20. enum rezim
  21. {
  22. /*
  23. Rezimi rada televizora:
  24. rTV: Normalan rezim rada TV-a.
  25. rDVD: TV radi u rezimu DVD-a, odnosno trenutno se gleda neki DVD film (uuuu akcija)
  26. rTXT: Teletekst
  27. rHDMI: TV je prebacen na HDMI rezim rada!
  28. */
  29.     rTV, rDVD, rTXT, rHDMI
  30. };
  31.  
  32. class Tv
  33. {
  34.     private:
  35.         stanje state;
  36.         rezim mode;
  37.         int kanal;
  38.  
  39.     public:
  40.         // Konstruktori:
  41.         Tv();
  42.         Tv(const Tv&);
  43.  
  44.         // Metode:
  45.         stanje getStanje() const;
  46.         rezim getRezim() const;
  47.         int getKanal() const;
  48.         string getImeKanala() const;
  49.         bool turnOn();
  50.         bool turnOff();
  51.         bool turnOut();
  52.         bool repair();
  53.         bool incK();
  54.         bool decK();
  55.  
  56. };
  57.  
  58. #endif // TV_HPP_INCLUDED
  59.  
  60. // TV.CPP
  61. #include "tv.hpp"
  62.  
  63. Tv :: Tv()
  64. {
  65.     state = sOFF;
  66.     mode = rTV;
  67.     kanal = MINKANAL;
  68. }
  69.  
  70. Tv :: Tv(Tv const &rt)
  71. {
  72.     state = rt.state;
  73.     mode = rt.mode;
  74.     kanal = rt.kanal;
  75. }
  76.  
  77. stanje Tv :: getStanje() const
  78. {
  79.     return state;
  80. }
  81.  
  82. rezim Tv :: getRezim() const
  83. {
  84.     return mode;
  85. }
  86.  
  87. int Tv :: getKanal() const
  88. {
  89.     return kanal;
  90. }
  91.  
  92. bool Tv :: turnOn()
  93. {
  94.     if (state == sOFF)
  95.     {
  96.         state = sON;
  97.         return true;
  98.     }
  99.     else
  100.         return false;
  101. }
  102.  
  103. bool Tv :: turnOff()
  104. {
  105.     if (state == sON)
  106.     {
  107.         state = sOFF;
  108.         return true;
  109.     }
  110.     else
  111.         return false;
  112. }
  113.  
  114. bool Tv :: turnOut()
  115. {
  116.     if (state != sOUT)
  117.     {
  118.         state = sOUT;
  119.         return true;
  120.     }
  121.     else
  122.         return false;
  123. }
  124.  
  125. bool Tv :: repair()
  126. {
  127.     if (state == sOUT)
  128.     {
  129.         state = sOFF;
  130.         mode = rTV;
  131.         kanal = MINKANAL;
  132.         return true;
  133.     }
  134.     else
  135.         return false;
  136. }
  137.  
  138. bool Tv :: incK()
  139. {
  140.     // Kanale mozemo da prebacujemo ako je upaljen TV(logicno) i ako je rezim rada normalan aka rTV, tj. nije DVD ili neka druga glupost...i naravno ako spada u dozvoljene granice vrijednosti
  141.     if (mode == rTV && state == sON && kanal + PK <= MAXKANAL)
  142.     {
  143.         kanal += PK;
  144.         return true;
  145.     }
  146.     else
  147.         return false;
  148. }
  149.  
  150. bool Tv :: decK()
  151. {
  152.     if (mode == rTV && state == sON && kanal - PK >= MINKANAL)
  153.     {
  154.         kanal -= PK;
  155.         return true;
  156.     }
  157.     else
  158.         return false;
  159. }
  160.  
  161. // MAIN.CPP
  162. #include "tv.hpp"
  163.  
  164. void printTV(Tv const &rt)
  165. {
  166.     string Programi[] =
  167. {
  168.     "RTRS",
  169.     "RTL",
  170.     "Pink",
  171.     "Nova TV",
  172.     "Hepi",
  173.     "Fox",
  174.     "Discovery",
  175.     "FoxCrime",
  176.     "TV1000",
  177.     "SciFi",
  178.     "HRT"
  179. };
  180.  
  181.     cout << "TV je: ";
  182.     switch(rt.getStanje())
  183.     {
  184.         case sON:
  185.             cout << "ON!" << endl;
  186.             break;
  187.  
  188.         case sOFF:
  189.             cout << "OFF!" << endl;
  190.             break;
  191.  
  192.         case sOUT:
  193.             cout << "OUT!" << endl;
  194.             break;
  195.  
  196.         default:
  197.             cout << "N/A" << endl;
  198.     }
  199.  
  200.     cout << "Rezim rada TV-a je: ";
  201.     switch(rt.getRezim())
  202.     {
  203.         case rTV:
  204.             cout << "Normalan (TV)!" << endl;
  205.             break;
  206.  
  207.         case rDVD:
  208.             cout << "DVD!" << endl;
  209.             break;
  210.  
  211.         case rTXT:
  212.             cout << "Teletekst!" << endl;
  213.             break;
  214.  
  215.         case rHDMI:
  216.             cout << "HDMI!" << endl;
  217.             break;
  218.  
  219.         default:
  220.             cout << "N/A!" << endl;
  221.     }
  222.  
  223.     cout << "Broj kanala je: " << rt.getKanal() << endl;
  224.     cout << "Ime kanala: " << Programi[rt.getKanal()] << endl;
  225.     cout << endl;
  226. }
  227.  
  228. char meni()
  229. {
  230.     char odg;
  231.  
  232.     do
  233.     {
  234.         cout << "Izaberite opciju:" << endl;
  235.         cout << "1. Ukljuci TV" << endl;
  236.         cout << "2. Iskljuci TV" << endl;
  237.         cout << "3. Pokvari TV" << endl;
  238.         cout << "4. Popravi TV" << endl;
  239.         cout << "5. Prebaci kanal gore" << endl;
  240.         cout << "6. Prebaci kanal dole" << endl;
  241.         cout << "7. Kraj rada" << endl;
  242.         cin >> odg;
  243.     }
  244.     while (odg < '1' || odg > '7');
  245.  
  246.     return odg;
  247. }
  248.  
  249. int main()
  250. {
  251.     Tv t;
  252.     char ch;
  253.  
  254.     do
  255.     {
  256.         ch = meni();
  257.         switch(ch)
  258.         {
  259.             case '1':
  260.                 if (t.turnOn())
  261.                     cout << "Operacija izvrsena!" << endl;
  262.                 else
  263.                     cout << "Operacija nije izvrsena!" << endl;
  264.                 printTV(t);
  265.                 break;
  266.  
  267.             case '2':
  268.                 if (t.turnOff())
  269.                     cout << "Operacija izvrsena!" << endl;
  270.                 else
  271.                     cout << "Operacija nije izvrsena!" << endl;
  272.                 printTV(t);
  273.                 break;
  274.  
  275.             case '3':
  276.                 if (t.turnOut())
  277.                     cout << "Operacija izvrsena!" << endl;
  278.                 else
  279.                     cout << "Operacija nije izvrsena!" << endl;
  280.                 printTV(t);
  281.                 break;
  282.  
  283.             case '4':
  284.                 if (t.repair())
  285.                     cout << "Operacija izvrsena!" << endl;
  286.                 else
  287.                     cout << "Operacija nije izvrsena!" << endl;
  288.                 printTV(t);
  289.                 break;
  290.  
  291.             case '5':
  292.                 if (t.incK())
  293.                     cout << "Operacija izvrsena!" << endl;
  294.                 else
  295.                     cout << "Operacija nije izvrsena!" << endl;
  296.                 printTV(t);
  297.                 break;
  298.  
  299.             case '6':
  300.                 if (t.decK())
  301.                     cout << "Operacija izvrsena!" << endl;
  302.                 else
  303.                     cout << "Operacija nije izvrsena!" << endl;
  304.                 printTV(t);
  305.                 break;
  306.         }
  307.     }
  308.     while (ch != '7');
  309.  
  310.  
  311.     return 0;
  312. }
  313.  
  314. // END
Advertisement
Add Comment
Please, Sign In to add comment