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