程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 2013第六周上機任務[項目3 點類]

2013第六周上機任務[項目3 點類]

編輯:C++入門知識

[cpp] 
/* 
* Copyright (c) 2013, 煙台大學計算機學院                     
* All rights reserved.                     
* 文件名稱:test.cpp                     
* 作者:樊露露                    
* 完成日期:2013 年 4 月 8 日                     
* 版本號:v1.0                   
*                     
* 輸入描述:無                     
* 問題描述:                  
* 程序輸出:
 * 問題分析:                    
* 算法設計:略                     
*/          
#include<iostream>  
#include<Cmath>  
using namespace std; 
class CPoint 

private: 
    double x;//橫坐標  
    double y;//縱坐標  
public: 
    CPoint(double xx=0,double yy=0); 
    double Distance(CPoint p) const;//兩點之間的距離(一點是當前點,另一點為參數p)  
    double Distance0() const;//到原點之間的距離  
    CPoint SymmetrcAxis(char style) const;//style取'x','y'和'o'分別表示按x軸,y軸,原點對稱  
    void input();//以(x,y)形式輸入坐標  
    void output();//以(x,y)形式輸出坐標  
} ; 
CPoint::CPoint(double xx,double yy){ 
    x=xx; 
    y=yy; 

void CPoint::input(){ 
    char ch;   
    cout<<"請輸入坐標點格式(x,y ):";   
    while(1)   
    {   
      cin>>x>>ch>>y;   
      if (ch==',') break;   
      cout<<"輸入的數據格式不符合規范,請重新輸入\n";   
    }   
 

void CPoint::output(){ 
    cout<<"點的坐標為:"<<"("<<x<<","<<y<<")"; 

double CPoint::Distance(CPoint p)const{ 
    return sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y)); 

double CPoint::Distance0()const{ 
    return sqrt(x*x+y*y); 

CPoint CPoint::SymmetrcAxis(char style)const{ 
    CPoint p(this->x,this->y); 
    switch(style){ 
    case'x': 
        p.y=-y; 
        break; 
    case'y': 
        p.x=-x; 
        break; 
    case'o': 
        p.y=-y; 
        p.x=-x; 
        break; 
    } 
    return p; 

int main(){ 
    double d; 
    CPoint p1,p2,p; 
    cout<<"第一個點:"; 
    p1.input(); 
    cout<<"第二個點:"; 
    p2.input(); 
    d=p1.Distance(p2); 
    cout<<"p1,p2之間的距離為:"<<d<<endl; 
    d=p1.Distance0(); 
    cout<<"p1到原點的距離為:"<<d<<endl; 
    p=p1.SymmetrcAxis('x'); 
    cout<<"p1關於x軸對稱的點為:"; 
    p.output(); 
    cout<<endl; 
    p=p1.SymmetrcAxis('y'); 
    cout<<"p1關於y軸對稱的點為:"; 
    p.output(); 
    cout<<endl; 
    p=p1.SymmetrcAxis('o'); 
    cout<<"p1關於原點對稱的點為:"; 
    p.output(); 
    cout<<endl; 
    return 0; 

/*
* Copyright (c) 2013, 煙台大學計算機學院                    
* All rights reserved.                    
* 文件名稱:test.cpp                    
* 作者:樊露露                   
* 完成日期:2013 年 4 月 8 日                    
* 版本號:v1.0                  
*                    
* 輸入描述:無                    
* 問題描述:                 
* 程序輸出:
 * 問題分析:                   
* 算法設計:略                    
*/        
#include<iostream>
#include<Cmath>
using namespace std;
class CPoint
{
private:
 double x;//橫坐標
 double y;//縱坐標
public:
 CPoint(double xx=0,double yy=0);
 double Distance(CPoint p) const;//兩點之間的距離(一點是當前點,另一點為參數p)
 double Distance0() const;//到原點之間的距離
 CPoint SymmetrcAxis(char style) const;//style取'x','y'和'o'分別表示按x軸,y軸,原點對稱
 void input();//以(x,y)形式輸入坐標
 void output();//以(x,y)形式輸出坐標
} ;
CPoint::CPoint(double xx,double yy){
 x=xx;
 y=yy;
}
void CPoint::input(){
 char ch; 
    cout<<"請輸入坐標點格式(x,y ):"; 
    while(1) 
 { 
      cin>>x>>ch>>y; 
      if (ch==',') break; 
      cout<<"輸入的數據格式不符合規范,請重新輸入\n"; 
 } 

}
void CPoint::output(){
 cout<<"點的坐標為:"<<"("<<x<<","<<y<<")";
}
double CPoint::Distance(CPoint p)const{
 return sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));
}
double CPoint::Distance0()const{
 return sqrt(x*x+y*y);
}
CPoint CPoint::SymmetrcAxis(char style)const{
 CPoint p(this->x,this->y);
 switch(style){
 case'x':
  p.y=-y;
  break;
 case'y':
  p.x=-x;
  break;
 case'o':
  p.y=-y;
  p.x=-x;
  break;
 }
 return p;
}
int main(){
 double d;
 CPoint p1,p2,p;
 cout<<"第一個點:";
 p1.input();
 cout<<"第二個點:";
 p2.input();
 d=p1.Distance(p2);
 cout<<"p1,p2之間的距離為:"<<d<<endl;
 d=p1.Distance0();
 cout<<"p1到原點的距離為:"<<d<<endl;
 p=p1.SymmetrcAxis('x');
 cout<<"p1關於x軸對稱的點為:";
 p.output();
 cout<<endl;
 p=p1.SymmetrcAxis('y');
 cout<<"p1關於y軸對稱的點為:";
 p.output();
 cout<<endl;
 p=p1.SymmetrcAxis('o');
 cout<<"p1關於原點對稱的點為:";
 p.output();
 cout<<endl;
 return 0;
}
 \

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