将字符串输入与类数组值进行比较时出现问题C++(Unix 环境)(家庭作业)
Problems Comparing String Input Against Class Array Values C++(Unix Environment) (Homework)
Assignment:编写一个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 S1S2 D3 E4 A4E3 E5 A2 A4 S2 S1 D2 D2 E2十
一旦用户输入"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]。
当我尝试使用上述方法时,我总是错误
与 '== test2[l]' 中的 '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
感谢您的任何帮助和意见。
真诚地
杰森
我想知道以下代码中变量 s 的类型是什么:
if(s == (test2[l]))
是包含用户输入的字符串,例如。"A1" ?还是 s 是菜单项对象?
如果它是一个字符串,那么条件将只是
if(s == test[l].getCode())
如果 s 是 MenuItem 对象,则应为 MenuItem 对象实现 operator==
它的签名可能如下所示:
bool operator== (const MenuItem&, const MenuItem&);
并且实现将涉及检查两个 MenuItem 对象是否具有相同的代码、名称和价格。
好吧,如果您正在比较 MenuItem 类型的对象,那么您还没有完全实现 == 运算符。
在此处查找C++中的运算符重载。
http://courses.cms.caltech.edu/cs11/material/cpp/donnie/cpp-ops.html
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 基于boost的程序的静态链接——zlib问题
- C++格式化输出问题
- 使用mongocxx驱动程序时包含头文件问题