第七周实验报告任务二

/* (程序头部注释开始)  
* 程序的版权和版本声明部分 
 
* Copyright (c) 2011, 烟台大学计算机学院学生  
 
* All rights reserved.* 文件名称:用三种函数求距离 
 
* 作 者: 郭岩岩 
 
* 完成日期:2012 年4 月 2日 
 
* 版 本 号: vc.1 
 
* 对任务及求解方法的描述部分 
 
* 输入描述:  
 
* 问题描述:  
 
* 程序输出:  
 
*程序头部的注释结束 
 
 */  

#include<iostream>
#include<Cmath>
using namespace std;
class Cpoint  
{private:  
    double x;  // 横坐标  
    double y;  // 纵坐标  
 public: 
    Cpoint(double xx=0,double yy=0):x(xx),y(yy){}  
    double distance(Cpoint &p);
    void input();
    void output();
	friend double distance2 (Cpoint &p,Cpoint &p1);
	double get_x(){return x;}
	double get_y(){return y;}
};
double distance3 (Cpoint &p1,Cpoint &p2);


double Cpoint::distance(Cpoint &p)
{  
    double d;  
    d=sqrt((p.x -x)*(p.x -x)+(p.y -y)*(p.y-y));  
      
    cout<<"distance1:两点之间的距离为:"<<d<<endl;  
    return d;  
}
 double distance2 (Cpoint &p1,Cpoint &p2)
 {

	 double d;  
	 d=sqrt((p1.x -p2.x)*(p1.x -p2.x)+(p1.y -p2.y)*(p1.y-p2.y));  
	 
	 cout<<"distance2:两点之间的距离为:"<<d<<endl;  
	 return d;  
 }
double distance3 (Cpoint &p1,Cpoint &p2)
{
	double a,b,d;
	a=(p1.get_x()-p2.get_x())*(p1.get_x()-p2.get_x());
	b=(p1.get_y()-p2.get_y())*(p1.get_y()-p2.get_y());
	d=sqrt(a+b);
    cout<<"distance3:两点之间的距离为:"<<d<<endl;
	return d;
}
void Cpoint::input()  
{  
    bool point;    
    point=true;    
    cout<<"请输入一个点的横纵坐标:(以“x,y”的形式输入)";    
    char c;    
    while(point)    
	{    
       cin>>x>>c>>y;    
        if(c!=',')    
        {    
            cout<<"格式不正确,请从新输入。";    
        }    
        else    
        {    
            point=false;    
        }    
    }    
}    
void Cpoint::output()  
{  
    cout<<"("<<x<<","<<y<<")"<<endl;  
}  
void main()  
{  
   Cpoint C1,C2;  
    C1.input ();  
    C1.output ();    
    C2.input ();  
    C2.output ();    
    C1.distance(C2);
	distance2(C1,C2);
	distance3(C1,C2);
     
}  

上级感言:代码不可貌相微笑

经验积累:在函数的参数中使用引用变量是个不错的选择

                    友元函数可以直接访问私有成员


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值