2014-项目二-对象作为数据成员

来源:互联网 发布:朴素贝叶斯算法python 编辑:程序博客网 时间:2024/05/16 17:38
/**程序的版权和版本声明部分:*Copyright(c)2014,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:刘晓晓*完成日期:2014年 04月01号*版本号:v1.0*对任务及求解方法的描述部分:*输入描述: 无*问题描述:*程序输出:无*问题分析:*算法设计:*/#include<iostream>#include <cmath>using namespace std;class CPoint{private:    double x;  // 横坐标    double y;  // 纵坐标public:    double Distance(CPoint p) const;    CPoint(double xx=0,double yy=0):x(xx),y(yy) {}    void input()    {        cin>>x>>y;    }    void output()    {        cout<<'('<<x<<','<<y<<')'<<endl;    }};class CTriangle{public:    CTriangle(CPoint &X,CPoint &Y,CPoint &Z):A(X),B(Y),C(Z) {} //给出三点的构造函数    void setTriangle(CPoint &X,CPoint &Y,CPoint &Z)    {        A=X;        B=Y;        C=Z;    }    float perimeter(void);//计算三角形的周长    float area(void);//计算并返回三角形的面积    bool isRightTriangle(); //是否为直角三角形    bool isIsoscelesTriangle(); //是否为等腰三角形    void setlength();private:    CPoint A,B,C; //三顶点    double a,b,c;};double CPoint :: Distance(CPoint p) const{    double l;    l=sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));    return l;}void CTriangle ::setlength(){    a=A.Distance(B);    b=A.Distance(C);    c=B.Distance(C);}float CTriangle::perimeter(){    double w;    w=a+b+c;    return w;}float CTriangle:: area(){    double z,s;    z=(a+b+c)/2;    s=sqrt(z*(z-a)*(z-b)*(z-c));    return s;}bool CTriangle::isRightTriangle(){    if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)        return true;    else        return false;}bool CTriangle::isIsoscelesTriangle(){    if(a==b||a==c||b==c)        return true;    else        return false ;}int main(){    CPoint a,b,c;    CTriangle H(a,b,c);    cout<<"输入三个点的坐标:"<<endl;    a.input();    b.input();    c.input();    cout<<"坐标分别为:"<<endl;    a.output();    b.output();    c.output();    H.setTriangle(a,b,c);    H.setlength();    cout<<"该三角形的面积为:"<<H.area()<<"周长为:"<<H.perimeter()<<endl;    if (H.isRightTriangle() )        cout<<"该三角形为直角三角形!"<<endl;    else        cout<<"不是直角三角形!"<<endl;    if (H.isIsoscelesTriangle())        cout<<"该三角形为等腰三角形!"<<endl;    else        cout<<"不是等腰三角形!"<<endl;    return 0;}

0 0
原创粉丝点击