Zadanie ( program )
Funkcja main() i wyniki jej wykonania (podane w komentarzu) opisują warunki wprowadzenia kulistej perły do wnętrza cylindrycznego pudełka. Przeprowadz analizę działanie programu
wykonaj rysunek poglądowy z opisem parametrów dla klas istniejących obiektów 1
a następnie zdefiniuj:
a) klasy z prywatnymi polami składowymi i publicznymi konstruktorami 1
b) metodę MniejRozm 2
c) zaprzyjaźnioną metodę Pisz 2
d) przeciazony operator w klasie Perla > porównujacy wymiary dwoch pereł 2
e) globalny operator << opisujący wymiary pereł. 2
int main() { suma max 10 pkt
Cylinder Pudelko1(110,40), Pudelko2(10,20);
Perla PerlaD("meza ",53), PerlaM("syna ",10);
cout << " mniejszy rozmiar " <<
Pudelko1.MniejRozm( ) <<"\n"; // Mniejszy rozmiar 40
Pudelko1.Pisz( PerlaD ); // Od meza nie zmieści sie
Pudelko1.Pisz( PerlaM ); // Od syna zmiesci sie
cout << ( PerlaD > PerlaM ? " Tak " :" Nie ") ; // Tak
cout << PerlaD << PerlaM ; // r = 53 r = 10;
return 0;
}
// Przykładowy fragment rozwiązania :
class Perla;
class Cylinder
{
double r, h;
public:
Cylinder( double _r = 0,double _h = 0);
double MniejRozm();
void Pisz(Perla & ps);
};
Cylinder::Cylinder( double _r,double _h):
r(_r),h(_h) {};
double Cylinder::MniejRozm() {
return r < h ? r : h ;
}; // ======================================================
class Perla
{
double r;
char nazwa[30];
public:
Perla(char *, double);
friend void Cylinder::Pisz(Perla &);
friend ostream & operator<<(ostream&, Perla & );
int operator >(Perla & p) {
return r > p.r ;
}
};
Perla:: Perla(char * _nazwa, double _r=0): r(_r){
strcpy(nazwa,_nazwa);
};
ostream & operator << ( ostream& s, Perla &p ) {
s << "r = " << p.r << ",\t";
return s ;
}
void Cylinder::Pisz(Perla & ps)
{
cout << "Od " << ps.nazwa;
if( ps.r > MniejRozm()) cout << " nie ";
cout << "zmieści się\n";
} // ======================================================
r
h
r
Cylinder Perla