割り当て:menu.txtからメニュー情報を読み取るC++プログラムを作成します。アイテムコードの最初の文字は、前菜(A)、プリモピアット(E)、デザート(D)、または飲料(S)のいずれであるかを示します。
A1 Bruschetta 5.29
A2 Caprese_Flatbread 6.10
A3 Artichoke-Spinach_Dip 3.99
A4 Lasagna_Fritta 4.99
A5 Mozzarella_Fonduta 5.99
E1 Lasagna_Classico 6.99
E2 Capellini_Pomodoro 7.99
E3 Eggplant_Parmigiana 8.99
E4 Fettuccine_Alfredo 7.49
E5 Tour_of_Italy 14.99
D1 Tiramisu 2.99
D2 Zeppoli 2.49
D3 Dolcini 3.49
S1 Soda 1.99
S2 Bella_Limonata 0.99
S3 Berry_Acqua_Fresca 2.88
次に、ユーザーに注文の入力を求めます。注文ごとに、合計金額を計算して出力する必要があります。アイテムは、各行に任意の順序でリストできます。
A1 E1 D1 S1 S2 D3 E4 A4 E3 E5 A2 A4 S2 S1 D2 D2 E2 X
ユーザーが「X」を入力すると、プログラムは最も人気のある前菜、プリモピアット、デザート、飲み物を出力する必要があります。同点の場合は、いずれか1つを出力できます。
私が抱えている問題は、入力(たとえば、A1)を取得してから、配列内の適切な項目と場所について配列を解析することです(たとえば、A1はtest2 [1]であり、E1はtest2[5]であることが望ましいです。 )。アレイが正しく設定されていることはわかっています。私が配列を検索するために使用しようとしているのは:
for(int l = 0; l<SIZE; l++)
{ //I get an operator error every time here
if(s == (test2[l]))
{ //Just a test to see if I am pulling
//any information
cout << test2[l].getCode() << endl;
}
}
テストはMenuItemtest2[SIZE]としてインスタンス化されました。
上記の方法を使用しようとすると、常にエラーが発生します
's == test2 [l]'</p>の'operator=='に一致しません
以下は私のMenuItem.hです:
#ifndef MENUITEM_H
#define MENUITEM_H
#include <iostream>
#include <string>
using namespace std;
class MenuItem
{
private:
string code;
string name;
double price;
public:
MenuItem(string mcode = "", string mname = "", double mprice = 0);
~MenuItem();
string getCode() const { return code; }
string getName() const { return name; }
double getPrice() const { return price; }
void setCode(string mcode){ code = mcode; }
void setName(string mname){ name = mname; }
void setPrice(double mprice) { price = mprice; }
};
#endif
ヘルプと入力をありがとう。
心から、
ジェイソン