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

#include <iostream>
using 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;
}

更多推荐