2-5-2 对象作为数据成员
来源:互联网 发布:德勤财务咨询 知乎 编辑:程序博客网 时间:2024/06/05 18:40
问题及代码:
#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 Distance1(CPoint p) const; //两点之间的距离(一点是当前点——想到this了吗?,另一点为p) double Distance0() const; // 到原点(0,0)的距离 CPoint SymmetricAxis(char style) const;//style取'x','y'和'o'分别表示按x轴, y轴, 原点对称 void input(); //以x,y 形式输入坐标点 void output(); //以(x,y) 形式输出坐标点};double CPoint::Distance1(CPoint p) const{ return sqrt((this->x-p.x)*(this->x-p.x)+(this->y-p.y)*(this->y-p.y));}double CPoint::Distance0() const{ return sqrt(this->x*this->x+this->y*this->y);}CPoint CPoint::SymmetricAxis(char style) const{ CPoint n=*this; switch(style) { case 'x': { n.x=-n.x; break; } case 'y': { n.y=-n.y; break; } case 'o': { n.x=-n.x; n.y=-n.y; break; } } return n;}void CPoint::input(){ int a,b; char c; while(1) { cin>>a>>c>>b; if(c!=',') { cout<<"error cin,retry."<<endl; continue; } else break; } x=a; y=b;}void CPoint::output(){ cout<<'('<<x<<','<<y<<')'<<endl;}class CTriangle{public: CTriangle(CPoint &X,CPoint &Y,CPoint &Z):A(X),B(Y),C(Z) { AB=A.Distance1(B); AC=A.Distance1(C); BC=B.Distance1(C); } //给出三点的构造函数 void setTriangle(CPoint &X,CPoint &Y,CPoint &Z);// float perimeter(void);//计算三角形的周长 float area(void);//计算并返回三角形的面积 bool isRightTriangle(); //是否为直角三角形 bool isIsoscelesTriangle(); //是否为等腰三角形private: CPoint A,B,C; //三顶点 double AB,BC,AC;};void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z)//{ A=X; B=Y; C=Z;}float CTriangle::perimeter(void)//计算三角形的周长{ return AB+BC+AC;}float CTriangle::area(void){ double n; n=(AB+BC+AC)/2; return n*(n-AB)*(n-BC)*(n-AC);}bool CTriangle::isRightTriangle(){ if(AB*AB+BC*BC==AC*AC||AB*AB+AC*AC==BC*BC||BC*BC+AC*AC==AB*AB) return true;}bool CTriangle::isIsoscelesTriangle(){ if(AB==BC||AB==AC||BC==AC) return true; else return false;}int main(){ CPoint a(0,3),b(4,0),c(4,3); CTriangle abc(a,b,c); cout<<"perimeter:"<<abc.perimeter()<<endl; cout<<"area:"<<abc.area()<<endl; if(abc.isRightTriangle()) cout<<"abc is RightTriangle."<<endl; else if(abc.isIsoscelesTriangle()) cout<<"abc is IsoscelesTriangle."<<endl; return 0;}
运行结果:
学习小结:
写完第一个,第二个还是比较轻松的。
戒骄戒躁吧。
0 0
- 2-5-2 对象作为数据成员
- 第5周项目2-对象成员作为数据成员
- 第5周项目2-对象成员作为数据成员
- 项目2 - 对象作为数据成员
- 6-2对象作为数据成员
- 六.2对象作为数据成员
- 6-2-对象作为数据成员
- 6-2-对象作为数据成员
- 【项目2 - 对象作为数据成员】
- 第5周项目2对象作为数据成员
- 第5周项目2对象作为数据成员
- 2015-第5周项目2-对象作为数据成员
- 第5周项目2-对象作为数据成员
- 第5周项目2-对象作为数据成员
- 第5周项目2对象作为数据成员
- 第5周项目2 对象作为数据成员
- 第5周项目【项目2 - 对象作为数据成员】
- 对象作为数据成员
- UIButton无响应问题详细记录
- iOS开发--毛玻璃效果,图片模糊效果
- 飞机大战开发01之添加主逻辑层,显示背景的移动
- 【OpenGL编程指南】之视图和模型变换
- [XML]sax中DefaultHander解析xml过程和先后顺序
- 2-5-2 对象作为数据成员
- 常用知识总结——模板Template
- 最近学习的感悟
- 深度学习介绍(六)趣闻
- Android 调用WebService 查手机号的应用
- UVA - 10635 Prince and Princess
- 项目三:用多文件组织多个类的程序
- AddTwoNumbers
- Reactor设计模式基础知识