第六周任务4

来源:互联网 发布:封装json数据 编辑:程序博客网 时间:2024/05/16 14:11
#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:void setCTriangle(Cpoint &x,Cpoint &y,Cpoint &z);double perimeter(void);//求三角形的周长double 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 ch;while(1){cin>>x>>ch>>y;if(ch!=',')cout<<"格式出现错误!"<<endl;elsebreak;}}void Cpoint::output(){    cout<<"("<<x<<','<<y<<")"<<endl;}double Cpoint::distance(Cpoint p) const{return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));}void CTriangle::setCTriangle(Cpoint &x,Cpoint &y,Cpoint &z){A=x;B=y;C=z;}double CTriangle::perimeter(void)//求周长{double a=B.distance(C),b=C.distance(A),c=A.distance(B);return (a+b+c);}double CTriangle::area(void)//求面积{    double a=B.distance(C),b=C.distance(A),c=A.distance(B);double p=(a+b+c)/2;return sqrt(p*(p-a)*(p-b)*(p-c));}bool CTriangle::isRightTriangle(){    double a=B.distance(C),b=C.distance(A),c=A.distance(B);if((a*a+b*b-c*c)<(1e-6)||(c*c+b*b-a*a)<(1e-6)||(a*a+c*c-b*b)<(1e-6))return true;elsereturn false;}bool  CTriangle::isIsoscelesTriangle(){    double a=B.distance(C),b=C.distance(A),c=A.distance(B);if(((a-b)<1e-6)||((b-c)<1e-6)||((c-a)<1e-6))return true;else return false;}void main(void){     CTriangle Tri1(Cpoint(4,0),Cpoint(0,0),Cpoint(0,4));    //定义三角形类的一个实例(对象)       cout<<"该三角形的周长为:"<<Tri1.perimeter()<<endl;cout<<"该三角形的面积为:"<<Tri1.area()<<endl;      cout<<"该三角形"<<(Tri1.isRightTriangle()?"是":"不是")<<"直角三角形"<<endl;      cout<<"该三角形"<<(Tri1.isIsoscelesTriangle()?"是":"不是")<<"等腰三角形"<<endl;      system("pause");}


 
感悟:
 
感悟;在遇到函数调试不出来时,先把主函数中的函数调用一个一个注销掉,一个个找出错误来,否则一块找时,无从下手。或者有时尽是一个错误,就把所有的错误解决掉了。
原创粉丝点击