第五周项目2 对象作为数据成员

来源:互联网 发布:远距离安装网络摄像头 编辑:程序博客网 时间:2024/06/16 04:13
/**Copyright (c) 2014,烟台大学计算机学院void change(int a[8][8]);*All rights reserved.*文件名称:main.cpp*作者:苏强*完成日期:2014年4月8日*版本号:v1.0**问题描述:输入三角形的三个顶点,输出他的面积、周长并判断他是不是直角三角形和等腰三角形*/#include <iostream>#include <cmath>using namespace std;class CPoint{private:    double x,y;public:    CPoint(double xx=0,double yy=0);    double distance1(CPoint p) const;    void input();    void output();};class 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);//计算并返回三角形的面积    void isRightTriangle(); //是否为直角三角形    bool isIsoscelesTriangle(); //是否为等腰三角形private:    CPoint A,B,C; //三顶点};CPoint::CPoint(double xx,double yy){    x=xx;    y=yy;}double CPoint::distance1(CPoint p) const{    return sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));}void CPoint::input(){    char s;    cout<<"输入点的坐标:";    while (cin>>x>>s>>y)    {        if(s!=',')        {            cout<<"格式错误,请重新输入!";            continue;        }        else break;    }}void CPoint::output(){    cout<<"("<<x<<","<<y<<")"<<endl;}void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z)//{    A=X;    B=Y;    C=Z;}float CTriangle::perimeter(void)//计算三角形的周长{    double a,b,c;    a=A.distance1(B);    b=B.distance1(C);    c=C.distance1(A);    return a+b+c;}float CTriangle::area(void)//计算并返回三角形的面积{    double a,b,c,s;    a=A.distance1(B);    b=B.distance1(C);    c=C.distance1(A);    s=(a+b+c)/2;    return sqrt(s*(s-a)*(s-b)*(s-c));}void CTriangle::isRightTriangle() //是否为直角三角形{    double a,b,c,max;    a=A.distance1(B);    b=B.distance1(C);    c=C.distance1(A);    max=a;    if(b>max) max=b;    if(c>max) max=c;    if(((max==a)&&(abs(a*a-b*b-c*c)<1e-7))||((max==b)&&(abs(b*b-a*a-c*c)<1e-7))||((max==c)&&(abs(c*c-b*b-a*a)<1e-7)))        cout<<"该三角形是直角三角形"<<endl;    else        cout<<"该三角形不是直角三角形"<<endl;}bool CTriangle::isIsoscelesTriangle() //是否为等腰三角形{    double a,b,c;    a=A.distance1(B);    b=B.distance1(C);    c=C.distance1(A);    if(a==b||b==c||a==c)        return true;    else return false;}int main(){    CPoint X(2,5),Y(5,2),Z(7,8);    CTriangle Tri1(X,Y,Z);  //定义三角形类的一个实例(对象)    cout<<"该三角形的周长为:"<<Tri1.perimeter()<<",面积为:"<<Tri1.area()<<endl;    Tri1.isRightTriangle();    cout<<"该三角形"<<(Tri1.isIsoscelesTriangle()?"是":"不是")<<"等腰三角形"<<endl;    CPoint A,B,C;    A.input();    B.input();    C.input();    CTriangle Tri2(A,B,C);    cout<<"该三角形的周长为:"<<Tri2.perimeter()<<",面积是:"<<Tri2.area()<<endl;    Tri2.isRightTriangle();    cout<<"该三角形"<<(Tri2.isIsoscelesTriangle()?"是":"不是")<<"等腰三角形"<<endl;    return 0;}


 

 

 

0 0
原创粉丝点击