《空间数据结构基础》 课程实习报告(地信12姓名 朱红鑫 班级 地信12-2 学号 07122960
环境与测绘学院
级)
空间数据结构设计
目 录
C++面向对象程序设计基础……………….2 …………..6 ………..13 ……………………………..18 ……………………………………..24
1
实验一:实验三:通讯簿管理(顺序表的应用)实验五:将中缀表达式转换为后缀表达式实验七:二叉树的操作实验九:字符串
空间数据结构设计
1 C++面向对象程序设计基础
【实验简介】学会用算法语言C++描述抽象数据类型,使用模板建立数据结构。理解数据结构的组成分为两部分,第一部分是数据集(数据元素),第二部分是在此数据集上的操作。从面向对象的观点看,这两部分代表了对象的属性和方法。掌握用C++描述数据结构的基本方法,即通过建立类来描述抽象数据类型。类的数据成员提供对象属性,成员函数提供操作方法,方法是公共接口,用户通过调用方法实现对属性的访问。 【实验内容】
1. 定义三维空间的坐标点TPoint
2. 描述三维空间的球TBall,实现其主要操作(如计算体积和表面积,输
出空间坐标等)。
【主要代码】 #include
protected:
double x; //虚拟类型的水平坐标值 double y; //虚拟类型的垂直坐标值 double z; //z坐标 public:
TPoint(){x = 0; y = 0; z = 0; } //缺省构造函数
TPoint(double px, double py,double pz){x = px;y = py;z=pz;} //带参数的构造函数
void move(double mx,double my,double mz){x = mx;y = my;z=mz;} //移动位置(修改坐标值)
void show(){cout<<\输出坐标值
double getx(){return x;} //取x double gety(){return y;}//取y double getz(){return z;}//取z };
#define PI 3.141592653 class TBall:public TPoint {
double r; //定义球半径 public:
TBall(){x=0;y=0;z=0;r=0;} //缺省的构造函数 TBall(double mx,double my,double mz,double mr){x=mx;y=my;z=mz;r=mr;}//有参数的构造函数
TBall(TPoint &p):TPoint(p){r=1;}//用点来决定球心位置,半径默认为1 double set(double sx,double sy,double sz){x=sx;y=sy;z=sz;}//重置球心的坐标
2
空间数据结构设计
double area(){return 4*PI*r*r;} //计算球体表面积 double volume(){return 4/3*PI*r*r*r;}//计算球体体积 void show(); //输出球心坐标
double distance(TPoint &a,TPoint &b);//计算两点的距离或者球心与点、球心与球心之间的距离
void judge(TBall &ma,TPoint &pb);//判断一点与一球的位置关系 };
void TBall::show() {
cout<<\输出球心的坐标
cout<<\输出半径
cout<<\输出表面积 cout<<\输出体积 }
double TBall::distance(TPoint &a,TPoint &b) {
return sqrt((a.getx()-b.getx())*(a.getx()-b.getx())//求两点之间的距离算法
+(a.gety()-b.gety())*(a.gety()-b.gety()) +(a.getz()-b.getz())*(a.getz()-b.getz())); }
void TBall::judge(TBall &ma,TPoint &pb){//判断的实现 if(distance(ma,pb)>ma.r)
cout<<\该点在球外面\ else if(distance(ma,pb)==ma.r) cout<<\该点在球面上\ else
cout<<\该点在球内\}
void main() {
TBall a;//调用缺省的函数
cout<<\球的基本参数为:\ a.show();//调用show函数 TBall b(15,25,36,2);
cout<<\球的基本参数为:\
3
相关推荐: