Skip to content

Instantly share code, notes, and snippets.

@Tzal3x
Created November 1, 2017 13:53
Show Gist options
  • Save Tzal3x/2585d57b0193851530cab715c6a5ec1e to your computer and use it in GitHub Desktop.
Save Tzal3x/2585d57b0193851530cab715c6a5ec1e to your computer and use it in GitHub Desktop.
Λύση άσκησης 13.6 απο το Βιβλίο "Η C++ σε βάθος" του Νίκου Μ. Χατζηγιαννάκη
#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