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

来源:互联网 发布:奇热漫画软件 编辑:程序博客网 时间:2024/05/17 03:14
/** 程序的版权和版本声明部分:* Copyright (c) 2013.烟台大学计算机学院。* All rights reserved.* 文件名称:体验常成员函数* 作    者:冯冬影* 完成日期:2014 年 4月 1 日* 版 本 号:v1.0* 对任务及求解方法的描述部分:* 输入描述:* 问题描述:* 程序输出:*/#include <iostream>#include<cmath>using namespace std;class CPoint{private:    double x;    double y;public :    CPoint (double xx=0,double yy=0):x(xx),y(yy) {}    double Distance(CPoint p) const ;//两点之间的距离(一点是当前点,另一点为参数p)    void input();//输入坐标点};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);//计算并返回三角形的面积    float Bianchang();//计算三边长    bool isRightTriangle();//是否为直角三角形    bool isTriangle();//是否为三角形    bool isIsoscelesTriangle();//是否为等腰三角形private :    CPoint A,B,C;//三顶点    double a,b,c;//三边长};void CPoint::input(){    cin>>x>>y;}double CPoint::Distance(CPoint p) const //两点之间的距离(一点是当前点,另一点为参数p){    return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));}float CTriangle::Bianchang()//计算三边长{    a=A.Distance(B);    b=A.Distance(C);    c=B.Distance(C);}float CTriangle::perimeter(void)//计算三角形的周长{    return a+b+c;}float CTriangle::area(void)//计算并返回三角形的面积{    double l;    l=(a+b+c)*0.5;    return sqrt(l*(l-a)*(l-b)*(l-c));}bool CTriangle::isRightTriangle()//是否为直角三角形{    if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b)        return true;    else return false;}bool CTriangle::isTriangle()//是否为三角形{    if((a+b>c&&a-b<c)||(a+c>b&&a-c<b)||(b+c>a&&b-c<a))        return true;    else return false;}bool CTriangle::isIsoscelesTriangle()//是否为等腰三角形{    if(a==b||a==c||b==c)        return true;    else return false;}void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z){    A=X;    B=Y;    C=Z;}int main(){    CPoint i,j,k;    CTriangle t(i,j,k);    cout<<"请输入三顶点的坐标:";    i.input();    j.input();    k.input();    t.setTriangle(i,j,k);    t.Bianchang();    if(t.isTriangle())    {        cout<<"三角形的周长为:"<<t.perimeter()<<endl;        cout<<"三角形的面积为:"<<t.area()<<endl;        if(t.isIsoscelesTriangle())            cout<<"是等腰三角形!"<<endl;        else            cout<<"不是等腰三角形!"<<endl;        if(t.isRightTriangle())            cout<<"是直角三角形!"<<endl;        else            cout<<"不是直角三角形!"<<endl;    }    else        cout<<"不能构成三角形!"<<endl;    return 0;}

运行结果
0 0
原创粉丝点击