用c++写一个点餐系统
时间: 2023-08-04 15:19:22 浏览: 112
好的,下面是一个简单的用C++实现的点餐系统的代码示例:
```
#include <iostream>
#include <vector>
using namespace std;
// 定义菜品结构体
struct Dish {
string name; // 菜品名称
double price; // 菜品价格
};
// 定义订单结构体
struct Order {
vector<Dish> dishes; // 订单中的菜品列表
double total_price; // 订单总价
};
// 打印菜单列表
void printMenu(vector<Dish>& menu) {
cout << "=== 菜单列表 ===" << endl;
for (int i = 0; i < menu.size(); i++) {
cout << i + 1 << ". " << menu[i].name << " - " << menu[i].price << "元" << endl;
}
cout << endl;
}
// 下订单
Order placeOrder(vector<Dish>& menu) {
Order order;
int choice = 0;
while (true) {
printMenu(menu);
cout << "请选择要点的菜品编号(输入0结束点餐):" << endl;
cin >> choice;
if (choice == 0) {
break;
} else if (choice < 1 || choice > menu.size()) {
cout << "输入有误,请重新选择" << endl;
continue;
}
Dish dish = menu[choice - 1];
order.dishes.push_back(dish);
order.total_price += dish.price;
cout << dish.name << "已加入订单,当前总价为" << order.total_price << "元" << endl;
}
return order;
}
// 主函数
int main() {
// 初始化菜单列表
vector<Dish> menu = {
{"宫保鸡丁", 22.0},
{"鱼香肉丝", 18.0},
{"回锅肉", 28.0},
{"红烧茄子", 16.0},
{"糖醋排骨", 26.0}
};
// 下订单
Order order = placeOrder(menu);
// 打印订单详情
cout << "=== 订单详情 ===" << endl;
for (int i = 0; i < order.dishes.size(); i++) {
cout << order.dishes[i].name << " - " << order.dishes[i].price << "元" << endl;
}
cout << "总价:" << order.total_price << "元" << endl;
return 0;
}
```
这个点餐系统的实现比较简单,只有一个菜单列表和下订单的功能,但是可以通过不断扩展和改进来实现更完整的点餐系统。
阅读全文