程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 從基類中繼承的點的信息表示直線的中點

從基類中繼承的點的信息表示直線的中點

編輯:C++入門知識

[cpp]
/*
* Copyright (c) 2013, 煙台大學計算機學院
* All rights reserved.
* 文件名稱:test.cpp
* 作者:邱學偉
* 完成日期:2013 年 5 月 11 日
* 版本號:v1.0
* 輸入描述:無
* 問題描述: 定義點類,並以點類為基類,派生出直線類,從基類中繼承的點的信息表示直線的中點
* 程序輸出:
* 問題分析:
* 算法設計:略
*/ 
#include <iostream>  
#include <cmath>  
using namespace std; 
class Point 

  public: 
  Point():x(0),y(0){}; 
  Point(double x1,double y1) 
  { 
     x=x1; 
     y=y1; 
  } 
  double getx(){return x;} 
  double gety(){return y;} 
  void display(); 
  private: 
  double x,y; 
}; 
void Point::display() 

    cout<<"Point:("<<x<<","<<y<<")"<<endl; 

class Line:public Point 

    public: 
    Line(Point p1,Point p2); 
    double Lengh(); 
    void PrintLine(); 
    void PrintPoint(); 
    private: 
    class Point pts,pte; 
}; 
Line::Line(Point p1,Point p2) 

        pts=p1; 
        pte=p2; 
 

double Line::Lengh() 

    double x0=pts.getx()-pte.getx(); 
    double y0=pts.gety()-pte.gety(); 
    return sqrt(x0*x0+y0*y0); 
 

void Line::PrintLine() 

    cout<<"端點為:"<<endl; 
    pts.display(); 
    pte.display(); 
    cout<<"長度:"<<Lengh()<<endl; 

void Line::PrintPoint() 

    cout<<"("<<(pts.getx()+pte.getx())/2<<","<<(pts.gety()+pte.gety())/2<<")"<<endl; 

int main() 

    Point pt(-2,5),pe(7,9); 
    Line l(pt,pe); 
    l.PrintLine(); 
    cout<<"中點:"<<endl; 
    l.PrintPoint(); 
    return 0; 

/*
* Copyright (c) 2013, 煙台大學計算機學院
* All rights reserved.
* 文件名稱:test.cpp
* 作者:邱學偉
* 完成日期:2013 年 5 月 11 日
* 版本號:v1.0
* 輸入描述:無
* 問題描述: 定義點類,並以點類為基類,派生出直線類,從基類中繼承的點的信息表示直線的中點
* 程序輸出:
* 問題分析:
* 算法設計:略
*/
#include <iostream>
#include <cmath>
using namespace std;
class Point
{
  public:
  Point():x(0),y(0){};
  Point(double x1,double y1)
  {
     x=x1;
     y=y1;
  }
  double getx(){return x;}
  double gety(){return y;}
  void display();
  private:
  double x,y;
};
void Point::display()
{
    cout<<"Point:("<<x<<","<<y<<")"<<endl;
}
class Line:public Point
{
    public:
    Line(Point p1,Point p2);
    double Lengh();
    void PrintLine();
    void PrintPoint();
    private:
    class Point pts,pte;
};
Line::Line(Point p1,Point p2)
{
        pts=p1;
        pte=p2;

}
double Line::Lengh()
{
    double x0=pts.getx()-pte.getx();
    double y0=pts.gety()-pte.gety();
    return sqrt(x0*x0+y0*y0);

}
void Line::PrintLine()
{
    cout<<"端點為:"<<endl;
    pts.display();
    pte.display();
    cout<<"長度:"<<Lengh()<<endl;
}
void Line::PrintPoint()
{
    cout<<"("<<(pts.getx()+pte.getx())/2<<","<<(pts.gety()+pte.gety())/2<<")"<<endl;
}
int main()
{
    Point pt(-2,5),pe(7,9);
    Line l(pt,pe);
    l.PrintLine();
    cout<<"中點:"<<endl;
    l.PrintPoint();
    return 0;
}

 

\
 

心得體會:這是自己敲出來的,跟老師的有不少不同之處;

