c++题 定义三角形类 求周长与面积

来源:百度知道 编辑:UC知道 时间:2024/05/29 14:33:40
定义一个三角形的类 三角形由三个顶点组成(顶点时一个POINT的对象)根据三个顶点的值计算三角形的周长和面积,如果三个顶点在一个直线上则提示是非法三角形,可以比较三角形的大小是否为等腰三角新或直角三角形。

point对象应该有2个参数吧
生成3个point的对象
先根据2点的坐标计算2点间线段的长度,再根据线段比较或计算

三角形面积有个计算公式(据说是海伦定理,不过我记得那个公式是黄冈一个高中老师首先发明的啊,怎么成老外的定理了,郁闷)
假设△ABC三边为a,b,c
则S△ABC=√[l(l-a)(l-b)(l-c)]

判断三点是否在一条直线上,
只要判断由3点构成的3条线段中的任意2条的斜率是否相同,如果相同就是非法三角形

判断等腰△
三边中有任意2条边相等即为等腰△

判断直角三角形
可以根据直角边的平方和=斜边的平方来判断

已知等腰三角行的2条直角边,说明这是个等腰直角三角形,可以采用小学阶段就可以学会的“勾股定理”。

即:斜边的平方=两直角边的平方和

就是a的平方加b的平方等于c的平方。

解法:求出两直角边的平方和后,看看和是哪个数的平方,就可以推断出第三边长度是多少了。

用Visul C++编程如下:
#include <iostream.h>
#include<math.h>

class TRI
{
float x1,y1,x2,y2,x3,y3;
double area;
double l1,l2,l3,s,l;
int type;
public:
TRI(float a,float b,float c,float d,float e,float f)
{
x1=a,y1=b,x2=c,y2=d,x3=e,y3=f;
}
void process()
{
l1=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
l2=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
l3=sqrt((x2-x3)*(x