6-10 万有引力 - C/C++ 操作符重载
6-10 万有引力 - C/C++ 操作符重载
分数 15
作者 海洋饼干叔叔
单位 重庆大学
Particle类型用于表示处于三维空间中的质点,其包括如下成员:① 三个浮点数成员x、y和z表示质点在三维空间中的坐标;② 浮点数成员mass表示质点的质量;③ 接受空间坐标和质量参数的构造函数;④ 自定义operator-()操作符函数用于计算两个质点间的万有引力,即表达式p1 – p2调用执行p1的operator-()操作符函数,计算质点p1和p2间的万有引力。
万有引用公式F = GMm/r²中,万有引力常数G = 6.67×10-11N·m²/kg²。
请依据上述描述,设计Particle类,使得下述代码能正常执行。
注意:天文数字都很大,建议浮点数全部采用long double类型。
裁判测试程序样例:
#include <iostream>
#include <cmath>
using namespace std;//在此处定义Particle类及其重载operator+()操作符函数int main()
{long double x, y, z, mass;cin >> x >> y >> z >> mass;Particle p1(x,y,z,mass);cin >> x >> y >> z >> mass;const Particle p2(x,y,z,mass);long double force = p1 - p2;printf("Gravity between two objects = %.1Lf N",force);return 0;
}
输入样例:
0 0 0 5.965e15
0 0 38400000 7.342e14
输出样例:
Gravity between two objects = 198101.7 N
说明:输入输出中的所有数据均为标准单位,坐标为米,质量为kg。
请注意:函数题只需要提交相关代码片段,不要提交完整程序。
解题代码
long double G = 6.67e-11;
class Particle
{public:long double p_x, p_y, p_z, p_mass, result;Particle(long double x, long double y, long double z, long double mass);long double operator-(const Particle& p2){long double r;//计算两质点间的距离 rr = pow(this->p_x - p2.p_x, 2) + pow(this->p_y - p2.p_y,2) + pow(this->p_z - p2.p_z, 2);this->result = G * this->p_mass * p2.p_mass / r;return this->result;}
};
Particle::Particle(long double x, long double y, long double z, long double mass)
{p_x = x;p_y = y;p_z = z;p_mass = mass;
}
6-10 万有引力 - C/C++ 操作符重载相关推荐
- c++语言将任意进制转化10进制,C++ 基础编程之十进制转换为任意进制及操作符重载...
C++ 基础编程之十进制转换为任意进制及操作符重载 最近学习C++ 的基础知识,完成十进制转换为任意进制及操作符重载,在网上找的不错的资料,这里记录下, 实例代码: #include #include ...
- 10. C++操作符重载
在介绍C++中操作符重载之前,先介绍下C++标准库. 一.C++标准库 1. C++标准库并不是C++语言的一部分: 2. C++标准库是由C++语言编写而成的类库和函 ...
- C++拾趣——有趣的操作符重载
操作符重载是C++语言中一个非常有用的特性.它可以让我们比较优雅的简化代码,从而更加方便的编写逻辑. 为什么要使用操作符重载 一种常见的用法是重载<<运算符,让标准输出可以输出自定义的类型 ...
- C++——构造函数(拷贝构造,拷贝复制),析构函数,操作符重载
C++--构造函数(拷贝构造,拷贝复制),析构函数,操作符重载 构造函数与析构函数:: 涉及构造函数还可以看这篇文章C++搞懂深拷贝初始化=与赋值=的区别 1.声明和定义构造函数和析构函数 构造函数在 ...
- 【Groovy】map 集合 ( map 集合操作符重载 | + 操作符重载 | 代码示例 )
文章目录 一.map 集合 " + " 操作符重载 二.代码示例 一.map 集合 " + " 操作符重载 对 map 集合使用 " + " ...
- C++中逗号操作符重载的分析
1,关注逗号操作符重载后带来的变化: 2,逗号操作符: 1,逗号操作符(,)可以构成都好表达式:exp1, exp2, exp3, ..., expN 1,逗号表达式用于将多个表达式连接为一个表达式: ...
- 泛型与操作符重载杂谈
泛型基础 1.为什么要用泛型类,我们先来看一段代码: 以交换两个数为例,可能需要定义多个重载方法 public static void swap(ref int x,ref int y) { int ...
- Python3 操作符重载方法
操作符重载方法: 类(class)通过使用特殊名称的方法(len(self))来实现被特殊语法(len())的调用 类(class)通过使用特殊名称的方法(len(self))来实现被特殊语法(len ...
- 拷贝构造,操作符重载
拷贝构造 #include <iostream> #include <string.h> using namespace std; class mystring { pu ...
- C++ operator操作符重载(++,--,-,+,())
C++中++,--操作符重载需要说明是++(--)在操作数前面,还是在操作数后面,区别如下: 代码经过测试无误(起码我这里没问题^_^) Code 1#include <iostream> ...
最新文章
- Pytorch的安装教程
- 一些关于人工智能的讨论(二)
- 基于帝国cms 7.5带支付个人也可以使用的h5微信商城
- OpenCV中IplImage和单字节char*的相互转换
- 4.状态间的六种转换情况
- sublime插件开发教程(附源码)
- 网络分流器|运营商光纤延距解决方案
- python创建nc文件_如何python写nc文件
- SQL 创建数据库、表以及索引
- Php超出高度隐藏,html设置div最小高度,超出的自适应
- Simulink基于level 2的s-function C语言编写
- python并行编程 - 分布式篇
- 三分建设,七分运营|用现代化安全运营应对数据安全风险
- 第一章图像处理基础概念(人眼和光)
- html dashed显示实线怎么改,实现css虚线样式的两种方式:dotted和dashed(实例)
- label 中的for属性有什么用
- python爬虫下载网站磁力链接
- 大话西游2服务器维护公告,大话西游2经典版:2019年05月09日停机维护公告
- Android Studio 用USB连接到真机调试方法
- 我的第一篇文章,doc命令
热门文章
- JavaSE--数组详解
- The web application [/zzti] registered the JDBC driver [com.microsoft.sqlserver.jdbc.SQLServerDriver
- 【关于 webdriver.Edge 运行报错】
- 【debug】mmseg工程训练报错:CUDA kernel errors might be asynchronously reported at some other API call ...
- ognl.MethodFailedException: Method login failed for object
- 安卓禁止屏幕横向_如何旋转您的PC屏幕(或固定横向屏幕)
- 云服务器需要每年出维护费吗,云服务器维护费用
- java基于微信小程序的校园失物招领系统 uinapp
- 二手手机回收:估价+回收只需3分钟
- 复选框作为可挂账否的标识