C++ Logo
C++二级在线二级在线
首页选择题程序题成为会员帮助其他科目

图形解码

请修改编辑器中的代码,完成以下功能:程序中包含一个抽象类 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;
}

控制台

调试终端

准备就绪