图形解码
请修改编辑器中的代码,完成以下功能:程序中包含一个抽象类 Shape 和其派生类 Triangle,分别表示一个抽象图形和一个三角形。您需要在代码中的指定位置补全函数 show(Shape *shape) 的函数头(函数体已经给出),该函数用于输出图形的名称、周长和面积。具体要求如下: 1. 在指定位置补全show函数头,接收一个指向Shape类型的指针参数,并输出该图形的名称、周长和面积。 2. 输出格式为:此图形是一个<图形名称>, 周长=<周长>, 面积=<面积>。 3. 不需要输入,程序直接运行并输出结果。 4. 只能在指定位置填写代码,不能改动程序中的其他部分。 输出示例: 此图形是一个三角形, 周长=6.82843, 面积=2
#include "shape.h"
#include <iostream>
using namespace std;
Triangle::Triangle(Point a, Point b, Point c) : p1(a), p2(b), p3(c) {}
string Triangle::name() {
return "三角形";
}
double Triangle::perimeter() {
return p1.distance(p2) + p2.distance(p3) + p3.distance(p1);
}
double Triangle::area() {
double a = p1.distance(p2);
double b = p2.distance(p3);
double c = p3.distance(p1);
double s = (a + b + c) / 2.0;
return sqrt(s * (s - a) * (s - b) * (s - c));
}
//**********found**********
______________________________ // show函数的函数头(函数体以前的部分)
{
cout<<"此图形是一个" << shape->name()
<< ", 周长="<<shape->perimeter()
<< ", 面积="<<shape->area()<<endl;
}
int main( )
{
Triangle *tri = new Triangle(Point(0,2),Point(2,0),Point(0,0));
show(tri);
return 0;
}控制台
调试终端
