Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // TV.H
- #ifndef TV_HPP_INCLUDED
- #define TV_HPP_INCLUDED
- #include <iostream>
- #include <cstdlib>
- #include <string>
- using namespace std;
- #define MAXKANAL 10
- #define MINKANAL 0
- #define PK 1
- enum stanje
- {
- sON, sOFF, sOUT
- };
- enum rezim
- {
- /*
- Rezimi rada televizora:
- rTV: Normalan rezim rada TV-a.
- rDVD: TV radi u rezimu DVD-a, odnosno trenutno se gleda neki DVD film (uuuu akcija)
- rTXT: Teletekst
- rHDMI: TV je prebacen na HDMI rezim rada!
- */
- rTV, rDVD, rTXT, rHDMI
- };
- class Tv
- {
- private:
- stanje state;
- rezim mode;
- int kanal;
- public:
- // Konstruktori:
- Tv();
- Tv(const Tv&);
- // Metode:
- stanje getStanje() const;
- rezim getRezim() const;
- int getKanal() const;
- string getImeKanala() const;
- bool turnOn();
- bool turnOff();
- bool turnOut();
- bool repair();
- bool incK();
- bool decK();
- };
- #endif // TV_HPP_INCLUDED
- // TV.CPP
- #include "tv.hpp"
- Tv :: Tv()
- {
- state = sOFF;
- mode = rTV;
- kanal = MINKANAL;
- }
- Tv :: Tv(Tv const &rt)
- {
- state = rt.state;
- mode = rt.mode;
- kanal = rt.kanal;
- }
- stanje Tv :: getStanje() const
- {
- return state;
- }
- rezim Tv :: getRezim() const
- {
- return mode;
- }
- int Tv :: getKanal() const
- {
- return kanal;
- }
- bool Tv :: turnOn()
- {
- if (state == sOFF)
- {
- state = sON;
- return true;
- }
- else
- return false;
- }
- bool Tv :: turnOff()
- {
- if (state == sON)
- {
- state = sOFF;
- return true;
- }
- else
- return false;
- }
- bool Tv :: turnOut()
- {
- if (state != sOUT)
- {
- state = sOUT;
- return true;
- }
- else
- return false;
- }
- bool Tv :: repair()
- {
- if (state == sOUT)
- {
- state = sOFF;
- mode = rTV;
- kanal = MINKANAL;
- return true;
- }
- else
- return false;
- }
- bool Tv :: incK()
- {
- // 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
- if (mode == rTV && state == sON && kanal + PK <= MAXKANAL)
- {
- kanal += PK;
- return true;
- }
- else
- return false;
- }
- bool Tv :: decK()
- {
- if (mode == rTV && state == sON && kanal - PK >= MINKANAL)
- {
- kanal -= PK;
- return true;
- }
- else
- return false;
- }
- // MAIN.CPP
- #include "tv.hpp"
- void printTV(Tv const &rt)
- {
- string Programi[] =
- {
- "RTRS",
- "RTL",
- "Pink",
- "Nova TV",
- "Hepi",
- "Fox",
- "Discovery",
- "FoxCrime",
- "TV1000",
- "SciFi",
- "HRT"
- };
- cout << "TV je: ";
- switch(rt.getStanje())
- {
- case sON:
- cout << "ON!" << endl;
- break;
- case sOFF:
- cout << "OFF!" << endl;
- break;
- case sOUT:
- cout << "OUT!" << endl;
- break;
- default:
- cout << "N/A" << endl;
- }
- cout << "Rezim rada TV-a je: ";
- switch(rt.getRezim())
- {
- case rTV:
- cout << "Normalan (TV)!" << endl;
- break;
- case rDVD:
- cout << "DVD!" << endl;
- break;
- case rTXT:
- cout << "Teletekst!" << endl;
- break;
- case rHDMI:
- cout << "HDMI!" << endl;
- break;
- default:
- cout << "N/A!" << endl;
- }
- cout << "Broj kanala je: " << rt.getKanal() << endl;
- cout << "Ime kanala: " << Programi[rt.getKanal()] << endl;
- cout << endl;
- }
- char meni()
- {
- char odg;
- do
- {
- cout << "Izaberite opciju:" << endl;
- cout << "1. Ukljuci TV" << endl;
- cout << "2. Iskljuci TV" << endl;
- cout << "3. Pokvari TV" << endl;
- cout << "4. Popravi TV" << endl;
- cout << "5. Prebaci kanal gore" << endl;
- cout << "6. Prebaci kanal dole" << endl;
- cout << "7. Kraj rada" << endl;
- cin >> odg;
- }
- while (odg < '1' || odg > '7');
- return odg;
- }
- int main()
- {
- Tv t;
- char ch;
- do
- {
- ch = meni();
- switch(ch)
- {
- case '1':
- if (t.turnOn())
- cout << "Operacija izvrsena!" << endl;
- else
- cout << "Operacija nije izvrsena!" << endl;
- printTV(t);
- break;
- case '2':
- if (t.turnOff())
- cout << "Operacija izvrsena!" << endl;
- else
- cout << "Operacija nije izvrsena!" << endl;
- printTV(t);
- break;
- case '3':
- if (t.turnOut())
- cout << "Operacija izvrsena!" << endl;
- else
- cout << "Operacija nije izvrsena!" << endl;
- printTV(t);
- break;
- case '4':
- if (t.repair())
- cout << "Operacija izvrsena!" << endl;
- else
- cout << "Operacija nije izvrsena!" << endl;
- printTV(t);
- break;
- case '5':
- if (t.incK())
- cout << "Operacija izvrsena!" << endl;
- else
- cout << "Operacija nije izvrsena!" << endl;
- printTV(t);
- break;
- case '6':
- if (t.decK())
- cout << "Operacija izvrsena!" << endl;
- else
- cout << "Operacija nije izvrsena!" << endl;
- printTV(t);
- break;
- }
- }
- while (ch != '7');
- return 0;
- }
- // END
Advertisement
Add Comment
Please, Sign In to add comment