/*三角形的种类与面积
基本要求:
定义点(point)类,包含点的坐标x和y;通过继承点类派生出线段(line)类;通过线段(line)类的组合定义三角形(triangle )类。
功能要求:
1、设计菜单实现功能选择;
2、输入三角形的三个顶点坐标;
3、判断三角形的种类(一般三角形、等腰三角形、等边三角形、直角三角形和不能构成三角形);
4、计算并输出三角形的面积 。
#include<iostream>
#include<math.h>
using namespace std;
double le1,le2,le3;
double x1,y12;
double x2,y2;
double x3,y3;
class point
{
private:
double x;
double y;
public:
point(double a,double b)
{ x=a;
y=b;
}
int getx()
{
return x;
}
int gety()
{
return y;
}
};
class line
{
private:
point p1,p2;
public:
line(point np1, point np2):p1(np1),p2(np2)
{}
double getlength()
{
return (sqrt((p1.getx()-p2.getx())*(p1.getx()-p2.getx())+(p1.gety()-p2.gety())*(p1.gety()-p2.gety())));
}
};
class triangle
{
private:
line le1,le2,le3;
public:
triangle(double a,double b,double c,double d,double e,double f): le1(a,b,c,d),le2(a,b,e,f),le3(c,d,e,f)
{
le1=le1.getleh;
le2=le2.getleh;
le3=le3.getleh;
}
double dys()
{
if(le1==le2)||le1=le3||le2=le3)
return 1;
else
return 0;
}
double dbs()
{
if(le1==le2&&le1==le3)
return 1;
else
return 0;
}
double zjs()
{
if (pow(le1,2)+pow(le2,2))=pow(le3,2)|| (pow(le2,2)+pow(le3,2))=pow(le1,2)|| (pow(le1,2)+pow(le3,2))=pow(le2,2)
return 1;
else
return 0;
}
void gettrianglename()
{
if((X1==X2&&X2==X3)||(Y1==Y2&&Y2==Y3)||((X3-X2)*(Y2-Y1)-(Y3-Y2)*(X2-X1))==0)
cout<<"不能构成三角形!"<<endl;
cout<<"\n 不能构成三角形\n"<<endl;
else
{
if(dys())cout<<"\n 这是等腰三角形\n"<<endl;
else if(dbs())cout<<"\n 这是等边三角形\n"<<endl;
else if(zjs())cout<<"\n 这是直角三角形\n"<<endl;
else
cout<<"\n 这是一般三角形"<<endl;
}
}
void getarea()
{
double s,m;
m=(le1+le2+le3)/2;
s=sqrt((m*(m-le1)*(m-le2)*(m-le3)));
cout.setf(ios::fixed);
cout.precision(2);
cout<<"\n 三角形面积是:"<<s<<endl;
}
};
void settriangle()
{
cout<<"输入第一个顶点坐标:";cin>>x1>>y1;cout<<endl;
cout<<"输入第二个顶点坐标:";cin>>x2>>y2;cout<<endl;
cout<<"输入第三个顶点坐标:";cin>>x3>>y3;cout<<endl;
}
int menu_select()
{
char s[80];
int c;
cout<<"............主菜单............"<<endl;
cout<<" 1.输入三角形三点坐标"<<endl;
cout<<" 2.输入三角形种类"<<endl;
cout<<" 3.输入三角形面积"<<endl;
cout<<" 0.程序退出"<<endl;
cout<<"............................."<<endl;
do
{
cout<<"\n 输入您的菜单选项";
cin>>s;
c=atoi(s);
getchar();
}while(c<0||c>3);
return c;
}
void main()
{
for(;;)
{
triangle t(x1,y1,x2,y2,x3,y3);
system("cls");
switch(menu_select())
{
case 1:
settriangle();break;
case 2:
t.gettrianglename();break;
case 3:
t.getarea();break;
case 4:
exit(0);
}
cout<<"按回车键返回主菜单......"<<endl;
getchar();
}
return;
}
这个编译不了,也不知道怎么改好,求求哪位大神可以解答,谢谢