求图形面积

请用多态机制,编写一个程序计算三角形、矩形、圆形这三种图形的面积
设计一个图形(shape)类,类中有数据成员x、y,成员函数有构造函数、求面积函数及输出函数,后两个函数定义为纯虚函数。
由shape类派生出三角形类、矩形类和圆形类。,为矩形的长和宽,
在三角形类中x、y分别为三角形的底和高,定义求三角形面积函数及输出函数的具体实现。
在矩形类中x、y分别为三角形的长和宽,定义求矩形面积函数及输出函数的具体实现。
在圆形类中x为圆的半径,定义求圆面积函数及输出函数的具体实现(pai=3.14)。
输入x,y的值,输出各图形面积值。
输入:10 10
输出:
triangleArea=50
rectangleArea=100
circleArea=314

#include <iostream>

using namespace std;

const double pi = 3.14;

class Shape {
public:
	Shape(){}
	Shape(double x,double y)
		:m_x(x),m_y(y)
		{}
	virtual double Area(void) = 0;
	virtual void OutPut(void) = 0;
protected:
	double m_x;
	double m_y;
};

class Triangle :public Shape {
public:
	Triangle(double x,double y)
		:Shape(x,y)
		{}
	double Area(void) {
		return 0.5*m_x*m_y;
	}
	void OutPut(void) {
		cout << "triangleArea=" << Area() << endl;
	}
};

class Rectangle :public Shape {
public:
	Rectangle(double x, double y)
		:Shape(x, y)
	{}
	double Area(void) {
		return m_x * m_y;
	}
	void OutPut(void) {
		cout << "rectangleArea=" << Area() << endl;
	}
};

class Circle :public Shape {
public:
	Circle(double x)
		:Shape(x,0)
		{}
	double Area(void) {
		return pi * m_x*m_x;
	}
	void OutPut(void) {
		cout << "circleArea=" << Area() << endl;
	}
};

int main() {
	double x, y;
	cin >> x >> y;
	Triangle t(x, y);
	Rectangle r(x, y);
	Circle c(x);
	t.OutPut();
	r.OutPut();
	c.OutPut();
	return 0;
}
发布了63 篇原创文章 · 获赞 23 · 访问量 1445
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 创作都市 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览