第5周项目3对象作为数据成员(多文件组织)
2015-04-10 21:15
239 查看
/*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名:test.cpp *作者:毕玉堂 *完成日期:2015年4月10日 *版本号:v1.0 * 问题描述: *输入描述: *程序输出: */ #include <iostream> #include <cmath> #include "CTriangle.h" using namespace std; int main() { CPoint X(0,0),Y(2,0),Z(1,2); CTriangle Tri1(X,Y,Z); //定义三角形类的一个实例(对象) cout<<"该三角形的周长为:"<<Tri1.perimeter()<<",面积为:"<<Tri1.area()<<endl<<endl; Tri1.isRightTriangle(); Tri1.isIsoscelesTriangle(); return 0;; } #ifndef CTRIANGLE_H_INCLUDED #define CTRIANGLE_H_INCLUDED class CPoint { private: double x; // 横坐标 double y; // 纵坐标 public: CPoint(double xx=0,double yy=0); double Distance1(CPoint p) const; //两点之间的距离(一点是当前点——想到this了吗?,另一点为p) void input(); //以x,y 形式输入坐标点 }; 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(); //是否为直角三角形 void isIsoscelesTriangle(); //是否为等腰三角形 private: CPoint A,B,C;//三顶点 }; #endif // CTRIANGLE_H_INCLUDED #include <iostream> #include <cmath> #include "CTriangle.h" using namespace std; 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 c; cin>>x>>c>>y; if(c!=',') { cout<<"输入形式有误,请另行输入"; } } void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z) { A=X; B=Y; C=Z; } float CTriangle::perimeter(void) { double a=A.Distance1(B),b=B.Distance1(C),c=C.Distance1(A); return a+b+c; } float CTriangle::area(void) { double a=A.Distance1(B),b=B.Distance1(C),c=C.Distance1(A); double p; p=(a+b+c)/2; return sqrt(p*(p-a)*(p-b)*(p-c)); } void CTriangle::isRightTriangle() { double a=A.Distance1(B),b=B.Distance1(C),c=C.Distance1(A); if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a)) { cout<<"该三角形是直角三角形"<<endl; } else cout<<"该三角形不是直角三角形"<<endl; } void CTriangle::isIsoscelesTriangle() { double a=A.Distance1(B),b=B.Distance1(C),c=C.Distance1(A); if(a==b||a==c||b==c) { cout<<"该三角形是等腰三角形"<<endl; } else cout<<"该三角形不是等腰三角形"<<endl; }
运行结果:
相关文章推荐
- 第五周 【项目2 - 对象作为数据成员】和【项目3-用多文件组织多个类的程序】
- 第5周项目【项目2 - 对象作为数据成员】
- 第五周项目三 对象作数据成员之三角形顶点类----多文件组织
- 第5周项目3-用多文件组织多个类的程序-对象作数组成员
- 第5周项目2对象作为数据成员
- 2015-第5周项目2-对象作为数据成员
- 第5周项目2对象作为数据成员
- 第5周项目2-对象作为数据成员
- 第5周项目2 对象作为数据成员
- 第5周项目2——对象作为数据成员
- 第5周项目2-对象作为数据成员
- 第5周项目2-对象成员作为数据成员
- 第5周项目2-对象成员作为数据成员
- 用多文件组织多个类的程序——对象作为数据成员
- 第5周项目2对象作为数据成员
- 第二周项目5——数组做数据成员(5)(多文件组织)
- C++项目——对象作为数据成员
- 第六周项目二——对象作为数据成员
- 第六周项目2-对象作为数据成员
- 2014-项目二-对象作为数据成员