[cpp]
/*
* Copyright (c) 2013, 煙台大學計算機學院
* All rights reserved.
* 文件名稱:test.cpp
* 作者:邱學偉
* 完成日期:2013 年 5 月 11 日
* 版本號:v1.0
* 輸入描述:無
* 問題描述: 定義點類,並以點類為基類,派生出直線類,從基類中繼承的點的信息表示直線的中點
* 程序輸出:
* 問題分析:
* 算法設計:略
*/ 
#include <iostream>  
#include <cmath>  
using namespace std; 
class Point 

  public: 
  Point():x(0),y(0){}; 
  Point(double x1,double y1) 
  { 
     x=x1; 
     y=y1; 
  } 
  double getx(){return x;} 
  double gety(){return y;} 
  void display(); 
  private: 
  double x,y; 
}; 
void Point::display() 

    cout<<"Point:("<<x<<","<<y<<")"<<endl; 

class Line:public Point 

    public: 
    Line(Point p1,Point p2); 
    double Lengh(); 
    void PrintLine(); 
    void PrintPoint(); 
    private: 
    class Point pts,pte; 
}; 
Line::Line(Point p1,Point p2):Point((p1.getx()+p2.getx())/2,(p1.gety()+p2.gety())/2) 

        pts=p1; 
        pte=p2; 
 

double Line::Lengh() 

    double x0=pts.getx()-pte.getx(); 
    double y0=pts.gety()-pte.gety(); 
    return sqrt(x0*x0+y0*y0); 
 

void Line::PrintLine() 

    cout<<"端點為:"<<endl; 
    pts.display(); 
    pte.display(); 
    cout<<"長度:"<<Lengh()<<endl; 

void Line::PrintPoint() 

    cout<<"("<<(pts.getx()+pte.getx())/2<<","<<(pts.gety()+pte.gety())/2<<")"<<endl; 

int main() 

    Point pt(-2,5),pe(7,9); 
    Line l(pt,pe); 
    l.PrintLine(); 
    cout<<"\n The middle point of Line: "; 
    l.PrintPoint() ;//輸出直線l中點的信息  
    return 0; 

/*
* Copyright (c) 2013, 煙台大學計算機學院
* All rights reserved.
* 文件名稱:test.cpp
* 作者:邱學偉
* 完成日期:2013 年 5 月 11 日
* 版本號:v1.0
* 輸入描述:無
* 問題描述: 定義點類,並以點類為基類,派生出直線類,從基類中繼承的點的信息表示直線的中點
* 程序輸出:
* 問題分析:
* 算法設計:略
*/
#include <iostream>
#include <cmath>
using namespace std;
class Point
{
  public:
  Point():x(0),y(0){};
  Point(double x1,double y1)
  {
     x=x1;
     y=y1;
  }
  double getx(){return x;}
  double gety(){return y;}
  void display();
  private:
  double x,y;
};
void Point::display()
{
    cout<<"Point:("<<x<<","<<y<<")"<<endl;
}
class Line:public Point
{
    public:
    Line(Point p1,Point p2);
    double Lengh();
    void PrintLine();
    void PrintPoint();
    private:
    class Point pts,pte;
};
Line::Line(Point p1,Point p2):Point((p1.getx()+p2.getx())/2,(p1.gety()+p2.gety())/2)
{
        pts=p1;
        pte=p2;

}
double Line::Lengh()
{
    double x0=pts.getx()-pte.getx();
    double y0=pts.gety()-pte.gety();
    return sqrt(x0*x0+y0*y0);

}
void Line::PrintLine()
{
    cout<<"端點為:"<<endl;
    pts.display();
    pte.display();
    cout<<"長度:"<<Lengh()<<endl;
}
void Line::PrintPoint()
{
    cout<<"("<<(pts.getx()+pte.getx())/2<<","<<(pts.gety()+pte.gety())/2<<")"<<endl;
}
int main()
{
    Point pt(-2,5),pe(7,9);
    Line l(pt,pe);
    l.PrintLine();
    cout<<"\n The middle point of Line: ";
    l.PrintPoint() ;//輸出直線l中點的信息
    return 0;
}

 \

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved