- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c课程设计c课程设计
C++面向对象程序设计基础
【实验简介】学会用算法语言C++描述抽象数据类型,使用模板建立数据结构。理解数据结构的组成分为两部分,第一部分是数据集(数据元素),第二部分是在此数据集上的操作。从面向对象的观点看,这两部分代表了对象的属性和方法。掌握用C++描述数据结构的基本方法,即通过建立类来描述抽象数据类型。类的数据成员提供对象属性,成员函数提供操作方法,方法是公共接口,用户通过调用方法实现对属性的访问。
【实验内容】
定义三维空间的坐标点TPoint
描述三维空间的球TBall,实现其主要操作(如计算体积和表面积,输出空间坐标等)。
【主要代码】
#include<iostream>
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;
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(); //取坐标值
}
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();
system("pause");
}
【实验过程】
【实验体会】
先熟悉老师给的定义点坐标的平面类,然后利用模板类定义球面点坐标类,定义PI的值,根据类实现函数的重载等操作。在定义了球类后,设置一个点作为球的球心,并初始化球心坐标。然后,根据要求,分别设计球体面积和体积的算法公式
您可能关注的文档
- Asterisk权威指南(第3版)中文第15章自动话务员Asterisk权威指南(第3版)中文第15章自动话务员.pdf
- AD详细教程AD详细教程.doc
- ASTM_D3330压敏胶带剥离强度测试标准翻译版ASTM_D3330压敏胶带剥离强度测试标准翻译版.pdf
- AST_中央企业班组长岗位管理能力资格认证(六期)在线测试-0020AST_中央企业班组长岗位管理能力资格认证(六期)在线测试-0020.pdf
- After Effects CS6仿真特效演示及参数完全详解After Effects CS6仿真特效演示及参数完全详解.doc
- ATL 2014年三月公报ATL 2014年三月公报.pdf
- ATM需求分析ATM需求分析.doc
- AT指令详解 二AT指令详解 二.doc
- ATK-NEO-6M GPS模块常见问题汇总ATK-NEO-6M GPS模块常见问题汇总.pdf
- Audacity 音频编辑器教程目录Audacity 音频编辑器教程目录.doc
文档评论(0)