项目四

来源:互联网 发布:星际皆知我爱你百度云 编辑:程序博客网 时间:2024/05/04 23:58
#include<iostream>#include<cmath>using namespace std;//类1class CPoint{private:  double x;  // 横坐标  double y;  // 纵坐标public:  CPoint(double xx=0,double yy=0);  double Distance(CPoint p) const;   // 两点之间的距离(一点是当前点,另一点为参数p  void input();  //以x,y 形式输入坐标点  void output(); //以(x,y) 形式输出坐标点};//类2class CTriangle{public:CTriangle(CPoint &X,CPoint &Y,CPoint &Z):A(X),B(Y),C(Z){} //给出三点的构造函数void setTriangle(CPoint &X,CPoint &Y,CPoint &Z);//float perimeter(void);//计算三角形的周长float area(void);//计算并返回三角形的面积bool isRightTriangle(); //是否为直角三角形bool isIsoscelesTriangle(); //是否为等腰三角形private:CPoint A,B,C; //三顶点};CPoint::CPoint(double xx,double yy){   x=xx;   y=yy;}double CPoint::Distance(CPoint p) const{   return (sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)));}void CPoint::input(){ char ch;  cout<<"请输入(x,y)的值";  cin>>x>>ch>>y;  if(ch!=',')   cout<<"您输入的形式不对:";//   break;}void CPoint::output(){  cout<<"("<<x<<","<<y<<")";}void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z){   A=X;   B=Y;   C=Z;}float CTriangle::perimeter(void)//周长{   double a=A.Distance(B),b=B.Distance(C),c=A.Distance(C);return (a+b+c);  }float CTriangle::area(void)//面积{double a=A.Distance(B),b=B.Distance(C),c=A.Distance(C);    double s;    s=0.5*(a+b+c);return (sqrt(s*(s-a)*(s-b)*(s-c)));}bool CTriangle::isRightTriangle(){    double a=A.Distance(B),b=B.Distance(C),c=A.Distance(C);    if(a*a==b*b+c*c&&b*b==a*a+c*c&&c*c==a*a+b*b)return true;else return false;}bool CTriangle::isIsoscelesTriangle(){   double a=A.Distance(B),b=B.Distance(C),c=A.Distance(C);   if(a==b&&a==c&&c==b)   return true;   else   return false;}int main(){ CPoint a,b,c,*p1,*p2,*p3; p1=&a; p2=&b; p3=&c; CTriangle t1(*p1,*p2,*p3); cout<<"第一个点a:"<<endl; a.input(); cout<<"第二个点b:"<<endl; b.input(); cout<<"第三个点c"<<endl; c.input(); cout<<"三角形的周长为:"<<t1.perimeter()<<endl; cout<<"三角形的面积为:"<<t1.area()<<endl; cout<<"该三角形"<<(t1.isRightTriangle()?"是":"不是")<<"直角三角形"<<endl; cout<<"该三角形"<<(t1.isIsoscelesTriangle()?"是":"不是")<<"等腰三角形"<<endl;return 0;}

原创粉丝点击