Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef KLIMA_DEF
- #define KLIMA_DEF
- #define STEP_CHANGE 1
- #define MAX_WARM 30
- #define MIN_WARM 10
- #define MAX_FREEZ 8
- #define MIN_FREEZ -10
- enum States {sON, sOFF};
- enum Functions {fHOT, fFREEZ, fNONE};
- #include <iostream>
- using namespace std;
- class Klima{
- private:
- States state;
- Functions function;
- double hotLevel;
- double freezLevel;
- public:
- Klima();
- States getState()const;
- Functions getFunction()const;
- double getHotLevel()const;
- double getFreezLevel()const;
- bool changeFunction();
- bool incFreez();
- bool decFreez();
- bool incHot();
- bool decHot();
- bool turnOn();
- bool turnOff();
- };
- #endif
- #include "klima.hpp"
- Klima:: Klima(){
- state = sOFF;
- function = fNONE;
- freezLevel = 0;
- hotLevel = 0;
- }
- bool Klima:: changeFunction(){
- if(state ==sON) {
- switch(function){
- case fNONE: function = fHOT; break;
- case fHOT: function = fFREEZ; break;
- case fFREEZ: function = fHOT; break;
- }return true;
- } else return false;
- }
- States Klima:: getState()const{
- return state;
- }
- Functions Klima:: getFunction()const{
- return function;
- }
- double Klima:: getHotLevel()const{
- return hotLevel;
- }
- double Klima:: getFreezLevel()const{
- return freezLevel;
- }
- bool Klima:: incFreez(){
- if(state==sON && function==fFREEZ && freezLevel+STEP_CHANGE<=MAX_FREEZ)
- {
- freezLevel+=STEP_CHANGE;
- return true;
- }else return false;
- }
- bool Klima:: decFreez(){
- if(state==sON && function==fFREEZ && freezLevel-STEP_CHANGE>=MIN_FREEZ)
- {
- freezLevel-=STEP_CHANGE;
- return true;
- }else return false;
- }
- bool Klima::incHot(){
- if(state==sON && function==fHOT && hotLevel+STEP_CHANGE<=MAX_WARM)
- {
- hotLevel+=STEP_CHANGE;
- return true;
- }else return false;
- }
- bool Klima:: decHot(){
- if(state==sON && function==fHOT && hotLevel-STEP_CHANGE>=MIN_WARM)
- {
- hotLevel-=STEP_CHANGE;
- return true;
- }else return false;
- }
- bool Klima:: turnOn(){
- if(state==sOFF)
- {
- state = sON;
- return true;
- }else return false;
- }
- bool Klima:: turnOff(){
- if(state==sON)
- {
- state = sOFF;
- return true;
- }else return false;
- }
- #include "klima.hpp"
- void printResult(const Klima &ref) {
- cout<<"Stanje klime:";
- switch(ref.getState()){
- case sON: cout<< "ON" <<endl; break;
- case sOFF: cout<< "OFF" <<endl; break;
- }
- cout<< "Funkcija klime:";
- switch(ref.getFunction()) {
- case fNONE:
- cout<<"SLOBODNI REZIM"<< endl;
- cout<<"Nivo topline:"<<ref.getFreezLevel()<<endl;
- break;
- case fFREEZ:
- cout<< "HLADJENJE" <<endl;
- cout<<"Nivo topline:"<<ref.getFreezLevel()<<endl;
- break;
- case fHOT:
- cout << "GREJANJE" <<endl;
- cout<<"Nivo topline:"<<ref.getHotLevel()<<endl;
- break;
- }
- }
- char meni(){
- char odgovor;
- do{
- cout<< "\n1:ukljuci" <<endl;
- cout << "2:iskljuci" <<endl;
- cout<< "3:promeni funkciju" <<endl;
- cout << "4:++grejanje" <<endl;
- cout<< "5:--grejanje" <<endl;
- cout << "6:++hladjenje" <<endl;
- cout<< "7:--hladjenje" <<endl;
- cout << "8:odustani" <<endl;
- cin>>odgovor;
- }while (odgovor<'1' || odgovor>'8');
- return odgovor;
- }
- int main(){
- Klima kl;
- char izbor;
- do{
- izbor = meni();
- switch(izbor){
- case '1':
- if(kl.turnOn())
- {
- cout<<"uspesno"<<endl;
- } else cout <<"neuspesno"<<endl;
- printResult(kl);
- break;
- case '2':
- if(kl.turnOff())
- {
- cout<<"uspesno"<<endl;
- }else cout <<"neuspesno"<<endl;
- printResult(kl);
- break;
- case '3':
- if(kl.changeFunction())
- {
- cout<<"uspesno"<<endl;
- } else cout <<"neuspesno"<<endl;
- printResult(kl);
- break;
- case '4':
- if(kl.incHot())
- {
- cout<<"uspesno"<<endl;
- } else cout <<"neuspesno"<<endl;
- printResult(kl);
- break;
- case '5':
- if(kl.decHot())
- {
- cout<<"uspesno"<<endl;
- }else cout <<"neuspesno"<<endl;
- printResult(kl);
- break;
- case '6':
- if(kl.incFreez())
- {
- cout<<"uspesno"<<endl;
- }else cout <<"neuspesno"<<endl;
- printResult(kl);
- break;
- case '7':
- if(kl.decFreez())
- {
- cout<<"uspesno"<<endl;
- } else cout <<"neuspesno"<<endl;
- printResult(kl);
- break;
- }
- }while (izbor!='8');
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement