Created
November 1, 2017 13:53
-
-
Save Tzal3x/2585d57b0193851530cab715c6a5ec1e to your computer and use it in GitHub Desktop.
Λύση άσκησης 13.6 απο το Βιβλίο "Η C++ σε βάθος" του Νίκου Μ. Χατζηγιαννάκη
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
using namespace std; | |
class kafetiera{ | |
int kafes,gala,zaxari,nero,kafedes; | |
bool ginetai(int z,int k,int n,int g); | |
unsigned int what=0; // pernei times {1,2,3} , 1=sketos, 2=glykos, 3=metrios me gala. | |
int x=-1; // apothikevei ton arithmo kafedwn (sketwn h glykwn h metriwn me gala) ths prohgoumenhs paraggelias. | |
public: | |
kafetiera(); | |
void status(); | |
void sketos(int ar); | |
void glykos(int ar); | |
void metrios_me_gala(int ar); // ar = arithmos kafedwn | |
float cost(); // h methodos pou zhteitai sthn askhsh 13.6 | |
}; | |
bool kafetiera::ginetai(int z,int k,int n,int g){ | |
if(zaxari>=z && kafes>=k && nero>=n && gala>=g) | |
return true; | |
else | |
return false; | |
} | |
kafetiera::kafetiera(){ | |
nero=1000; | |
kafes=100; | |
gala=300; | |
zaxari=200; | |
kafedes=0; | |
} | |
void kafetiera::status(){ | |
cout<<"Καφές:"<<kafes; | |
cout<<" Γάλα:"<<gala; | |
cout<<" Ζάχαρη:"<<zaxari; | |
cout<<" Νερό:"<<nero<<endl; | |
cout<<"Καφέδες μέχρι τώρα:"<<kafedes<<endl; | |
} | |
void kafetiera::sketos(int ar=1){ | |
if(!ginetai(0,2*ar,50*ar,0)){ | |
cout<<"Δέν υπάρχουν υλικά\n"; | |
return; | |
} | |
nero=nero-50*ar; | |
kafes=kafes-2*ar; | |
kafedes+=ar; | |
if(ar>1){ | |
cout<<"Έτοιμοι οι "<<ar<<" σκέτοι......"<<endl; | |
} else { | |
cout<<"Έτοιμος ο σκέτος ......"<<endl; | |
} | |
what=1; | |
x=ar; | |
} | |
void kafetiera::glykos(int ar=1){ | |
nero-=50*ar; | |
kafes-=2*ar; | |
zaxari-=2*ar; | |
kafedes+=ar; | |
if(ar>1){ | |
cout<<"Έτοιμοι οι "<<ar<<" γλυκοί......"<<endl; | |
} else { | |
cout<<"Έτοιμος ο γλυκός ......"<<endl; | |
} | |
what=2; | |
x=ar; | |
} | |
void kafetiera::metrios_me_gala(int ar=1){ | |
nero-=50*ar; | |
kafes-=2*ar; | |
zaxari-=1*ar; | |
gala-=2*ar; | |
kafedes+=ar; | |
if(ar>1){ | |
cout<<"Έτοιμοι οι "<<ar<<" μέτριοι με γάλα......"<<endl; | |
} else { | |
cout<<"Έτοιμος ο μέτριος με γάλα......"<<endl; | |
} | |
what=3; | |
x=ar; | |
} | |
float kafetiera::cost(){ // Ypologizei th xreosi ths teleutaias paraggelias | |
if(what==0 || x==-1) cout<<"Δεν έχετε κάνει καμία παραγγελία μέχρι στιγμής..."<<endl; | |
float xreosi; | |
switch(what){ | |
case 1: | |
xreosi=(0.01*50+0.05*2)*x; | |
break; | |
case 2: | |
xreosi=(0.01*50+0.05*2+0.1*2)*x; | |
break; | |
case 3: | |
xreosi=(0.01*50+0.05*2+0.1*1+0.2*2)*x; | |
break; | |
} | |
return xreosi; | |
} | |
int main(){ // Dokimazodas to programma: | |
setlocale(LC_ALL,"greek"); | |
kafetiera filips; | |
filips.status(); | |
cout<<"Cost="<<filips.cost()<<"$"<<endl; | |
filips.sketos(1); | |
cout<<"Cost="<<filips.cost()<<"$"<<endl; | |
filips.glykos(4); | |
cout<<"Cost="<<filips.cost()<<"$"<<endl; | |
filips.metrios_me_gala(7); | |
cout<<"Cost="<<filips.cost()<<"$"<<endl; | |
filips.glykos(2); | |
cout<<"Cost="<<filips.cost()<<"$"<<endl; | |
filips.status(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment