代码如下:

#include #include using namespace std;

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;
2 根据牛顿引力定律两个星体之间的万有引力大小为:其中表示两个星体的质量是两个星体的质心距离是引力常数。编程计算两个星体之间的万有引力。要求如下:21 编写一个表示星体质心位置的类Location用三个私有成员变量xyzdouble类型表示星体质心坐标。在构造函数中初始化这三个私有成员变量。22编写一个计算质心距离的函数calcDistance返回两个Location之间的距离;并在Locatio

原文地址: https://www.cveoy.top/t/topic/fD8i 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录