- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们的家庭作业是创建一个菜单,用户可以在其中选择以下选项:
要求是行星必须存储为一个类,名称、直径、质量作为私有(private)成员,类的方法是密度、表面积和重力。但是我意识到我需要使用一个 vector 来动态地添加行星,因为用户不断输入它们。我将如何着手创建这样的 vector ?而且因为我必须专门使用类,所以创建 vector 的代码会去哪里?它会在 int main()
的开头有一个函数来访问用户输入的值(名称、直径、质量)吗?
这是我目前所拥有的:
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
class planet
{
private:
string n;
double d, m;
public:
void Density (double d, double m)
{
double Den = m/((4.0/3.0)*M_PI*pow((d/2.0), 3.0));
cout<<"Density: "<<Den<<endl;
}
void SurfaceArea(double d)
{
double S = 4.0*M_PI*pow((d/2.0), 2.0);
cout<<"Surface Area: "<<S<<endl;
}
void Name (string n)
{
string N = n;
cout<<"Name: "<<N<<endl;
}
void Gravity (double G, double m, double d)
{
double F = G*m/pow((d/2.0), 2.0);
cout<<"Force of gravity: "<<F<<endl;
}
};
int main()
{
const double G=6.67384e-11;
int c=0;
string n;
double d=0.0, m=0.0, Den=0.0, S=0.0;
do
{
cout<<"1. Add a planet\n";
cout<<"2. Delete planet\n";
cout<<"3. Find planet (by name)\n";
cout<<"4. List all planets\n";
cout<<"5. Sort (alphabetical order)\n";
cout<<"6. Quit\n";
cout<<endl;
cout<<"Please select an option from the menu above."<<endl;
cin>>c;
if(c==1)
{
planet red;
cout<<"Enter the planet's name: ";
cin>>n;
cout<<"Enter the planet's diameter: ";
cin>>d;
cout<<"Enter the planet's mass: ";
cin>>m;
red.Name(n);
red.Density(d, m);
red.SurfaceArea(d/2.0);
red.Gravity(G, m, d);
}
else if (c==4)
{
cout<<N<<endl;
cout<<Den<<endl;
cout<<S<<endl;
cout<<F<<endl;
}
} while (c!=6);
system("pause");
return 0;
}
如果我需要澄清更多,请告诉我:)
谢谢!
最佳答案
您需要创建一个像这样的 vector vector<planet> p
创建一个可以存储类的 vector planet
.您希望在程序开始时创建此 vector ,以便在用户开始输入数据时立即填充它。
要添加行星,只需 push_back
星球。要删除,请使用 vector 的 erase
功能。
要在您的 vector 中找到一颗行星,只需使用 for
遍历您的 vector 循环看看是否p.at(i).n == planet_to_find
.
要打印所有行星,就像查找循环一样,遍历您的行星和 cout << p.at(i).n
.
要排序,您可以使用 std
sort
按字母顺序排序的功能。 Details on sort .
希望对您有所帮助:)
关于c++ - 如何创建一个用户可以在菜单更改之间不断添加值的 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30135646/
安装并修复我的 VS2015 实例后,我仍然无法让智能感知(服务器端)在我的 MVC View 中工作。当我在 session 中第一次打开 .cshtml 文件并找到 Activitylog 文件时
我是一名优秀的程序员,十分优秀!