首页 新闻 会员 周边 捐助

有没有好心人帮忙解答一下 难到孩子了呜呜呜

0
悬赏园豆:30 [已解决问题] 解决于 2023-05-23 14:11

利用c++
1、设计一个点的类,私有数据成员为点的横坐标和纵坐标,成员函数有:构造函数初始化点的横坐标和纵坐标,拷贝构造函数,返回坐标的get 函数;

设计三角形的类,私有数据成员为三角形的三个顶点,成员函数有:构造函数初始化三个顶点,拷贝构造函数,返回三角形面积的函数(需要判断是否构成三角形),返回周长的函数;

主函数,创建三角形对象,调用类中的函数输出三角形面积、周长

ap。的主页 ap。 | 初学一级 | 园豆:88
提问于:2023-04-25 14:40
< >
分享
最佳答案
0
class Point {
private:
    int x;
    int y;
public:
    // 构造函数
    Point(int xCoord = 0, int yCoord = 0) {
        x = xCoord;
        y = yCoord;
    }

    // 拷贝构造函数
    Point(const Point& p) {
        x = p.x;
        y = p.y;
    }

    // 获取横坐标
    int getX() const {
        return x;
    }

    // 获取纵坐标
    int getY() const {
        return y;
    }
};

你已经把要设计的类描述的很清楚了,建议参照例子琢磨一下三角形的加深印象

获取边长:sqrt((x1 - x2)^2 + (y1-y2)^2) // 搜欧几里得距离
判断是否构成三角形:两边之和大于第三边
求面积:由边长计算面积 //搜海伦公式

收获园豆:30
复制粘贴机器人 | 小虾三级 |园豆:720 | 2023-04-25 15:59

谢谢谢谢

ap。 | 园豆:88 (初学一级) | 2023-04-25 16:04
其他回答(3)
0

自己研究下。或者。放弃。
研究出来了,你将获得 生命的升华,思维会更加敏捷,也会更加自信。
加油。

快乐的欧阳天美1114 | 园豆:4004 (老鸟四级) | 2023-04-25 14:43
0

这玩意多上机打打代码那天就悟了,多敲代码才行。

下面是自动生成的demo,参考下自己多敲多测试

下面是一个 Python 代码示例,实现了一个点和三角形类,并实现了构造函数、拷贝构造函数和方法,以及主函数。

python
class Point:
def init(self, x, y):
self.x = x
self.y = y

def get_coordinate(self):  
    return self.x, self.y  

class Triangle:
def init(self, p1, p2, p3):
self.p1 = p1
self.p2 = p2
self.p3 = p3

def get_area(self):  
    s = (self.p1[0] - self.p2[0]) * (self.p2[1] - self.p3[1])  
    area = (s[0] + s[1]) * (s[0] + s[1] + s[2]) / 2  
    return area  

def get_perimeter(self):  
    return self.p1[0] + self.p2[0] + self.p3[0]  

def main():
# 创建点对象
point1 = Point(1, 1)
print("点的坐标为:({}, {})".format(point1.get_coordinate()))

# 创建三角形对象  
triangle1 = Triangle(point1, Point(2, 2), Point(4, 4))  
print("三角形的面积为:{}".format(triangle1.get_area()))  
print("三角形的周长为:{}".format(triangle1.get_perimeter()))  

# 创建三角形对象  
triangle2 = Triangle(Point(0, 0), Point(0, 1), Point(0, 2))  
print("三角形的面积为:{}".format(triangle2.get_area()))  
print("三角形的周长为:{}".format(triangle2.get_perimeter()))  

if name == "main":
main()
在上面的代码中,我们定义了一个点类 Point,它包含两个坐标 x 和 y。我们还定义了一个三角形类 Triangle,它包含三个坐标 p1、p2 和 p3。在三角形类中,我们实现了两个方法 get_area 和 get_perimeter,用于计算三角形的面积和周长。

在主函数中,我们创建了两个点对象 point1 和 triangle1,并调用了三角形类中的 get_area 和 get_perimeter 方法,计算了它们的面积和周长。最后,我们创建了另一个点对象 point2 和 triangle2,并再次调用了三角形类中的 get_area 和 get_perimeter 方法,计算了它们的面积和周长。

国产小品牌 | 园豆:199 (初学一级) | 2023-04-25 14:55

谢谢!

支持(0) 反对(0) ap。 | 园豆:88 (初学一级) | 2023-04-25 14:57

c++的有没有呀

支持(0) 反对(0) ap。 | 园豆:88 (初学一级) | 2023-04-25 14:58
0

以下是用 C++ 设计点类和三角形类,以及主函数的示例代码:

c++
Copy code

include <iostream>

include <cmath>

using namespace std;

// 点的类
class Point {
private:
double x;
double y;
public:
Point(double x = 0, double y = 0) {
this->x = x;
this->y = y;
}
Point(const Point& other) {
x = other.x;
y = other.y;
}
double getX() const { return x; }
double getY() const { return y; }
};

// 三角形的类
class Triangle {
private:
Point a;
Point b;
Point c;
public:
Triangle(const Point& a, const Point& b, const Point& c) {
this->a = a;
this->b = b;
this->c = c;
}
Triangle(const Triangle& other) {
a = other.a;
b = other.b;
c = other.c;
}
double getSideLength(const Point& p1, const Point& p2) const {
double dx = p1.getX() - p2.getX();
double dy = p1.getY() - p2.getY();
return sqrt(dx * dx + dy * dy);
}
double getArea() const {
double ab = getSideLength(a, b);
double ac = getSideLength(a, c);
double bc = getSideLength(b, c);
double p = (ab + ac + bc) / 2;
return sqrt(p * (p - ab) * (p - ac) * (p - bc));
}
double getPerimeter() const {
double ab = getSideLength(a, b);
double ac = getSideLength(a, c);
double bc = getSideLength(b, c);
return ab + ac + bc;
}
};

int main() {
Point a(0, 0);
Point b(0, 3);
Point c(4, 0);
Triangle t(a, b, c);
cout << "Area: " << t.getArea() << endl;
cout << "Perimeter: " << t.getPerimeter() << endl;
return 0;
}
运行程序,输出结果如下:

makefile
Copy code
Area: 6
Perimeter: 12
其中,点类的成员变量和成员函数比较简单,主要是三角形类的成员函数比较复杂。在计算三角形面积和周长时,需要根据三个顶点的坐标计算三条边的长度,然后利用海龙公式(Heron's formula)计算面积,利用边长相加计算周长。

Technologyforgood | 园豆:7535 (大侠五级) | 2023-04-30 21:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册