C ?Programación, clase triangular
"iostream.h"
#include
"math.h"
clase
CPoint//definir punto
{
privado:
doble
x, y;
público:
PuntoC(doble
a, doble
b){x=a; y=b;}//Constructor
PuntoC (){x=0;y=0;}
void
Set( doble
a, doble
b) { x=a, y=b;}//Establecer coordenadas del punto
double
GetX(){return
x;}
doble
GetY(){return
y;}
};
clase
CTreiangle / /Clase triángulo
{
privado:
CPoint
x, y, z
doble <; /p>
s1, s2, s3;
público:
void
SetTriangle(CPoint
P1, CPoint
p2, CPoint
P3);
bool
Prueba();
doble
Área ();
};
void
CTreiangle::SetTriangle(CPoint
P1, CPoint
p2,CPoint
p3)//Establece los tres puntos del triángulo y calcula las longitudes de los tres lados
{
x = P1;
y=p2;
z=p3
s1=sqrt((x.s1=sqrt((x.GetX()- y .GetX())*(x.GetX()-y.GetX()) (x.GetY()-y.GetY())*(x.GetY()-y.GetY());
s2=sqrt((x.GetX()-z.GetX())*(x.GetX()-z.GetX()) (x.GetY()-z.GetY())* ( x.GetY()-z.GetY()))
s3=sqrt((z.GetX() -y.GetX())*(z.GetX()-y.GetX( ) ) (z.GetY()-y.GetY())*(z.GetY()-y.GetY()
}
bool
<); p>CTreiangle::Test()//prueba si es un triángulo, principio de tres puntos No *** línea{
if((y.GetX()-x . ObtenerX())*z.Obtener
Y()==(y.GetY()-x.GetY())*z.GetX() x.GetY()*y.GetY()-x.GetY()*x.GetY() y.GetX ()*x.GetY())
devuelve
falso;
más
devuelve
verdadero ;
}
doble
CTreiangle: .Area()// Aplica la fórmula de Heron para calcular el área y regresa
{
doble
p, área
p=(s1 s2 s3)/2.0; -s1 )*(p-s2)*(p-s3));
retorno
área;
}
int p>
main()
{
CPoint
temp[3];/ Definir tres puntos
doble
tempx, tempy;
CTreiangle
treiangle;
while(1)
{
for(int
i=0;ilt;3;i)
{
coutlt;lt; "Por favor, introduzca el primero"lt; ;lt; i 1lt;lt; "Coordenada X del primer punto"lt;lt;endl;
cingt;gt;tempx;
coutlt;lt; Coordenada Y del primer punto "lt;lt;i 1lt;lt;" "lt;lt;endl;
cin gt;gt;tempy;
temp[i]. Set(tempx, tempy);
}
treiangle.SetTriangle(temp[0], temp[1], temp[2]); (!treiangle.Test())
{
coutlt;lt; "Los datos de entrada son ilegales y no se puede formar un triángulo"lt;lt;endl ;
coutlt;lt; "Volver a introducir datos"lt;lt;endl;
}
else
{
coutlt;lt; "El área de un triángulo es"lt;lt;treiangle.Area()lt;lt;endl;
coutlt;lt; "Vuelve a escribir los datos"lt;lt;endl ;
}
}
Devolver
0;
}
VC6 .0 Compilar y ejecutar
Las imágenes de prueba son 3, 4 y 5.