ここで私はクラス定義を持っています。それからcarObjectを作成します。 carObjectのすべての変数の値を入力するようにします。あなたがここに見てきたように、私はユーザー入力を得ることができましたが、この問題に対する私のアプローチは、私の意見では非効率的です。C++でクラスオブジェクトの文字列変数を反復処理する方法は?
最初の入力を除いて、すべてのユーザー入力が非常に似ていることがわかりました。宣言文や文のブロックを繰り返し処理し、毎回変数を変更するために、ある種のループを使用したいと思います。ループの最初の繰り返しに対してのみ異なる入力を入力するif文を置いておきたいと思います。私はbashで変数名を表すために文字列変数を使うことができますが、C++で可能かどうかはわかりません。
オブジェクト名は変更されず、関連付けられている変数のみが変更されています。また、ユーザー入力にも同じ単語を使用します。これは、繰り返しを繰り返すたびに変更する必要があります。同様に名前が付けられた一連の配列もあります。これらの配列の目的は、特定の変数にどのようなオプションが使用できるかをユーザーに伝えることです。
私はこれまでのプログラミング経験はありますが、C++には比較的新しいものです。別の関数への呼び出しを含む、私の問題の解決策となるコードブロックは、私の目的に合っています。以下は私のコードです。
#include <iostream>
#include <string>
using namespace std;
class Car {
public:
string Name;
string Model;
string Color;
string Transmission;
string Category;
};
int main() {
Car CarObject;
string modelOptions [3] = { "Ferrari", "Porsche", "Nissan" };
string colorOptions [4] = { "Blue", "Red", "Green", "White" };
string transmisionOptions [2] = { "Automatic", "Manual" };
string categoryOptions [3] = { "A", "B", "C" };
cout << "Enter " << "name" << " for Car 1." << endl;
cin >> carObject.Name;
cout << endl;
cout << "Enter " << "model" << " for Car 1." << endl;
cout << "Options are:";
for (const string &text: modelOptions) {
cout << " " << text;
}
cout << "." << endl;
cin >> carObject.Model;
cout << endl;
cout << "Enter " << "color" << " for Car 1." << endl;
cout << "Options are:";
for (const string &text: colorOptions) {
cout << " " << text;
}
cout << "." << endl;
cin >> carObject.Color;
cout << endl;
cout << "Enter " << "transmission" << " for Car 1." << endl;
cout << "Options are:";
for (const string &text: transmissionOptions) {
cout << " " << text;
}
cout << "." << endl;
cin >> carObject.Transmission;
cout << endl;
cout << "Enter " << "category" << " for Car 1." << endl;
cout << "Options are:";
for (const string &text: categoryOptions) {
cout << " " << text;
}
cout << "." << endl;
cin >> carObject.Category;
cout << endl;
...
return 0;
}
ユーザーの入力を予測する方法が非常に似ているかどうか尋ねますか? –
一般的な「フィールドのユーザー入力」コードブロックに対応する関数を定義します。そのパラメータにはオプションベクトルが含まれます。その結果は文字列です。 –
「ユーザーの入力を予測する」とはどういう意味ですか?各「入力ブロック」内のforループは、それぞれの「options」配列を反復処理し、ユーザが入力できるすべてのオプションを表示します。 – Galaxy