Advertisement
nex036ara

Klima(states)

Nov 7th, 2011
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.01 KB | None | 0 0
  1. #ifndef KLIMA_DEF
  2. #define KLIMA_DEF
  3. #define STEP_CHANGE 1
  4. #define MAX_WARM 30
  5. #define MIN_WARM 10
  6. #define MAX_FREEZ 8
  7. #define MIN_FREEZ -10
  8.  
  9. enum States {sON, sOFF};
  10. enum Functions {fHOT, fFREEZ, fNONE};
  11.  
  12. #include <iostream>
  13. using namespace std;
  14.  
  15. class Klima{
  16.     private:
  17.         States state;
  18.         Functions function;
  19.         double hotLevel;
  20.         double freezLevel;
  21.     public:
  22.         Klima();
  23.         States getState()const;
  24.         Functions getFunction()const;
  25.         double getHotLevel()const;
  26.         double getFreezLevel()const;
  27.         bool changeFunction();
  28.         bool incFreez();
  29.         bool decFreez();
  30.         bool incHot();
  31.         bool decHot();
  32.         bool turnOn();
  33.         bool turnOff();
  34. };
  35. #endif
  36.  
  37.  
  38. #include "klima.hpp"
  39.  
  40.  
  41. Klima:: Klima(){
  42. state = sOFF;
  43. function = fNONE;
  44. freezLevel = 0;
  45. hotLevel = 0;
  46.     }
  47. bool Klima:: changeFunction(){
  48. if(state ==sON) {
  49. switch(function){
  50.     case fNONE: function = fHOT; break;
  51.     case fHOT: function = fFREEZ; break;
  52.     case fFREEZ: function = fHOT; break;
  53.  
  54.  
  55. }return true;
  56.     } else return false;
  57. }
  58.  
  59. States Klima:: getState()const{
  60.     return state;
  61.  
  62. }
  63.  
  64. Functions Klima:: getFunction()const{
  65. return function;
  66. }
  67. double Klima:: getHotLevel()const{
  68.     return hotLevel;
  69. }
  70. double Klima:: getFreezLevel()const{
  71. return freezLevel;
  72. }
  73.  
  74. bool Klima:: incFreez(){
  75.     if(state==sON && function==fFREEZ && freezLevel+STEP_CHANGE<=MAX_FREEZ)
  76.     {
  77.         freezLevel+=STEP_CHANGE;
  78.         return true;
  79.     }else return false;
  80. }
  81. bool Klima:: decFreez(){
  82.     if(state==sON && function==fFREEZ && freezLevel-STEP_CHANGE>=MIN_FREEZ)
  83.         {
  84.             freezLevel-=STEP_CHANGE;
  85.             return true;
  86.         }else return false;
  87. }
  88. bool Klima::incHot(){
  89.     if(state==sON && function==fHOT && hotLevel+STEP_CHANGE<=MAX_WARM)
  90.         {
  91.             hotLevel+=STEP_CHANGE;
  92.             return true;
  93.         }else return false;
  94. }
  95. bool Klima:: decHot(){
  96.         if(state==sON && function==fHOT && hotLevel-STEP_CHANGE>=MIN_WARM)
  97.             {
  98.                 hotLevel-=STEP_CHANGE;
  99.                 return true;
  100.             }else return false;
  101. }
  102.  
  103. bool Klima:: turnOn(){
  104.         if(state==sOFF)
  105.         {
  106.             state = sON;
  107.             return true;
  108.         }else return false;
  109.  
  110. }
  111. bool Klima:: turnOff(){
  112.     if(state==sON)
  113.     {
  114.         state = sOFF;
  115.  
  116.         return true;
  117.  
  118.     }else return false;
  119.  
  120.  
  121. }
  122.  
  123.  
  124.  
  125.  
  126. #include "klima.hpp"
  127.  
  128.  
  129. void printResult(const Klima &ref) {
  130.     cout<<"Stanje klime:";
  131.         switch(ref.getState()){
  132.  
  133.         case sON: cout<< "ON" <<endl; break;
  134.         case sOFF: cout<< "OFF" <<endl; break;
  135.         }
  136.     cout<< "Funkcija klime:";
  137.         switch(ref.getFunction()) {
  138.  
  139.         case fNONE:
  140.         cout<<"SLOBODNI REZIM"<< endl;
  141.         cout<<"Nivo topline:"<<ref.getFreezLevel()<<endl;
  142.         break;
  143.  
  144.         case fFREEZ:
  145.         cout<< "HLADJENJE" <<endl;
  146.         cout<<"Nivo topline:"<<ref.getFreezLevel()<<endl;
  147.         break;
  148.  
  149.         case fHOT:
  150.         cout << "GREJANJE" <<endl;
  151.         cout<<"Nivo topline:"<<ref.getHotLevel()<<endl;
  152.         break;
  153.         }
  154.  
  155.  
  156.  
  157.  
  158. }
  159.  
  160.  
  161. char meni(){
  162.  
  163.         char odgovor;
  164.         do{
  165.         cout<< "\n1:ukljuci" <<endl;
  166.         cout << "2:iskljuci" <<endl;
  167.         cout<< "3:promeni funkciju" <<endl;
  168.         cout << "4:++grejanje" <<endl;
  169.         cout<< "5:--grejanje" <<endl;
  170.         cout << "6:++hladjenje" <<endl;
  171.         cout<< "7:--hladjenje" <<endl;
  172.         cout << "8:odustani" <<endl;
  173.         cin>>odgovor;
  174.         }while (odgovor<'1' || odgovor>'8');
  175.      return odgovor;
  176. }
  177.  
  178.  
  179.  
  180. int main(){
  181.     Klima kl;
  182.     char izbor;
  183.         do{
  184.         izbor = meni();
  185.         switch(izbor){
  186.  
  187.         case '1':
  188.         if(kl.turnOn())
  189.         {
  190.             cout<<"uspesno"<<endl;
  191.         } else cout <<"neuspesno"<<endl;
  192.         printResult(kl);
  193.         break;
  194.  
  195.         case '2':
  196.         if(kl.turnOff())
  197.         {
  198.             cout<<"uspesno"<<endl;
  199.         }else  cout <<"neuspesno"<<endl;
  200.         printResult(kl);
  201.         break;
  202.  
  203.         case '3':
  204.         if(kl.changeFunction())
  205.         {
  206.             cout<<"uspesno"<<endl;
  207.         } else cout <<"neuspesno"<<endl;
  208.         printResult(kl);
  209.         break;
  210.  
  211.  
  212.         case '4':
  213.         if(kl.incHot())
  214.         {
  215.             cout<<"uspesno"<<endl;
  216.         } else cout <<"neuspesno"<<endl;
  217.         printResult(kl);
  218.         break;
  219.  
  220.  
  221.         case '5':
  222.         if(kl.decHot())
  223.         {
  224.             cout<<"uspesno"<<endl;
  225.         }else  cout <<"neuspesno"<<endl;
  226.         printResult(kl);
  227.         break;
  228.  
  229.         case '6':
  230.         if(kl.incFreez())
  231.         {
  232.             cout<<"uspesno"<<endl;
  233.         }else  cout <<"neuspesno"<<endl;
  234.         printResult(kl);
  235.         break;
  236.  
  237.         case '7':
  238.         if(kl.decFreez())
  239.         {
  240.             cout<<"uspesno"<<endl;
  241.         } else cout <<"neuspesno"<<endl;
  242.         printResult(kl);
  243.         break;
  244.  
  245.  
  246.  
  247.         }
  248.  
  249.  
  250.         }while (izbor!='8');
  251.  
  252.  
  253. return 0;
  254. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement