前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【程序填空】点距离计算(单继承)

【程序填空】点距离计算(单继承)

作者头像
叶茂林
发布2023-07-30 09:54:32
1480
发布2023-07-30 09:54:32
举报
文章被收录于专栏:叶子的开发者社区

题目描述

完成一维点类Point、二维平面点类Point_2D、三维空间点类Point_3D的类定义的程序填空。

并根据主函数要求完成每个点到原点的距离结果输出。

假设所有点坐标都是整数,输出的距离结果要求精确到小数点后2位。

类声明

#include"iostream" #include<iomanip> #include<cmath> using namespace std; class Point {     protected:         int x;     public:         Point(int);         void distance(); }; class Point_2D:public Point {     protected:         int y;     public:         Point_2D(int,int);         void distance();     }; class Point_3D:public Point_2D {     protected:         int z;     public:         Point_3D(int,int,int);         void distance(); };

主函数

int main() {     int num,tx,ty,tz;     cin>>num;     while(num)     {         switch(num)         {             case 1:                 {                     cin>>tx;                     Point p1(tx);                     p1.distance();                     break;                 }             case 2:                 {                     cin>>tx>>ty;                     Point_2D p2(tx,ty);                     p2.distance();                     break;                 }             case 3:                 {                     cin>>tx>>ty>>tz;                     Point_3D p3(tx,ty,tz);                     p3.distance();                     break;                 }         }         cin>>num;     } } 

输入

每行输入一个点的信息,第一个参数表示点的维度,后面参数表示点坐标数值

以输入0结束

输出

输出每个点到原点的距离具体看样例

输入样例1

1 -3 2 2 3 3 3 4 5 0

输出样例1

Distance between [-3] and [0] = 3.00 Distance between [2, 3] and [0, 0] = 3.61 Distance between [3, 4, 5] and [0, 0, 0] = 7.07

思路分析

这道题唯一吸引人的地方就在于只有当你本地跑出理想结果,满怀信心地提交代码却意味看到答案错误的抓狂,你是无论如何都想不到,会有那么多奇奇怪怪不应该存在的空格在输出中,然而,就是少了空格。

AC代码 

代码语言:javascript
复制
Point::Point(int x):x(x){}
void Point::distance()
{
	float dist=x*x;
	cout<<"Distance between ["<<x<<"] and [0] = "<<fixed<<setprecision(2)<<sqrt(dist)<<endl; 
}
Point_2D::Point_2D(int x,int y):Point(x),y(y){}
void Point_2D::distance()
{
	float dist=x*x+y*y;
	cout<<"Distance between ["<<x<<", "<<y<<"] and [0, 0] = "<<fixed<<setprecision(2)<<sqrt(dist)<<endl; 
}
Point_3D::Point_3D(int x,int y,int z):Point_2D(x,y),z(z){}
void Point_3D::distance()
{
	float dist=x*x+y*y+z*z;
	cout<<"Distance between ["<<x<<", "<<y<<", "<<z<<"] and [0, 0, 0] = "<<fixed<<setprecision(2)<<sqrt(dist)<<endl; 
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 思路分析
  • AC代码 
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档