文档详情

c++课程设计c++课程设计.doc

发布:2017-12-15约1.62万字共28页下载文档
文本预览下载声明
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 通讯簿管理【问题描述】通讯簿是一个线性表,可以存储一定数量的联系人记录,提供查
显示全部
相似文档