7.1 (C++)

Design a class named Triangle that extends class GeometricObject, which is given below. The class contains:
Three double data field named side1, side2, and side3 with default values 1.0 to denote three sides of the triangle.
A no-arg constructor that creates a default triangle (side1=side2=side3=1.0).
A constructor that creates a triangle with the specified side1, side2, and side3.
The accessor functions for all three data fields.
A function named getArea() that returns the area of this triangle.
A function named getPerimeter() that returns the perimeter of the triangle.
Hint: For an triangle with sides of lengths a, b, and c, respectively:
s = (a + b + c) / 2;
area = sqrt(s (s - a) (s - b) * (s - c));

EXMAPLE INPUT:
1 1.5 1 yellow
EXMAPLE OUTPUT:
triangle.getColor() = yellow
triangle.getSide1() = 1
triangle.getSide2() = 1.5
triangle.getSide3() = 1
triangle.getArea() = 0.496078
triangle.getPerimeter() = 3.5
主程序 (不能修改)

#include <string>
using namespace std;

class GeometricObject
{
private:
    string color;
    
public:
    GeometricObject() {
        color = "black";
    }
    
    string getColor() {
        return color;
    }
    
    void setColor(string color2) {
        color = color2;
    }
    
    string toString() {
        return "GeometricObject color=" + color;
    }
    
};

#include "source.cpp"

#include <iostream>

int main() {
    double side1;
    double side2;
    double side3;
    cin >> side1;
    cin >> side2;
    cin >> side3;
    
    string color;
    cin >> color;
    
    Triangle triangle(side1, side2, side3);
    // cout << "sizeof(Triangle) = " << sizeof(Triangle) << endl;
    triangle.setColor(color);
    
    cout << "triangle.getColor() = " << triangle.getColor() << endl;
    cout << "triangle.getSide1() = " << triangle.getSide1() << endl;
    cout << "triangle.getSide2() = " << triangle.getSide2() << endl;
    cout << "triangle.getSide3() = " << triangle.getSide3() << endl;
    cout << "triangle.getArea() = " << triangle.getArea() << endl;
    cout << "triangle.getPerimeter() = " << triangle.getPerimeter() << endl;
    
}

我的答案

#include <cmath>
class Triangle : public GeometricObject{
    private:
    double side1;
    double side2;
    double side3;
    public:
    Triangle(double s1,double s2,double s3){
        this->side1=s1;
        this->side2=s2;
        this->side3=s3;
    }
    Triangle(){
        this->side1=1;
        this->side2=1;
        this->side3=1;
    }
    double getSide1(){
        return side1;
    }
    double getSide2(){
        return side2;
    }
    double getSide3(){
        return side3;
    }
    double getPerimeter(){
        return side1+side2+side3;
    }
    double getArea(){
        double s=(side1+side2+side3)/2;
        return sqrt(s * (s - side1) * (s - side2) * (s - side3));
    }
};
上一篇: 8.1 (C++) 下一篇: 7.3 (C++)
支持 makedown语法