当前位置:编程学习 > C/C++ >>

2013第六周上机任务[项目3 点类]

[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;

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,