作业:编写一个 C++ 程序,从 menu.txt 中读取菜单信息。项目代码中的第一个字母指定它是开胃菜 (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”,程序应该输出最受欢迎的开胃菜、主菜、甜点、饮料。如果有平局,您可以输出其中任何一个。
我遇到的问题是获取输入(例如,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;
}
}
测试被实例化为 MenuItem test2[SIZE]。
当我尝试使用上述方法时,我总是出错
's == test2[l]' 中的 'operator==' 不匹配</p>
下面是我的 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
感谢您的任何帮助和意见。
真挚地,
杰森