OJ:line point 6

来源:互联网 发布:mac打开防火墙 编辑:程序博客网 时间:2024/05/15 21:19
#include <iostream>using namespace std;class Point{public:    double a;    double b;public:    Point(double aa,double bb):a(aa),b(bb)  {cout<<"Point : ("<<a<<", "<<b<<") is created."<<endl;}    Point(double aa):a(aa),b(aa)            {cout<<"Point : ("<<a<<", "<<b<<") is created."<<endl;}    Point():a(0),b(0)                       {cout<<"Point : ("<<a<<", "<<b<<") is created."<<endl;}    double x()const                  {return a;}    double y()const                  {return b;}    void showNoEndOfLine()const      {cout<<"Point : ("<<a<<", "<<b<<")";}    ~Point(){cout<<"Point : ("<<a<<", "<<b<<") is erased."<<endl;}    Point(const Point &q)    {       a=q.a;       b=q.b;       cout<<"Point : (" <<a<<", " <<b<<") is copied."<<endl;    }    void show(){cout<<"Point : ("<<a<<", "<<b<<")"<<endl;}};class Line{    Point d1;    Point d2;public:    Line():d1(0),d2(0){cout<<"Line : ("<<d1.x()<<", "<<d1.y()<<")"<<" to "<<"("<<d2.x()<<", "<<d2.y()<<") is created."<<endl;}    Line (double a,double b,double c,double d):d1(a,b),d2(c,d){cout<<"Line : ("<<d1.x()<<", "<<d1.y()<<")"<<" to "<<"("<<d2.x()<<", "<<d2.y()<<") is created."<<endl;}    Line (const Line &p):d1(p.d1),d2(p.d2){cout<<"Line : ("<<d1.x()<<", "<<d1.y()<<")"<<" to "<<"("<<d2.x()<<", "<<d2.y()<<") is copied."<<endl;}    Line (Point &a,Point &b):d1(a),d2(b){cout<<"Line : ("<<d1.x()<<", "<<d1.y()<<")"<<" to "<<"("<<d2.x()<<", "<<d2.y()<<") is created."<<endl;}    const Point &start() const  {return d1;}    const Point &end ()  const  {return d2;}    void setStart(Point &a1){d1=a1;}    void setEnd(Point &a2)  {d2=a2;}    Line &setLine(const Line &p)    {//        d1.setx(p.d1.getx());//        d1.sety(p.d1.gety());//        d2.setx(p.d2.getx());//        d2.sety(p.d2.gety());        d1.a=p.d1.a;        d1.b=p.d1.b;        d2.a=p.d2.a;        d2.b=p.d2.b;        return *this;    }    Line &setLine(const Point &aa,const Point &bb)    {//        d1.setx(a.getx());//        d1.sety(a.gety());//        d2.setx(b.getx());//        d2.sety(b.gety());        d1.a=aa.a;        d1.b=aa.b;        d2.a=bb.a;        d2.b=bb.b;        return *this;    }    Line setLine(double a1,double b1,double a2,double b2)    {        d1.a=a1;        d1.b=b1;        d2.a=a2;        d2.b=b2;        cout<<"Line : ("<<d1.x()<<", "<<d1.y()<<")"<<" to "<<"("<<d2.x()<<", "<<d2.y()<<") is created."<<endl;        return *this;    }    ~Line()    {        cout<<"Line : ("<<d1.x()<<", "<<d1.y()<<")"<<" to "<<"("<<d2.x()<<", "<<d2.y()<<") is erased."<<endl;    }    void show()const    {        cout<<"Line : ("<<d1.x()<<", "<<d1.y()<<")"<<" to "<<"("<<d2.x()<<", "<<d2.y()<<")"<<endl;    }    void readLine()    {        char c;        double x1,y1,x2,y2;        cin>>x1>>c>>y1>>x2>>c>>y2;        d1.a=x1;        d1.b=y1;        d2.a=x2;        d2.b=y2;    }};void showLineCoordinate(const Line& line){    std::cout<<"Line : ";    std::cout<<"("<<line.start().x()<<", "<<line.start().y()<<")";    std::cout<<" to ";    std::cout<<"("<<line.end().x()<<", "<<line.end().y()<<")";    std::cout<<std::endl;}void showLinePoint(const Line& line){    std::cout<<"Line : ";    line.start().showNoEndOfLine();    std::cout<<" to ";    line.end().showNoEndOfLine();    std::cout<<std::endl;}void showLine(const Line& line){    line.show();}int main(){    int num, i;    Point p(1, -2), q(2, -1), t;    t.show();    std::cin>>num;    Line line[num + 1];    for(i = 1; i <= num; i++)    {        line[i].readLine();        showLine(line[i]);    }    Line l1(p, q), l2(p,t), l3(q,t), l4(l1);    showLineCoordinate(l1);    showLinePoint(l2);    showLinePoint(l3.setLine(l1));    showLineCoordinate(l4.setLine(t,q));    line[0].setStart(t);    line[0].setEnd(q);}
0 0
原创粉丝点击