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

来源:互联网 发布:手机淘宝怎么退货退款 编辑:程序博客网 时间:2024/06/01 07:39
/** 程序的版权和版本声明部分* Copyright (c)2013, 烟台大学计算机学院学生* All rightsreserved.* 文件名称:.cpp* 作    者:王英华* 完成日期:2014年4月 4日* 版本号: v1.0* 输入描述:* 问题描述:*/#include<iostream>#include<cmath>using namespace std;class 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) 形式输出坐标点};CPoint:: CPoint(double xx,double yy){    x=xx,y=yy;}double CPoint::Distance(CPoint p) const{    int m;    m=sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));    return m;}void CPoint::input(){    cout<<"请输入点的坐标(如(x,y)的形式):";    cin>>x>>y;}void CPoint::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);//    double perimeter(void);//计算三角形的周长    double area(void);//计算并返回三角形的面积    bool isRightTriangle(); //是否为直角三角形    bool isIsoscelesTriangle(); //是否为等腰三角形private:    CPoint A,B,C; //三顶点};void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z){    A=X;    B=Y;    C=Z;}double CTriangle::perimeter(void){    double n;    n=(A.Distance(B)+B.Distance(C)+C.Distance(A));    return n;}double CTriangle::area(void){    double AB=A.Distance(B), BC=B.Distance(C), AC=A.Distance(C);    double  p=(AB+BC+AC)/2;    double s;    s=sqrt(p*(p-AB)*(p-BC)*(p-AC));    return s;}bool CTriangle::isRightTriangle(){    float AB=A.Distance(B), BC=B.Distance(C), AC=A.Distance(C);    return((AB*AB+BC*BC==AC*AC)||(AB*AB+AC*AC==BC*BC)||(AC*AC+BC*BC == AB*AB))?true:false;}bool CTriangle::isIsoscelesTriangle(){    double AB=A.Distance(B), BC=B.Distance(C), AC=A.Distance(C);    return (AB==AC||AB==BC||AC==BC)?true:false;}int main(){    CPoint X(0,4),Y(3,0),Z(0,0);    CTriangle s(X,Y,Z);    cout<<"三角形的周长为:"<<s.perimeter()<<"三角形的面积为:"<<s.area()<<endl;    cout<<"三角形"<<(s.isRightTriangle()?"是":"不是")<<"直角三角形"<<endl;    cout<<"三角形"<<(s.isIsoscelesTriangle()?"是":"不是")<<"等腰三角形"<<endl;    return 0;}
运行结果:
0 0