高分求大神帮写一个程序解决办法
高分求大神帮写一个程序
编程实现一个三角形类,在类中实现其各种操作。
(1) 类的成员变量如下所示:
class CTriangle
{
private:
int m_pos[3][2]; //用于存储三个顶点的坐标(第1维表示顶
//点序号,第2维表示X和Y分量
public:
……
};
(2) 添加设置三角形三个顶点坐标的函数void SetVertex(int val[3][2]),请写出实现代码。
(3) 添加计算周长的函数double CalcLength(),请写出实现代码。
(4) 添加计算面积的函数double CalcArea(),请写出实现代码。
(5) 添加返回三个顶点坐标的函数void GetVertex(int val[3][2]),请写出实现代码。
(6) 添加显示三角形三个顶点坐标的函数void Show(),请写出实现代码。
(7) 编写main函数,在其中试用CTriangle类。请根据自己的体会,描述一个类的成员函数哪些应该是私有,哪些应该是公有?
(8) 上述程序采用单文件结构形式实现。
还有能说明一下第五句和第六句有什么区别吗,我怎么感觉都是一样的啊!!!
------解决方案--------------------
5)是返回
6是输出
返回只是外部得到这个值.输出在这里是 输出到标准输出.
------解决方案--------------------
再努力点
------解决方案--------------------
楼主你把已知顶点坐标求面积和周长的公式写出来.
------解决方案--------------------
(5)返回3个坐标的值,供程序进行处理。
(6)将坐标值显示在屏幕上,让用户看到。
------解决方案--------------------
编程实现一个三角形类,在类中实现其各种操作。
(1) 类的成员变量如下所示:
class CTriangle
{
private:
int m_pos[3][2]; //用于存储三个顶点的坐标(第1维表示顶
//点序号,第2维表示X和Y分量
public:
……
};
(2) 添加设置三角形三个顶点坐标的函数void SetVertex(int val[3][2]),请写出实现代码。
(3) 添加计算周长的函数double CalcLength(),请写出实现代码。
(4) 添加计算面积的函数double CalcArea(),请写出实现代码。
(5) 添加返回三个顶点坐标的函数void GetVertex(int val[3][2]),请写出实现代码。
(6) 添加显示三角形三个顶点坐标的函数void Show(),请写出实现代码。
(7) 编写main函数,在其中试用CTriangle类。请根据自己的体会,描述一个类的成员函数哪些应该是私有,哪些应该是公有?
(8) 上述程序采用单文件结构形式实现。
还有能说明一下第五句和第六句有什么区别吗,我怎么感觉都是一样的啊!!!
------解决方案--------------------
5)是返回
6是输出
返回只是外部得到这个值.输出在这里是 输出到标准输出.
------解决方案--------------------
再努力点
------解决方案--------------------
楼主你把已知顶点坐标求面积和周长的公式写出来.
------解决方案--------------------
(5)返回3个坐标的值,供程序进行处理。
(6)将坐标值显示在屏幕上,让用户看到。
------解决方案--------------------
- C/C++ code
#include<cstring> #include<iostream> #include<cstdlib> #include<cstdio> #include<cmath> using namespace std; class CTriangle { private://成员变量私有 int m_pos[3][2]; //用于存储三个顶点的坐标(第1维表示顶 //点序号,第2维表示X和Y分量 private: // 非对外接口私有 double distance(int x[2], int y[2]) { int a = x[0] - y[0], b = x[1] - y[1]; return sqrt(a * a + b * b); } public: //对外接口,公有. void SetVertex(int val[3][2]) { memmove((char *)m_pos, (char *)val, sizeof(m_pos)); } double CalcLength() { double len = 0.0; for(int i = 0; i < 3; i++) len += distance(m_pos[(i+1)%3], m_pos[(i+2)%3]); return len; } double CalcArea() { double side[3]; double p = 0.0; for(int i = 0; i < 3; i++) { side[i] = distance(m_pos[(i+1)%3], m_pos[(i+2)%3]); p += side[i]; } p /= 2.0; return sqrt(p * (p - side[0]) * (p - side[1]) * (p - side[2])); } void GetVertex(int val[3][2]) { memmove((char *)val, (char *)m_pos, sizeof(m_pos)); } void show() { for(int i=0;i<3;i++) printf("(%d,%d)\t",m_pos[i][0],m_pos[i][1]); puts(""); } }; int main() { int arr[3][2]={ {1,2},{3,5},{7,12} }; CTriangle ct; ct.SetVertex(arr); ct.show(); printf("area:%f\n",ct.CalcArea()); printf("length:%f\n",ct.CalcLength()); return 0; }
------解决方案--------------------
5楼写好了
------解决方案--------------------
(5) 添加返回三个顶点坐标的函数void GetVertex(int val[3][2]),请写出实现代码。
(6) 添加显示三角形三个顶点坐标的函数void Show(),请写出实现代码。
================================================================================
(5)是获取三个顶点的坐标,并将三个顶点坐标放到参数val中作为输出
(6)将GetVertex中参数的内容显示在屏幕上