写一个订餐系统的代码
时间: 2023-12-01 15:09:28 浏览: 29
好的,这里是一个简单的订餐系统的代码示例:
```
#include <iostream>
#include <vector>
using namespace std;
// 定义菜品结构体
struct Dish {
string name;
double price;
};
// 定义订单结构体
struct Order {
vector<Dish> dishes;
double total_price;
};
// 定义订餐函数
Order place_order(vector<Dish> menu) {
Order order;
bool done = false;
while (!done) {
// 显示菜单
cout << "Menu:" << endl;
for (int i = 0; i < menu.size(); i++) {
cout << i + 1 << ". " << menu[i].name << " - $" << menu[i].price << endl;
}
// 询问用户选择哪些菜品
string input;
cout << "Enter the numbers of the dishes you want to order (separated by spaces): ";
getline(cin, input);
// 将用户输入的菜品编号转换为菜品对象,并添加到订单中
vector<int> dish_numbers;
string num_str = "";
for (int i = 0; i < input.length(); i++) {
if (input[i] != ' ') {
num_str += input[i];
} else {
int dish_num = stoi(num_str);
dish_numbers.push_back(dish_num);
num_str = "";
}
}
int dish_num = stoi(num_str);
dish_numbers.push_back(dish_num);
for (int i = 0; i < dish_numbers.size(); i++) {
if (dish_numbers[i] < 1 || dish_numbers[i] > menu.size()) {
cout << "Invalid dish number: " << dish_numbers[i] << endl;
} else {
order.dishes.push_back(menu[dish_numbers[i] - 1]);
}
}
// 计算订单总价
order.total_price = 0;
for (int i = 0; i < order.dishes.size(); i++) {
order.total_price += order.dishes[i].price;
}
// 询问用户是否完成订餐
char done_input;
cout << "Your total price is $" << order.total_price << ". Are you done ordering? (y/n) ";
cin >> done_input;
if (done_input == 'y') {
done = true;
}
}
return order;
}
int main() {
// 定义菜单
vector<Dish> menu = {
{"Hamburger", 5.99},
{"Pizza", 7.99},
{"Hot dog", 3.99},
{"Fries", 2.99},
{"Salad", 4.99}
};
// 订餐
Order order = place_order(menu);
// 显示订单
cout << "Your order:" << endl;
for (int i = 0; i < order.dishes.size(); i++) {
cout << order.dishes[i].name << " - $" << order.dishes[i].price << endl;
}
cout << "Total price: $" << order.total_price << endl;
return 0;
}
```
这个订餐系统包括了以下功能:
1. 显示菜单,让用户选择菜品。
2. 将用户选择的菜品添加到订单中,计算订单总价。
3. 询问用户是否完成订餐,如果没有完成则重复上述操作。
4. 显示订单详情,包括所选的菜品和订单总价。