gpt4 book ai didi

c++ - 如何创建一个用户可以在菜单更改之间不断添加值的 vector ?

转载 作者:行者123 更新时间:2023-11-28 06:16:45 26 4
gpt4 key购买 nike

我们的家庭作业是创建一个菜单,用户可以在其中选择以下选项:

  1. 添加一颗行星
  2. 删除行星
  3. 找到行星(按名称)
  4. 列出所有行星
  5. 排序(字母顺序)
  6. 退出

要求是行星必须存储为一个类,名称、直径、质量作为私有(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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com