Total Submissions: 250 Accepted: 170 Creator: szmtczg
Problem Description
计算图形面积
(1)定义类Shape(形状)、Circle(圆)、Rectangle(长方形)、Square(正方形)。
Shape是抽象基类,Circle、Rectangle、Square是它的派生类
(2)分别计算1个半径为1.5的圆、1个长为2.8,宽为4.5的长方形、1个边长为3.6的正方形的面积,并把它们显示在屏幕上。
完善以下程序
//你的代码写在这里
int main()
{
Shape* ps;
Circle c1(1.5);
ps = &c1;
cout << “圆的面积为:” << ps->Area() << endl;
Rectangle r1(2.8, 4.5);
ps = &r1;
cout << “长方形的面积为:” << ps->Area() << endl;
Square s1(3.6);
ps = &s1;
cout << “正方形的面积为:” << ps->Area() << endl;
return 0;
}
Sample Output
圆的面积为:7.065
长方形的面积为:12.6
正方形的面积为:12.96
#includeusing namespace std; const double PI = 3.14; class Shape { public: virtual double Area() = 0; }; class Circle : public Shape { public: double r; Circle(double a) { r = a; } double Area() { return PI * r * r; } }; class Rectangle :public Shape { public: double x, y; Rectangle(double a,double b) { x = a; y = b; } double Area() { return x * y; } }; class Square :public Shape { public: double x; Square(double a) { x = a; } double Area() { return x * x; } }; int main() { Shape* ps; Circle c1(1.5); ps = &c1; cout << "圆的面积为:" << ps->Area() << endl; Rectangle r1(2.8, 4.5); ps = &r1; cout << "长方形的面积为:" << ps->Area() << endl; Square s1(3.6); ps = &s1; cout << "正方形的面积为:" << ps->Area() << endl; return 0; }



