程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 點派生出線1

點派生出線1

編輯:C++入門知識

[cpp]
/* 
* Copyright (c) 2013, 煙台大學計算機學院                     
* All rights reserved.                     
* 文件名稱:test.cpp                     
* 作者:邱學偉                    
* 完成日期:2013 年 5 月 10 日                     
* 版本號: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) {}; 
    void PrintPoint(); //輸出點的信息  
    double x,y;   //數據成員,表示點的橫坐標和縱坐標  
}; 
void Point::PrintPoint() 

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

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

public: 
    Line(Point pt1, Point pt2); //構造函數,初始化直線的兩個端點及由基類數據成員描述的中點  
    double Length();    //計算並返回直線的長度  
    void PrintLine();  //輸出直線的兩個端點和直線長度  
    void PrintPoint(); 
private: 
    class Point pts,pte;   //直線的兩個端點  
}; 
//下面定義Line類的成員函數  
Line::Line(Point pt1,Point pt2) 

    pts=pt1; 
    pte=pt2; 
 

double Line::Length() 

    double d; 
    d=sqrt((pts.x-pte.x)*(pts.x-pte.x)-(pts.y-pts.y)*(pts.y-pts.y)); 
    cout<<"長度:"<<d; 
    return 0; 
 

void Line::PrintPoint() 

    cout<<"Point:("<<(pts.x+pte.x)/2<<","<<(pts.y+pte.y)/2<<")"<<endl; 

void Line::PrintLine() 

    Point p1,p2; 
    p1=pte; 
    p2=pts; 
    cout<<"端點:"<<endl; 
    p1.PrintPoint(); 
    cout<<" "; 
    p2.PrintPoint(); 

int main() 

    Point ps(-2,5),pe(7,9); 
    Line l(ps,pe); 
    l.PrintLine(); 
    cout<<endl; 
    l.Length();//輸出直線l的信息(請補全代碼)  
    cout<<endl; 
    cout<<"The middle point of Line: "; 
    l.PrintPoint();//輸出直線l中點的信息(請補全代碼)  

/*
* Copyright (c) 2013, 煙台大學計算機學院                    
* All rights reserved.                    
* 文件名稱:test.cpp                    
* 作者:邱學偉                   
* 完成日期:2013 年 5 月 10 日                    
* 版本號: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) {};
    void PrintPoint(); //輸出點的信息
    double x,y;   //數據成員,表示點的橫坐標和縱坐標
};
void Point::PrintPoint()
{
    cout<<"Point:("<<x<<","<<y<<")";    //輸出點
}


class Line: public Point   //利用坐標點類定義直線類, 其基類的數據成員表示直線的中點
{
public:
    Line(Point pt1, Point pt2); //構造函數,初始化直線的兩個端點及由基類數據成員描述的中點
    double Length();    //計算並返回直線的長度
    void PrintLine();  //輸出直線的兩個端點和直線長度
    void PrintPoint();
private:
    class Point pts,pte;   //直線的兩個端點
};
//下面定義Line類的成員函數
Line::Line(Point pt1,Point pt2)
{
    pts=pt1;
    pte=pt2;

}
double Line::Length()
{
    double d;
    d=sqrt((pts.x-pte.x)*(pts.x-pte.x)-(pts.y-pts.y)*(pts.y-pts.y));
    cout<<"長度:"<<d;
    return 0;

}
void Line::PrintPoint()
{
    cout<<"Point:("<<(pts.x+pte.x)/2<<","<<(pts.y+pte.y)/2<<")"<<endl;
}
void Line::PrintLine()
{
    Point p1,p2;
    p1=pte;
    p2=pts;
    cout<<"端點:"<<endl;
    p1.PrintPoint();
    cout<<" ";
    p2.PrintPoint();
}
int main()
{
    Point ps(-2,5),pe(7,9);
    Line l(ps,pe);
    l.PrintLine();
    cout<<endl;
    l.Length();//輸出直線l的信息(請補全代碼)
    cout<<endl;
    cout<<"The middle point of Line: ";
    l.PrintPoint();//輸出直線l中點的信息(請補全代碼)
}

 

\ 

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