powrót
//Ćwiczenie 1
#include<iostream>
using namespace std;
class pociag{
public:
pociag(int wagony, int miejsca) //konstruktor
{
w = wagony;
m = miejsca;
aktualnie = 0; //na początku pociąg jest pusty
}
bool wsiadanie(int ile)
{
if(aktualnie + ile > w*m) //gdy będzie przepełnienie pociągu
return 0;
aktualnie+=ile;
return 1; //gdy wszystko jest ok
}
bool wysiadanie(int ile)
{
if(ile > aktualnie) //gdy więcje osób chce wysiąsć niż jest w pociągu
return 0;
aktualnie-=ile;
return 1; //gdy wszystko jest ok
}
void dolacz(int wagony)
{
w+=wagony;
}
bool odlacz(int wagony)
{
int wolne_miejsca = w*m - aktualnie;
//jesli jest za mało miejsca dla osób,
//które siedzą w odłaczanych wagonach
if(wagony*m > wolne_miejsca)
return 0;
w-=wagony;
return 1; //gdy wszystko jest ok
}
void stan()
{
cout<<"Pociąg ma "<<w<<" wagony/wagonów\n";
cout<<"W pociągu jest "<<aktualnie<<" osób\n";
}
private:
int w, m; //wagony, miejsca
int aktualnie; //aktualna liczba osób w pociągu
};
using namespace std;
int main()
{
pociag ciuchcia(3, 10); //stworzenie obiektu ciuchcia
//składająca się z 3 wagonów
//i 10 miejsc w każdym z nich
if(!ciuchcia.wsiadanie(20))
cout<<"Przepełnienie pociągu\n";
ciuchcia.stan();
if(!ciuchcia.wsiadanie(5))
cout<<"Przepełnienie pociągu\n";
ciuchcia.stan();
if(!ciuchcia.wsiadanie(20)) //tu będzie już przepełnienie
cout<<"Przepełnienie pociągu\n";
ciuchcia.stan();
if(!ciuchcia.wysiadanie(8))
cout<<"Nie ma tyle osób w pociągu\n";
ciuchcia.stan();
if(!ciuchcia.wysiadanie(20)) //chce więcej wysiąsć niż jest w pociągu
cout<<"Nie ma tyle osób w pociągu\n";
ciuchcia.stan();
ciuchcia.dolacz(3); //dolaczenie trzech wagonów
ciuchcia.stan();
if(!ciuchcia.wsiadanie(20))
cout<<"Przepełnienie pociągu\n";
ciuchcia.stan();
if(!ciuchcia.odlacz(1))
cout<<"Nie można odłączyć, bo jest za dużo osób w pociągu\n";
ciuchcia.stan();
;
return 0;
}
//Ćwiczenie 2
#include<iostream>
using namespace std;
class segregacja_smieci{
public:
segregacja_smieci(int pl, int sz, int pa)
{
plastik = pl;
szklo = sz;
papier = pa;
a_pl = a_s = a_pa = 0;
}
void oproznij_szklo(){a_s = 0;}
void oproznij_plastik(){a_pl = 0;}
void oproznij_papier(){a_pa = 0;}
bool wrzuc_szklo(int ile)
{
if(ile+a_s > szklo) //jesli się nie zmiesci
return 0;
a_s+=ile;
return 1; //gdy się zmiesci
}
bool wrzuc_plastik(int ile)
{
if(ile+a_pl > plastik) //jesli się nie zmiesci
return 0;
a_pl+=ile;
return 1; //gdy się zmiesci
}
bool wrzuc_papier(int ile)
{
if(ile+a_pa > papier) //jesli się nie zmiesci
return 0;
a_pa+=ile;
return 1; //gdy się zmiesci
}
void stan()
{
cout<<"Pojemnik ze szkłem\nPojemnosc: "<<szklo
<<"\nW pojemniku jest "<<a_s<<" szkla\n";
cout<<"Pojemnik z plastikiem\nPojemnosc: "<<plastik
<<"\nW pojemniku jest "<<a_pl<<" plastiku\n";
cout<<"Pojemnik z papierem\nPojemnosc: "<<papier
<<"\nW pojemniku jest "<<a_pa<<" papieru\n";
}
private:
int plastik, szklo, papier;
int a_pl, a_s, a_pa; //aktualnie plastik, szkło, papier
};
int main()
{
segregacja_smieci smieci(5, 6, 7); //stworzenie obiektu smieci
smieci.stan();
if(!smieci.wrzuc_szklo(5))
cout<<"Kosz ze szkłem przepełniony\n";
smieci.stan();
if(!smieci.wrzuc_szklo(3))
cout<<"Kosz ze szkłem przepełniony\n"; //przepełnienie kosza
smieci.stan();
smieci.oproznij_szklo();
smieci.stan();
return 0;
}