三维空间的坐点TPointC++程序.docx
三维空间的坐点TPoint C+程序1 C+面向对象程序设计基础 学会用算法语言C+描述抽象数据类型,使用模板建立数据结构。理解数据结构的组成分为两部分,第一部分是数据集,第二部分是在此数据集上的操作。从面向对象的观点看,这两部分代表了对象的属性和方法。掌握用C+描述数据结构的基本方法,即通过建立类来描述抽象数据类型。类的数据成员提供对象属性,成员函数提供操作方法,方法是公共接口,用户通过调用方法实现对属性的访问。 1. 定义三维空间的坐标点TPoint 2. 描述三维空间的球TBall,实现其主要操作。 #include<iostream.h> #define PI 3.1415926 template <class T> class Tpoint private: T x,y,z; public: Tpoint x=0;y=0;z=0; Tpoint(T a,T b,T c) x=a;y=b;z=c; Tpoint(Tpoint &a); T getxreturn x; T getyreturn y; T getzreturn z; T Tpointmove(T mx,T my,T mz) x+=mx;y+=my;z+=mz; void input cout<<"请输分别输入点的坐标x,y,z的值:"<<endl; cin>>x>>y>>z; void output cout<<"("<<x<<","<<y<<","<<z<<")"<<endl; Tpoint<T> operator=(Tpoint<T> &p1); ; template <class T> Tpoint<T>:Tpoint<T>(Tpoint<T> &p1) x=p1.getx; y=p1.getx; z=p1.getz; 1 template <class T> Tpoint<T> Tpoint<T>:operator =(Tpoint<T> &p2) x=p2.getx; y=p2.getx; z=p2.getz; return *this; template <class T> class Tball private: Tpoint<T> m; double radius; public: Tball<T> radius=0; Tball<T>(Tpoint<T> & zx,T zy) m=zx; radius=zy; T volume return (4.0/3)*PI*radius*radius*radius; T area return 4*PI*radius*radius; void setradius cout<<"设置球的半径:"<<endl; cin>>radius; void setTpoint cout<<"设置球的圆心坐标:"<<endl; m.input; void output cout<<"球的圆心坐标为:" m.output; cout<<"球的半径为:"<<radius<<endl; void Tballmove(T mx,T my,T mz) m.Tpointmove(mx,my,mz); ; void main Tball<double> x1; x1.setradius; x1.setTpoint; cout<<"球的表面积为:"<<x1.area<<endl; cout<<"球的体积为:"<<x1.volume<<endl; x1.output; 设置球的半径 5.89 设置球的贺心坐标: 请分别输入点的坐标x,y,z的值: 1 2 3 球的表面积为:435.954 球的体积为:855.923 球的圆心坐标为: 球的半径为:5.89 Press any key to continue 首先要弄清楚球与点的关系,点是球的一个属性,所以在定义球类的时候不能用球继承点的类。而是在球的属性值中,设置一个点作为圆心坐标。 在球的构造函数时需要对球心进心初始化,为了方便球心初始化对点类进行了“”号重载。 2