c++编程题目,求正确答案,考试题目TVT

2025-03-03 06:07:51
推荐回答(1个)
回答1:

#include 
#define PI 3.14159
using namespace std;
class Point {
protected:
double _x;
double _y;
public:
Point ( double a, double b ): _x(a), _y(b) {}
void set_point( double a, double b ) { _x = a; _y = b; }
friend ostream& operator<< ( ostream& out, const Point& p ) {
out << "Center = ";
out << "[ " << p._x << ", " << p._y << " ]\n";
return out; 
}
};
class Circle : public Point {
protected:
double _r;
public:
Circle ( double a, double b, double c ): Point( a,b ), _r(c) {}
double area() { return (PI * _r * _r); }
void set_radius( double r ) { _r = r; }
friend ostream& operator<< ( ostream& out, Circle& c ) {
out << "Center = ";
out << "[ " << c._x << ", " << c._y << " ]\t";
out << "Raidus = " << c._r << '\n';
out << "Area = ";
out << c.area() << '\n';
return out; 
}
};
class Cylinder : public Circle {
protected:
double _h;
public:
Cylinder ( double a, double b, double c, double d ): Circle( a,b,c ), _h(d) {}
double area() { return (2.0* PI * _r * _h ) + 2.0* Circle::area(); }
double volume() { return (Circle::area() * _h); }
void set_height( double a ) { _h = a; }
friend ostream& operator<< ( ostream& out, Cylinder& c ) {
out << "Center = ";
out << "[ " << c._x << ", " << c._y << " ]\t";
out << "Raidus = " << c._r << '\t';
out << "Height = " << c._h << '\n';
out << "Area = ";
out << c.area() << '\n';
out << "Volume = ";
cout << c.volume() << '\n';
return out; 
}
};
int main(int argc, char *argv[]) {
Cylinder cy1( 3.5,6.4,5.2,10.0 );
cout << cy1 << endl;

cy1.set_height( 15.0 );
cy1.set_point( 5.0,5.0 );
cy1.set_radius( 7.5 );

cout << cy1 << endl;

Point &r_p = cy1;
cout << r_p << endl;
Circle &r_c = cy1;
cout << r_c << endl;
}