B. 三维空间的点(继承)

编程入门 行业动态 更新时间:2024-10-09 14:25:16

B. 三维<a href=https://www.elefans.com/category/jswz/34/1771407.html style=空间的点(继承)"/>

B. 三维空间的点(继承)

题目描述定义一个平面上的点C2D类,它含有一个getDistance()的成员函数,计算该点到原点的距离;从C2D类派生出三维空间的点C3D类,它的getDistance()成员函数计算该点到原点的距离。试分别生成一个C2D和C3D的对象,计算它们到原点的距离。
三维空间的两点(x, y, z)和(x1, y1, z1)的距离公式如下:
[(x-x1)^2+(y-y1)^2+(z-z1)^2]^(1/2) 输入第一行二维坐标点位置第二行三维坐标点位置1第三行三维坐标点位置2输出第一行二维坐标点位置到原点的距离第二行三维坐标点位置1到原点的距离第三行三维坐标点位置2到原点的距离第四行三维坐标点位置2赋值给二维坐标点变量后,二维坐标点到原点的距离输入样例1 
3 4
3 4 5
6 8 8输出样例1
5
7.07107
12.8062
10

该题主要考察简单的类继承操作

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
#include <iomanip>
#include<cmath>
#include<cstring>
#include<cctype>
#include<queue>
#include<set>
using namespace std;class c2d
{
protected:double x, y;
public:c2d(double xx, double yy);double getdistance1();
};class c3d :public c2d
{
protected:double z;
public:c3d(double x, double y, double z);double getdistance2();
};double c3d::getdistance2()
{return sqrt((x) * (x) + (y) * (y) + (z) * (z));
}c3d::c3d(double x, double y, double z) :c2d(x, y)
{this->z = z;
}c2d::c2d(double xx, double yy)
{x = xx;y = yy;
}double c2d::getdistance1()
{return sqrt(x * x + y * y);
}int main()
{double x1, y1, z1, x2, y2, z2 ;cin >> x1 >> y1;c2d p1(x1, y1);cout << fixed << setprecision(0) << p1.getdistance1() << endl;cin >> x1 >> y1 >> z1;c3d p2(x1, y1, z1);cout << fixed << setprecision(5) << p2.getdistance2() << endl;cin >> x1 >> y1 >> z1;c3d p3(x1, y1, z1);cout << fixed << setprecision(4) << p3.getdistance2() << endl;cout << fixed << setprecision(0) << p3.getdistance1() << endl;return 0;
}

更多推荐

B. 三维空间的点(继承)

本文发布于:2023-06-19 16:05:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/787929.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:空间

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!