第五周项目三 对象作数据成员之三角形顶点类----多文件组织
2015-04-13 20:28
435 查看
问题及代码
ALL rights reserved.
*文件名称: 初学对象3
作者:李长鸿
*完成时间:2015.4.12
*问题描述:数组之工资
*/
Triangle.h
Triangle.cpp
main.cpp
ALL rights reserved.
*文件名称: 初学对象3
作者:李长鸿
*完成时间:2015.4.12
*问题描述:数组之工资
*/
Triangle.h
#ifndef CTRIANGLE_H_INCLUDED #define CTRIANGLE_H_INCLUDED class CPoint { public: double x,y; CPoint(double a=0,double b=0):x(a),y(b) {} double distance(CPoint p); }; 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 sidelenth(); float perimeter(void);//计算三角形的周长 float area(void);//计算并返回三角形的面积 bool isRightTriangle(); //是否为直角三角形 bool isIsoscelesTriangle(); //是否为等腰三角形 bool isTriangle();//判断是否为三角形 private: CPoint A,B,C; //三顶点 double a,b,c; }; #endif // CTRIANGLE_H_INCLUDED
Triangle.cpp
#include <iostream> #include"CTriangle.h" #include<cmath> using namespace std; double CPoint::distance(CPoint p) { return sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y)); } void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z) { A=X; B=Y; C=Z; } double CTriangle::sidelenth() { a=A.distance(B); b=B.distance(C); c=A.distance(C); cout<<"三边边长分别为:"<<a<<", "<<b<<", "<<c<<endl; } float CTriangle::perimeter() { cout<<"这个三角形的周长为:"<<a+b+c<<endl; } float CTriangle::area() { double s=a+b+c/2; cout<<"这个三角形的面积为:"<<sqrt((s-a)*(s-b)*(s-c))<<endl; } bool CTriangle::isRightTriangle() { if(a*a+b*b-c*c<=1e-7||a*a+c*c-b*b<=1e-7||c*c+b*b-a*a<=1e-7) cout<<"这个三角形为直角三角形。"<<endl; else { cout<<"这个三角形不是直角三角形。"<<endl; return 0; } } bool CTriangle::isIsoscelesTriangle() { if(a==c||c==b||c==a) cout<<"这个三角形是等腰三角形。"<<endl; else cout<<"这个三角形不是等腰三角形"<<endl; } bool CTriangle::isTriangle() { if((A.x-B.x)/(A.y-B.y)!=(C.x-B.x)/(C.y-B.y)) return 1; else { cout<<"这三个点不能构成一个三角形。"<<endl; return 0; } }
main.cpp
#include <iostream> #include"CTriangle.h" using namespace std; int main() { double a,b; char c; cout<<"请依次输入第一个顶点的横纵坐标: "; cin>>a>>b; CPoint A(a,b); cout<<"请依次输入第二个顶点的横纵坐标: "; cin>>a>>b; CPoint B(a,b); cout<<"请依次输入第三个顶点的横纵坐标: "; cin>>a>>b; CPoint C(a,b); CTriangle tri(A,B,C); if(tri.isTriangle()) { tri.sidelenth(); tri.perimeter(); tri.area(); tri.isRightTriangle(); tri.isIsoscelesTriangle(); } return 0; }
相关文章推荐
- 第五周 【项目2 - 对象作为数据成员】和【项目3-用多文件组织多个类的程序】
- 第五周项目二 对象作为数据成员 之 三角形已知三个顶点---两个类问题
- 第五周项目二:对象作为数据成员的三角形类
- 第5周项目3对象作为数据成员(多文件组织)
- C++找对象的季节——三角形类第三弹(对象做数据成员+多文件组织)
- 第三周项目五(4):数组做数据成员(3的多文件方式组织)
- 第2周-项目5-数组作数据成员-工资类(多文件组织)
- 第二周项目五--多文件组织数据成员
- 第二周项目5——数组做数据成员(5)(多文件组织)
- 第2周项目5-数组做数据成员(5多文件组织处理)
- 第五周项目二 对象作为数据成员
- 第五周项目二:对象作为数据成员
- 第4周-项目2-对象作为数据成员-三角形类
- 第五周上机实践项目2——对象作为数据成员
- 第5周项目3-用多文件组织多个类的程序-对象作数组成员
- 第五周上机项目2对象作为数据成员
- 第五周 项目二-对象作为数据成员
- 第五周——对象作为数据成员——三角形类
- 第五周项目2-对象作为数据成员
- 2015年第五周项目二:对象作为数据成员