输入食材生成菜品c++
时间: 2023-12-22 22:06:27 浏览: 143
你使用C++的STL(标准模板库)中的map容器和vector容器来实现输入食材生成菜品的功能。以下是一个简单的示例代码:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
#include <map>
#include <vector>
using namespace std;
int main()
{
srand(time(NULL)); // 设置随机数种子
// 定义食材和对应菜品的映射关系
map<string, vector<string>> ingredients = {
{"鸡肉", {"宫保鸡丁", "酱爆鸡丁", "麻辣鸡丝"}},
{"牛肉", {"红烧牛肉", "孜然牛肉", "黑椒牛柳"}},
{"猪肉", {"红烧肉", "东坡肉", "回锅肉"}},
{"鱼", {"清蒸鲈鱼", "红烧鲤鱼", "啤酒鱼"}},
{"虾", {"香辣虾", "蒜香虾", "清蒸虾"}},
{"豆腐", {"麻婆豆腐", "五香豆腐", "红烧豆腐"}},
{"青菜", {"清炒菜心", "蒜蓉西兰花", "酸辣土豆丝"}}
};
// 输入食材
vector<string> input_ingredients;
cout << "请输入食材(输入0结束):" << endl;
string ingredient;
while (cin >> ingredient && ingredient != "0") {
input_ingredients.push_back(ingredient);
}
// 查找菜品
vector<string> matched_dishes;
for (auto it = ingredients.begin(); it != ingredients.end(); ++it) {
bool found = true;
for (auto i = input_ingredients.begin(); i != input_ingredients.end(); ++i) {
if (it->first.find(*i) == string::npos) {
found = false;
break;
}
}
if (found) {
matched_dishes.insert(matched_dishes.end(), it->second.begin(), it->second.end());
}
}
// 输出菜品
if (matched_dishes.empty()) {
cout << "没有找到符合条件的菜品" << endl;
} else {
cout << "符合条件的菜品有:" << endl;
for (auto it = matched_dishes.begin(); it != matched_dishes.end(); ++it) {
cout << *it << endl;
}
// 随机选择一道菜品
int index = rand() % matched_dishes.size();
cout << "今天的菜单是:" << matched_dishes[index] << endl;
}
return 0;
}
```
这个程序会先定义食材和对应菜品之间的映射关系,然后让用户输入食材,根据输入的食材查找符合条件的菜品,并随机选择一道菜品作为今天的菜单。你可以根据需要修改映射关系和输入方式来实现不同的功能。
阅读全文