程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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 月 21 日                       
* 版本號:v1.0                                          
* 輸入描述:無                       
* 問題描述:點類派生直線類                   
* 程序輸出:  
* 問題分析:                      
* 算法設計:略                       
*/          
 
#include<iostream>  
#include<Cmath>  
using namespace std; 
class Point //定義坐標點類  

public: 
    Point():x(0),y(0) {}; 
    Point(double x0, double y0):x(x0), y(y0) {}; 
    double getX() 
    { 
        return x; 
    } 
    double getY() 
    { 
        return y; 
    } 
    void PrintPoint(); //輸出點的信息  
private: 
    double x,y;   //點的橫坐標和縱坐標  
}; 
void Point::PrintPoint() 

    cout<<"Point:("<<x<<","<<y<<")";    //輸出點  

 
class Line: public Point   //利用坐標點類定義直線類, 其基類的數據成員表示直線的中點  

public: 
    Line(Point pts, Point pte);  //構造函數,用初始化直線的兩個端點及由基類數據成員描述的中點  
    double Length();    //計算並返回直線的長度  
    void PrintLine();   //輸出直線的兩個端點和直線長度  
private: 
    class Point pts,pte;   //直線的兩個端點  
}; 
//構造函數,分別用初始化直線的兩個端點及由基類數據成員(屬性)描述的中點  
Line::Line(Point pt1, Point pt2):Point((pt1.getX()+pt2.getX())/2,(pt1.getY()+pt2.getY())/2) 

    pts=pt1; 
    pte=pt2; 

double Line::Length()  //計算並返回直線的長度  

    double d; 
    double dx = pts.getX() - pte.getX(); 
    double dy =pts.getY() - pte.getY(); 
     d=sqrt(dx*dx+dy*dy); 
     return d; 

void Line::PrintLine() 

    cout<<" 1st "; 
    pts.PrintPoint(); 
    cout<<"\n 2nd "; 
    pte.PrintPoint(); 
    cout<<"\n The Length of Line: "<<Length()<<endl; 

int main() 

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

/*  
* Copyright (c) 2013, 煙台大學計算機學院                      
* All rights reserved.                      
* 文件名稱:test.cpp                      
* 作者:劉清遠                  
* 完成日期:2013 年 5 月 21 日                      
* 版本號:v1.0                                         
* 輸入描述:無                      
* 問題描述:點類派生直線類                  
* 程序輸出: 
* 問題分析:                     
* 算法設計:略                      
*/        

#include<iostream>
#include<Cmath>
using namespace std;
class Point //定義坐標點類
{
public:
    Point():x(0),y(0) {};
    Point(double x0, double y0):x(x0), y(y0) {};
    double getX()
    {
        return x;
    }
    double getY()
    {
        return y;
    }
    void PrintPoint(); //輸出點的信息
private:
    double x,y;   //點的橫坐標和縱坐標
};
void Point::PrintPoint()
{
    cout<<"Point:("<<x<<","<<y<<")";    //輸出點
}

class Line: public Point   //利用坐標點類定義直線類, 其基類的數據成員表示直線的中點
{
public:
    Line(Point pts, Point pte);  //構造函數,用初始化直線的兩個端點及由基類數據成員描述的中點
    double Length();    //計算並返回直線的長度
    void PrintLine();   //輸出直線的兩個端點和直線長度
private:
    class Point pts,pte;   //直線的兩個端點
};
//構造函數,分別用初始化直線的兩個端點及由基類數據成員(屬性)描述的中點
Line::Line(Point pt1, Point pt2):Point((pt1.getX()+pt2.getX())/2,(pt1.getY()+pt2.getY())/2)
{
    pts=pt1;
    pte=pt2;
}
double Line::Length()  //計算並返回直線的長度
{
    double d;
    double dx = pts.getX() - pte.getX();
    double dy =pts.getY() - pte.getY();
     d=sqrt(dx*dx+dy*dy);
     return d;
}
void Line::PrintLine()
{
    cout<<" 1st ";
    pts.PrintPoint();
    cout<<"\n 2nd ";
    pte.PrintPoint();
    cout<<"\n The Length of Line: "<<Length()<<endl;
}
int main()
{
    Point ps(-2,5),pe(7,9);
    Line l(ps,pe);
    l.PrintLine();//輸出直線l的信息
    cout<<"\n The middle point of Line: ";
    l.PrintPoint() ;//輸出直線l中點的信息
    return 0;
}

 \

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