C++编程题目 急求答案

C++编程题目急求答案1.编一个使用派生类的程序,使一个包含圆和圆柱的几何尺寸的类,它使用内部数据建立几何形状并显示它们的尺寸.面积和体积。2.设计一个平面几何中点的位置... C++编程题目 急求答案
1.编一个使用派生类的程序,使一个包含圆和圆柱的几何尺寸的类,它使用内部数据建立几何形状并显示它们的尺寸.面积和体积。
2.设计一个平面几何中点的位置类position,该类至少提供移动,求到另一点的距离(包括到原点的距离),求x坐标,求y坐标等操作。编一主函数检查它们。
展开
 我来答
moxsone
2010-11-03 · TA获得超过3331个赞
知道大有可为答主
回答量:2796
采纳率:50%
帮助的人:1491万
展开全部
/*
1.编一个使用派生类的程序,使一个包含圆和圆柱的几何尺寸的类,
它使用内部数据建立几何形状并显示它们的尺寸.面积和体积。
2.设计一个平面几何中点的位置类position,该类至少提供移动,
求到另一点的距离(包括到原点的距离),求x坐标,求y坐标等
操作。编一主函数检查它们。
*/

#include <stdio.h>
#include <math.h>

//圆类
class Circle
{
public:
float r;//半径
public:
//获取面积
float GetArea()
{
return 3.14159265 * r * r;
}
//输出半径,面积
virtual void ShowMsg()
{
printf("圆的半径为 %f ,面积为 %f\n",r,GetArea());
}
};

//圆柱类,从圆派生,多一个高度
class Cylinder : public Circle
{
public:
float h;//高
public:
//获取体积
float GetVolume()
{
//底面积乘高
return GetArea() * h;
}
//输出底面半径,底面积,高,体积
virtual void ShowMsg()
{
printf("圆柱的底面半径为 %f ,底面积为 %f ,高为 %f ,体积为 %f\n",
r,
GetArea(),
h,
GetVolume());
}
};

//平面内几何点Position类
class Position
{
private:
float x;//X坐标
float y;//Y坐标
public:
//设置X坐标
void SetX(float newX)
{
x = newX;
}
//设置Y坐标
void SetY(float newY)
{
y = newY;
}
//获取X及Y坐标
float GetX()
{
return x;
}
float GetY()
{
return y;
}
//计算到另外一个点的距离
float dist(Position b)
{
return sqrt( pow(b.x - x,2) + pow(b.y - y,2) );
}
};

void main(void)
{
//定义圆
Circle aCircle;
//定义圆柱
Cylinder aCylinder;

//设置圆的半径
aCircle.r = 3;
//输出圆的信息
aCircle.ShowMsg();

//设置圆柱底圆半径
aCylinder.r = 4;
//设置圆柱高
aCylinder.h = 5;
//输出圆柱的信息
aCylinder.ShowMsg();

//原点:
Position P1;
P1.SetX(0.0);
P1.SetY(0.0);
//X坐标为4,Y坐标为3的点,根据勾股定理可以知道,它到原点的距离为5,可以验证程序正确性
Position P2;
P2.SetX(4);
P2.SetY(3);
//求P2到P1的距离
printf("P2(%f,%f)到P1(%f,%f)的距离为%f\n",P2.GetX(),P2.GetY(),P1.GetX(),P1.GetY(),P2.dist(P1));
//也可以设置P2的坐标为第二象限的(-4,3)点来验证
P2.SetX(-4);
P2.SetY(3);
//求P2到P1的距离
printf("P2(%f,%f)到P1(%f,%f)的距离为%f\n",P2.GetX(),P2.GetY(),P1.GetX(),P1.GetY(),P2.dist(P1));
//第三象限及第四象限同理
P2.SetX(-4);
P2.SetY(-3);
//求P2到P1的距离
printf("P2(%f,%f)到P1(%f,%f)的距离为%f\n",P2.GetX(),P2.GetY(),P1.GetX(),P1.GetY(),P2.dist(P1));
P2.SetX(4);
P2.SetY(-3);
//求P2到P1的距离
printf("P2(%f,%f)到P1(%f,%f)的距离为%f\n",P2.GetX(),P2.GetY(),P1.GetX(),P1.GetY(),P2.dist(P1));

getchar();
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式