2 根据牛顿引力定律两个星体之间的万有引力大小为:其中表示两个星体的质量是两个星体的质心距离是引力常数。编程计算两个星体之间的万有引力。要求如下:21 编写一个表示星体质心位置的类Location用三个私有成员变量xyzdouble类型表示星体质心坐标。在构造函数中初始化这三个私有成员变量。22编写一个计算质心距离的函数calcDistance返回两个Location之间的距离;并在Locatio
代码如下:
#include
class Location { private: double x, y, z; public: Location(double x_, double y_, double z_) :x(x_), y(y_), z(z_) {}
friend double calcDistance(const Location& loc1, const Location& loc2);
};
double calcDistance(const Location& loc1, const Location& loc2) { double dx = loc1.x - loc2.x; double dy = loc1.y - loc2.y; double dz = loc1.z - loc2.z; return sqrt(dx * dx + dy * dy + dz * dz); }
class Planet { private: Location loc; double mass; static const double G; public: Planet(double x_, double y_, double z_, double mass_) :loc(x_, y_, z_), mass(mass_) {}
friend double calcForce(const Planet& p1, const Planet& p2);
};
const double Planet::G = 6.67e-11;
double calcForce(const Planet& p1, const Planet& p2) { double r = calcDistance(p1.loc, p2.loc); return Planet::G * p1.mass * p2.mass / (r * r); }
int main() { Planet earth(0.0, 0.0, 0.0, 5.97e24); Planet moon(384400000.0, 0.0, 0.0, 7.35e22);
double force = calcForce(earth, moon);
cout << "The gravitational force between earth and moon is " << force << " N." << endl;
return 0;
原文地址: https://www.cveoy.top/t/topic/fD8i 著作权归作者所有。请勿转载和采集!