设计一个求各类图形面积的C++程序

[复制链接]
查看11 | 回复0 | 2008-1-7 02:58:17 | 显示全部楼层 |阅读模式
自己慢慢研究。。#include#includeclass Shape { public: virtual double GetArea() const = 0; }; //三角形 class Triangle : public Shape { public: Triangle(double a, double b, double c) : m_a(a), m_b(b), m_c(c) {} double GetArea() const { //海伦公式求面积 const double p = (m_a + m_b + m_c) / 2; return sqrt(p * (p - m_a) * (p - m_b) * (p - m_c)); } private: double m_a, m_b, m_c; }; //圆形 class Circle : public Shape { public: Circle(double r) : m_r(r) {} double GetArea() const { return PI * m_r * m_r; } private: static const double PI; double m_r; }; const double Circle::PI = 3.1415926; //矩形 class Rectangle : public Shape { public: Rectangle(double a, double b) : m_a(a), m_b(b) {} double GetArea() const { return m_a * m_b; } private: double m_a, m_b; }; int main() { Shape* pTriangle = new Triangle(3, 4, 5); printf("The area of Triangle is %lf\n", pTriangle->GetArea()); Shape* pCircle = new Circle(2); printf("The area of Circle is %lf\n", pCircle->GetArea()); Shape* pRectangle = new Rectangle(3, 4); printf("The area of Rectangle is %lf\n", pRectangle->GetArea()); delete pTriangle; delete pCircle; delete pRectangle; return 0; }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行