d_9_1.cpp

来自「C++应用教程原码,里面包含该书中有十三章内容的代码,详细具体」· C++ 代码 · 共 76 行

CPP
76
字号
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
const double PI=3.1416;
class shape{
public:
	virtual double area()=0;  // 纯虚函数
	double s;
};
class Circle : public shape {
public:
	Circle(double x)
	 :r(x){ }
	double area()
	{ s = PI*r*r;
	  cout << "圆的面积是:"<< s<<endl;
      return s;
	}
private:
	double r;
};
class Triangle : public shape
{  public:
	Triangle(double i,double j)
	 :high(i),width(j){ }
	double area()
	{ s = 0.5*high*width;
	  cout << "三角形的面积是:"<<s<<endl;
	  return s;
	}
private:
	double high,width;
};
class Rectangle:public shape {
public:
	Rectangle(double i,double j)
	 :high(i),width(j){ }
	double area()
	{ s = high*width;
	  cout << "矩形的面积是:"<<s<<endl;
	  return s;
	}
private:
	double high,width;
};
class Trapezoid :public shape{
public:
	Trapezoid(double t,double b,double h)
		:T(t),B(b),H(h)
	{ }
	double area()
	{ s = 0.5*(T+B)*H;
	  cout << "梯形的面积是:"<<s<<endl;
	  return s;
	}
private:
	double T,B,H;
};
void main()
{	double area = 0;
	shape *ptr[4];
	Triangle triangle(8,11);
	Rectangle rectangle(8,11);
	Circle circle(7);
	Trapezoid trapezoid(5,10,6);
	ptr[0] = &triangle;
	ptr[1] = &rectangle;
	ptr[2] = &circle;
	ptr[3] = &trapezoid;
	for (int i=0;i<4;++i)
       area += ptr[i]->area();
    cout<<"各图形面积之和是:"<< area<<endl;
	cin.get(); //等待结束,以便调测程序,可以删除
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?