test9-5(用点类做成员的三角形类)

来源:互联网 发布:终结者 知乎 编辑:程序博客网 时间:2024/06/06 10:01

程序:

/** Copyright(c)2013,*All right reserved.*文件名称:test9-5.cpp*作    者:徐驰*完成日期:2013-12-17*版 本 号:v1.0**输入描述:设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。  (1)这个问题需要用到两个类,顶点类参照任务3中的CPoint类;  (2)三角形类参考下面CTriangle类的声明;  (3)关于三条边的处理,可以增加三个私有属性,在初始化时求出来备用,也可以在需要时计算得到。*问题描述:略*程序输出:略*问题分析:略*算法分析:略*/#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 Distance(Cpoint p)const;void input();};double Cpoint::Distance(Cpoint p)const{    return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));}void Cpoint::input(){    char a,b,c;    do{cout<<"enter a point please(x,y):";cin>>a>>x>>b>>y>>c;if(a!='('||b!=','||c!=')')cout<<"the style is error,please try again."<<endl;}while(a!='('||b!=','||c!=')');}class Triangle{private:Cpoint A,B,C;public:Triangle(Cpoint A,Cpoint B,Cpoint C):A(A),B(B),C(C){};void area();void perimeter();void judge();};void Triangle::area(){double a,b,c;a=B.Distance(C);b=A.Distance(C);c=A.Distance(B);cout<<0.25*sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a))<<endl;}void Triangle::perimeter(){double a,b,c;a=B.Distance(C);b=A.Distance(C);c=A.Distance(B);cout<<a+b+c<<endl;}void Triangle::judge(){double a,b,c;a=B.Distance(C);b=A.Distance(C);c=A.Distance(B);if(a==b&&a==c)cout<<"it is an equilateral triangle."<<endl;else if((a==b||a==c||b==c))cout<<"it is an isosceles triangle."<<endl;elsecout<<"it is an ordinary triangular."<<endl;}void main(){Cpoint A,B,C;cout<<"please enter A point."<<endl;A.input();cout<<"please enter B point."<<endl;B.input();cout<<"please enter C point."<<endl;Triangle tri(A,B,C);C.input();tri.area();tri.perimeter();tri.judge();}

结果:


求助:

请问大神们为什么在点输入格式不正确是出现这种情况???


0 0
原创粉丝点击