- #include <iostream>
- using namespace std;
- class punkt
- {
- double _x,_y,_z;
- public:
- punkt(): _x(0),_y(0),_z(0){}
- punkt(double x,double y,double z): _x(x),_y(y),_z(z){}
- const double& x()const{return _x;}
- double &x(){return _x;}
- const double& y()const{return _y;}
- double &y(){return _y;}
- const double& z()const{return _z;}
- double &z(){return _z;}
- };
- class prostokat
- {
- double _a,_b;
- punkt _p;
- public:
- prostokat():_a(0),_b(0) {}
- prostokat(double x,double y,double z,double a,double b):_p(x,y,z),_a(a),_b(b){}
- prostokat(const punkt& p,double a,double b): _p(p),_a(a),_b(b){}
- const double& x()const{return _p.x();}
- double& x(){return _p.x();}
- const double& y()const{return _p.y();}
- double& y(){return _p.y();}
- const double& z()const{return _p.z();}
- double& z(){return _p.z();}
- const double& a()const{return _a;}
- double& a(){return _a;}
- const double& b()const{return _b;}
- double& b(){return _b;}
- double pole()const {return _a*_b;}
- };
- class graniastoslup
- {
- prostokat _p;
- double _h;
- public:
- graniastoslup(): _h(0){}
- graniastoslup(double x,double y,double z,double a,double b,double h): _p(x,y,z,a,b),_h(h){}
- graniastoslup(const punkt& p,double a,double b,double h): _p(p,a,b),_h(h){}
- graniastoslup(const prostokat& p,double h): _p(p),_h(h){}
- const double& x()const{return _p.x();}
- double& x(){return _p.x();}
- const double& y()const{return _p.y();}
- double& y(){return _p.y();}
- const double& z()const{return _p.z();}
- double& z(){return _p.z();}
- const double& a()const{return _p.a();}
- double& a(){return _p.a();}
- const double& b()const{return _p.b();}
- double& b(){return _p.b();}
- const double& h()const{return _h;}
- double& h(){return _h;}
- double objetosc()const{return _p.pole()*_h;}
- };
- int main()
- {
- punkt p1, p2(1,2,3);
- const punkt p3(1.1,2.2,3.3);
- // kod sprawdzajacy punkt
- cout << p3.x() << '\t' << p3.y() << '\t' << p3.z() << endl;
- p1.x()=1; p1.y()=10; p1.z()=100;
- cout << p1.x() << '\t' << p1.y() << '\t' << p1.z() << endl;
- //kod sprawdzajacy prostokat
- prostokat pr1, pr2(1,2,3,10.5, 20.5);
- const prostokat pr3(p2,5,5);
- cout << pr3.x() << '\t' << pr3.y() << '\t' << pr3.z() << '\n'
- << pr3.a() << '\t' << pr3.b()<< '\n'
- << pr3.pole() << endl;
- pr1.x()=2; pr1.y()=20; pr1.z()=200; pr1.a()= 10; pr1.b()=10;
- cout << pr1.x() << '\t' << pr1.y() << '\t' << pr1.z() << '\n'
- << pr1.a() << '\t' << pr1.b()<< '\n'
- << pr1.pole() << endl;
- //kod sprawdzajacy graniastoslup
- graniastoslup g1, g2(1,2,3,10.5,20.5,30.5), g3(p2,100,200,300);
- const graniastoslup g4(pr3,5);
- cout << g4.x() << '\t' << g4.y() << '\t' << g4.z() << '\n'
- << g4.a() << '\t' << g4.b() << '\t' << g4.h() << '\n'
- << g4.objetosc() << endl;
- g1.a()=10; g1.b()=10; g1.h()=10;
- cout << g1.x() << '\t' << g1.y() << '\t' << g1.z() << '\n'
- << g1.a() << '\t' << g1.b() << '\t' << g1.h() << '\n'
- << g1.objetosc() << endl;
- return 0;
- }