第五周 课后实践:项目二——对象作为数据成员
2015-04-08 08:45
459 查看
问题及代码:
运行结果:
/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:Project4.cpp * 作 者:陈旭 * 完成日期:2015年4月 8日 * 版 本 号: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; 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; //三顶点 }; CPoint::CPoint(double xx,double yy) { x=xx; y=yy; } void CPoint::input() { char n; cout<<"请输入坐标点(格式x,y ):"; while(1) { cin>>x>>n>>y; if (n==',') break; cout<<"输入的数据格式不符合规范,请重新输入"<<endl; } } void CPoint::output() { cout<<"("<<x<<", "<<y<<")"<<endl; } double CPoint::Distance(CPoint p)const { double d; d=sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y)); return d; } void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z) { A=X; B=Y; C=Z; } float CTriangle::perimeter(void) { float a,b,c; a=A.Distance(B); b=B.Distance(C); c=C.Distance(A); return a+b+c; } float CTriangle::area(void) { float a,b,c; a=A.Distance(B); b=B.Distance(C); c=C.Distance(A); double p; p=(a+b+c)/2; return sqrt(p*(p-a)*(p-b)*(p-c)); } bool CTriangle::isIsoscelesTriangle() { float a,b,c; a=A.Distance(B); b=B.Distance(C); c=C.Distance(A); if(a==b||b==c||c==a) return true; else return false; } bool CTriangle::isRightTriangle() { float a,b,c; a=A.Distance(B); b=B.Distance(C); c=C.Distance(A); if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)) return true; else return false; } int main() { CPoint X(2,6),Y(3,4),Z(5,6); CTriangle c(X,Y,Z); cout<<"该三角形的面积为:"<<c.area()<<endl; cout<<"该三角形的周长为:"<<c.perimeter()<<endl; if(c.isRightTriangle()) cout<<"该三角形是直角三角形。"<<endl; else cout<<"该三角形不是直角三角形。"<<endl; if(c.isIsoscelesTriangle()) cout<<"该三角形是等腰三角形。"<<endl; else cout<<"该三角形不是等腰三角形。"<<endl; }
运行结果:
相关文章推荐
- 第五周上机实践项目2-对象作为数据成员
- 第五周上机实践项目2——对象作为数据成员
- 第五周项目2 对象作为数据成员
- 2015年第五周项目二:对象作为数据成员
- 第五周 项目二 对象作为数据成员
- 第五周 项目二-对象作为数据成员
- 第五周项目二:对象作为数据成员
- 第五周项目:对象作为数据成员
- 第五周项目2-对象作为数据成员
- 第五周项目2-对象作为数据成员
- 第五周项目2——对象作为数据成员
- 第五周项目2 - 对象作为数据成员
- 第五周项目二——对象作为数据成员
- 第五周项目二之对象作为数据成员
- 第五周 项目二 对象作为数据成员
- 第五周项目二:对象作为数据成员的三角形类
- 第五周 项目2-对象作为数据成员
- 第六周上机实践项目——对象作为数据成员
- 第五周项目二---对象作为数据成员
- 第五周上机项目2对象作为数据成员