繁体   English   中英

三角形C ++类

[英]Triangle Class C++

我将不胜感激。 我正在研究一个基于三边输入来评估三角形的类。 但是,我对分析的某些算法相当迷茫。 例如,我感觉我的最大最小类型的三角算法是正确的,但是前两个返回零,并且类型返回等边线是等腰。 最后,我几乎完全失去了对isTriangleisRight。 我知道他们错了,但我不知道要进行哪些调整。 :/

#include "Triangle.h"
#include<iostream>
#include<string>
using namespace std;

Triangle::Triangle()
{
    s1 = 1;
    s2 = 1;
    s3 = 1;
}

Triangle::Triangle(int x)
{
    s1 = x;
    s2 = x;
    s3 = x;
}

Triangle::Triangle(int x, int y, int z)
{
    s1 = x;
    s2 = y;
    s3 = z;
}

void Triangle::setSide1(int x)
{
    s1 = x;
}

void Triangle::setSide2(int x)
{
    s2 = x;
}

void Triangle::setSide3(int x)
{ 
    s3 = x;
}

int Triangle::getSide1()
{
    return s1;
}

int Triangle::getSide2()
{
    return s2;
}

int Triangle::getSide3()
{ 
    return s3;
}

int Triangle::perimeter()
{
    int perim = s1 + s2 + s3;

    return perim;

}

int Triangle::largestSide()
{
    int largest = 0;

    if (s1 >= s2 && s3)
        s1 = largest;
    else if (s2 >= s1 && s3)
        s2 = largest;
    else 
        s3 = largest;

    return largest;

}

int Triangle::smallestSide()
{
    int smallest = 0;

    if (s1 <= s2 && s1 <= 3)
        smallest = s1; 
    else if (s2 <= s1 && s2 <= s3)
        smallest = s2;
    else
        smallest = s3;

    return smallest;
}

bool Triangle::isRight()
{
    if (s3 == s1 + s2 || s2 == s1 + s3 || s1 == s2 + s3)

        return true;
    else
        return false;


}

bool Triangle::isTriangle()
{
    if (s1 + s2 < s3 || s1 + s3 < s2 || s2 + s3 < s1)

        return false;
    else
        return true;

}

string Triangle::typeTriangle()
{

    if (&Triangle::isTriangle == false)
        return "This is not a triangle";
    else if (s1 == s2 == s3)
        return "Equilateral";
    else if ((s1 == s2 && s1 != s3 && s2 != s3) || (s2 == s3 && s2 != s1 && s3 != s1))
    return "Isosceles";
    else if (s1 != s2 && s2 != s3)
        return "Scalene";



}

如果S1 == s2 == s3为真,则并不意味着边相等。

您需要写s1 == s2 && s1 == s3

要看到这一点,请重写为布尔值。 将b1设置为false并且b2不等于b3。

B2 == b3为假,它将与b1比较为真。 哎呀。

当且仅当较长边的平方是较短边的平方之和时,三角形才成直角。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM