:为某酒店编写一个点菜程序:首先给出要求客人输入餐桌号的提示信息, 客人键入餐桌号后,给出包含:菜名、菜编号以及价格的菜单提示信息,客人键入对应菜的编号后,给出点菜汇总信息。 要求:1•菜名、菜编号、价格用结构体存放。
时间: 2024-02-03 15:13:58 浏览: 18
好的,下面是一个基本的点菜程序的示例代码,你可以根据自己的需求进行修改和优化:
```c++
#include <iostream>
#include <vector>
using namespace std;
// 菜品结构体
struct Dish {
string name; // 菜名
int id; // 菜编号
float price; // 价格
};
// 菜单数组
Dish menu[] = {
{"鱼香肉丝", 1, 28.0},
{"宫保鸡丁", 2, 25.0},
{"水煮鱼", 3, 38.0},
{"回锅肉", 4, 30.0},
{"麻婆豆腐", 5, 22.0},
{"干煸豆角", 6, 18.0},
{"青椒肉丝", 7, 26.0},
{"蒜蓉西兰花", 8, 20.0},
{"清蒸鲈鱼", 9, 45.0},
{"红烧肉", 10, 32.0}
};
int main() {
int table_num; // 餐桌号
int dish_id; // 菜品编号
vector<Dish> dishes; // 已点菜品列表
// 提示输入餐桌号
cout << "请输入餐桌号:" << endl;
cin >> table_num;
// 输出菜单
cout << "----- 菜单 -----" << endl;
cout << "编号\t菜名\t价格" << endl;
for (int i = 0; i < 10; i++) {
cout << menu[i].id << "\t" << menu[i].name << "\t" << menu[i].price << endl;
}
// 循环点菜
while (true) {
// 提示输入菜品编号
cout << "请输入菜品编号(输入0结束点菜):" << endl;
cin >> dish_id;
// 结束点菜
if (dish_id == 0) {
break;
}
// 查找菜品
bool found = false;
for (int i = 0; i < 10; i++) {
if (menu[i].id == dish_id) {
found = true;
dishes.push_back(menu[i]);
break;
}
}
// 菜品不存在
if (!found) {
cout << "菜品不存在,请重新输入!" << endl;
}
}
// 输出点菜汇总信息
float total_price = 0.0;
cout << "----- 您点的菜品 -----" << endl;
cout << "菜名\t价格" << endl;
for (Dish dish : dishes) {
cout << dish.name << "\t" << dish.price << endl;
total_price += dish.price;
}
cout << "总价:" << total_price << "元" << endl;
return 0;
}
```
这个程序首先提示用户输入餐桌号,然后输出菜单,允许用户输入菜品编号进行点菜。最后输出已点菜品列表和总价。
你可以根据需要对菜单、菜品结构体和输出信息进行调整和修改。