c++课程设计c++课程设计.doc
文本预览下载声明
C++面向对象程序设计基础
【实验简介】学会用算法语言C++描述抽象数据类型,使用模板建立数据结构。理解数据结构的组成分为两部分,第一部分是数据集(数据元素),第二部分是在此数据集上的操作。从面向对象的观点看,这两部分代表了对象的属性和方法。掌握用C++描述数据结构的基本方法,即通过建立类来描述抽象数据类型。类的数据成员提供对象属性,成员函数提供操作方法,方法是公共接口,用户通过调用方法实现对属性的访问。
【实验内容】
定义三维空间的坐标点TPoint
描述三维空间的球TBall,实现其主要操作(如计算体积和表面积,输出空间坐标等)。
【主要代码】
#includeiostream
using namespace std;
#define PI 3.1415926 //定义PI的值
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 getx(){return x;}//返回坐标点的x值
T gety(){return y;}//返回坐标点的y值
T getz(){return z;}//返回坐标点的值
T Tpointmove(T mx,T my,T mz)
{x+=mx;
y+=my;
z+=mz;//移动位置(修改坐标值)
}
void input()
{cout请分别输入点的坐标x,y,z的值:endl;
cinxyz;
}
void output()
{
cout(x,y,z)endl;
}
TpointT operator=(TpointT p1);
};
template class T
TpointT::TpointT(TpointT p1)
{
x=p1.getx();
y=p1.getx();
z=p1.getz(); //取坐标值
}
template class T
TpointT TpointT::operator =(TpointT p2)
{
x=p2.getx();
y=p2.getx();
z=p2.getz();
return *this;
}
template class T
class Tball
{
private:
TpointT m;
double radius;
public:
TballT()
{ radius=0;}
TballT(TpointT 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;
cinradius;
}
void setTpoint()
{
cout请输入球的圆心坐标endl;
m.input();
}
void output()
{
cout球的圆心坐标为;
m.output();
cout球的半径为radiusendl;
}
void Tballmove(T mx,T my,T mz)
{ m.Tpointmove(mx,my,mz);}
};
void main()
{
Tballdouble x1;
x1.setradius();
x1.setTpoint();
cout球的表面积为x1.area()endl;
cout球的体积为x1.volume()endl;
x1.output();
system(pause);
}
【实验过程】
【实验体会】
先熟悉老师给的定义点坐标的平面类,然后利用模板类定义球面点坐标类,定义PI的值,根据类实现函数的重载等操作。在定义了球类后,设置一个点作为球的球心,并初始化球心坐标。然后,根据要求,分别设计球体面积和体积的算法公式。虽然这是一个比较简单的程序设计,但刚开始时,我基本上是无从下手,再看了模板类后,我照着编了一个,然后经过不断的调试,我终于完成了第一个程序,自豪感油然而生。
3 通讯簿管理【问题描述】通讯簿是一个线性表,可以存储一定数量的联系人记录,提供查
显示全部