关闭

第六周任务3

标签: 任务distanceoutputinputclass算法
293人阅读 评论(0) 收藏 举报
实验目的:加强对类的认识。
实验内容:设计平面坐标点类,并进行相应运算。
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:2012                             
* 作    者:王明星                           
* 完成日期:  20112年 03月 27 日
* 版 本 号: 2012         

* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 算法说明:* 程序头部的注释结束(此处也删除了斜杠)
#include <iostream>
#include <cmath>
using namespace std;
enum symmetricstyle{axisx,axisy,point};//枚举
class Cpoint
{
private:
	double x;横//坐标
	double y;//纵坐标
public:
	Cpoint (double xx=0,double yy=00);
          double Distance (Cpoint p)const;//两点之间的距离
	double Distance0() const;//到原点的距离
	Cpoint symmetricaxis(symmetricstyle style) const;//返回对称点
	void input();//输入坐标
	void output();//输出坐标
};
Cpoint::Cpoint(double xx,double yy)
{
	x=xx;
	y=yy;
}
double Cpoint::Distance(Cpoint p)const
{
	return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
}
double Cpoint::Distance0()const
{
	return sqrt(x*x+y*y);
}
Cpoint Cpoint::symmetricaxis(symmetricstyle style)const
{
	Cpoint p(x,y);
	switch (style)
	{
	case axisx:p.y=-y;break;
	case axisy:p.x=-x;break;
	case point:p.x=-x;p.y=-y;
	}
	return p;
}
void Cpoint::input()
{
	char ch;
	while (1)
	{
		cin>>x>>ch>>y;
		if(ch!=',')
			cout<<"格式不正确,请重新输入! "<<endl;
		else
			break;
	}
}
void Cpoint::output()
{
	cout<<'('<<x<<','<<y<<')'<<endl;
}
void main()
{
	Cpoint p1,p2,p;
	cout<<"请输入第一个点!";
	p1.input();
	cout<<"请输入第二个点!";
	p2.input();
	double distance=p1.Distance(p2);
	cout<<"两点之间的距离为:"<<distance<<endl;
	p=p1.symmetricaxis(axisx);
	p.output();
	p=p2.symmetricaxis(axisy);
	p.output();
	p=p2.symmetricaxis(point);
	p.output();
	distance=p2.Distance0();
	cout<<"到原点的距离为:"<<distance<<endl;
}


上机感言;通过对类得学习,我发现了在面向过程和面向对象之间他们是有差别的,我觉得面向对象根据有实际的应用价值,操作起来更方便!

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:35494次
    • 积分:863
    • 等级:
    • 排名:千里之外
    • 原创:53篇
    • 转载:3篇
    • 译文:1篇
    • 评论:9条
    最新评论