实验目的:加强对类的认识。
实验内容:设计平面坐标点类,并进行相应运算。
* 程序头部注释开始
* 程序的版权和版本声明部分
* 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;
}
上机感言;通过对类得学习,我发现了在面向过程和面向对象之间他们是有差别的,我觉得面向对象根据有实际的应用价值,操作起来更方便!