2015-第5周项目3-用多文件组织多个类的程序
来源:互联网 发布:莎布 尼古拉斯trpg数据 编辑:程序博客网 时间:2024/05/18 01:57
【项目3-用多文件组织多个类的程序】
trangle.cpp:
将项目2用“一个项目多个文件”的方式实现,其中两个类的声明放在同一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件。体会这样安排的优点。
main.cpp:
#include <iostream>#include <cmath>#include "trangle.h"using namespace std;//输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。int main(){ CPoint X,Y,Z; X.input(); Y.input(); Z.input(); CTriangle Tri1(X,Y,Z); cout<<"周长:"<<Tri1.perimeter()<<endl<<"面积:"<<Tri1.area()<<endl; cout<<"该三角形"<<(Tri1.isRightTriangle()?"是":"不是")<<"直角三角形"<<endl; cout<<"该三角形"<<(Tri1.isIsoscelesTriangle()?"是":"不是")<<"等腰三角形"<<endl; return 0;}
trangle.cpp:
#include <iostream>#include <cmath>#include "trangle.h"using namespace std;double CPoint::distance(CPoint p) const{ double a; a=(x-p.x)*(x-p.x)+(y-p.y)*(y-p.y); return sqrt(a);}CPoint::CPoint(double xx,double yy){ x=xx; y=yy;}void CPoint::input(){ char a; cout<<"请输入点坐标(格式x,y):\n"; while(1) { cin>>x>>a>>y; if(a==',') break; else cout<<"Input error!Please try again."; }}void CPoint::output(){ cout<<"("<<x<<','<<y<<")";}void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z){ A=X; B=Y; C=Z;}float CTriangle::perimeter(){ double s; s=C.distance(A)+B.distance(A)+C.distance(B); return s;}float CTriangle::area(){ double a,b,c; b=C.distance(A); c=B.distance(A); class CPoint { private: double x; double y; public: CPoint(double xx=0,double yy=0); double distance(CPoint p) const; void input(); void output(); }; a=C.distance(B); double s=(a+b+c)/2; return sqrt(s*(s-a)*(s-b)*(s-c));}bool CTriangle::isRightTriangle(){ double a,b,c,t; b=C.distance(A); c=B.distance(A); a=C.distance(B); if (a<b) { t=a; a=b; b=t; } if (a<c) { t=c; c=a; a=t; } if (b<c) { t=b; b=c; c=t; } if (abs(a*a-b*b-c*c)<1e-7) return true; else return false;}bool CTriangle::isIsoscelesTriangle(){ double a,b,c; b=C.distance(A); c=B.distance(A); a=C.distance(B); if((abs(a-b)<1e-7)||(abs(b-c)<1e-7)||(abs(c-a)<1e-7)) return true; else return false;}
trangle.h:
#ifndef TRANGLE_H_INCLUDED#define TRANGLE_H_INCLUDEDclass CPoint{private: double x; double y;public: CPoint(double xx=0,double yy=0); double distance(CPoint p) const; void input(); void output();};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);//计算并返回三角形的面积 bool isRightTriangle(); //是否为直角三角形 bool isIsoscelesTriangle(); //是否为等腰三角形private: CPoint A,B,C; //三顶点};#endif // TRANGLE_H_INCLUDED
0 0
- 2015-第5周项目3-用多文件组织多个类的程序
- 第四周项目 3 用多文件组织多个类的程序
- 2015-第3周项目3-程序的多文件组织
- 第5周项目3-用多文件组织多个类的程序-对象作数组成员
- 第5周项目3-用多文件组织多个类的程序
- 第5周项目3-用多文件组织多个类的程序
- C++第6周(春)项目3 用多文件组织多个类的程序
- 第4周-项目3-用多文件组织多个类的程序-三角形类
- 第7周-项目3-用多文件组织多个类的程序
- 第7周项目3:用多文件组织多个类的程序
- 第7周项目3:用多文件组织多个类的程序
- 第7周项目3-用多文件组织多个类的程序
- 第四周 项目三:用多文件组织多个类的程序
- 第3周项目3-程序的多文件组织
- 第3周项目3 程序的多文件组织
- 第3周项目3-程序的多文件组织
- 第3周项目3—程序的多文件组织
- 第11周项目3程序的多文件组织
- 蓝桥杯——打印十字图
- 关于赋值的思想
- Gabor滤波器2
- 如何在GitHub上开源一个项目
- c++ template(10)类型函数
- 2015-第5周项目3-用多文件组织多个类的程序
- ACM OnlineJudge网站汇总
- 数据库访问API
- gearman-安装php扩展
- C语言宏中"#"和"##"的用法
- 深度学习介绍(二)背景
- Photoshop“消失点滤镜”小实例
- 向PDF文件添加QRcode二维码
- Android.mk小结