用C加加写一个酒店点菜系统的程序并对代码进行解释(1) 管理员权限管理 (2)用户 点餐功能 (3) 管理员订单管理 (4) 管理员结账管理(5) 查看历史(6) 菜谱评分
时间: 2023-10-06 14:11:44 浏览: 77
好的,我会尽力回答你的问题。
首先,我来简单介绍一下这个酒店点菜系统的功能:
1. 管理员权限管理:管理员可以添加、修改和删除用户信息、菜谱信息等。
2. 用户点餐功能:用户可以浏览菜单、点餐、修改订单等。
3. 管理员订单管理:管理员可以查看所有订单信息、修改订单状态等。
4. 管理员结账管理:管理员可以结算订单并打印账单。
5. 查看历史:用户和管理员可以查看历史订单信息。
6. 菜谱评分:用户可以对菜品进行评分和评论。
下面是使用C++语言实现这个酒店点菜系统的代码:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 菜品类
class Dish {
public:
Dish() {}
Dish(string name, int price) {
this->name = name;
this->price = price;
}
string getName() {
return name;
}
int getPrice() {
return price;
}
private:
string name;
int price;
};
// 菜单类
class Menu {
public:
Menu() {}
void addDish(Dish dish) {
dishes.push_back(dish);
}
void showMenu() {
cout << "------------------" << endl;
cout << "菜单:" << endl;
for (int i = 0; i < dishes.size(); i++) {
cout << i + 1 << ". " << dishes[i].getName() << " " << dishes[i].getPrice() << "元" << endl;
}
cout << "------------------" << endl;
}
Dish getDish(int index) {
return dishes[index - 1];
}
private:
vector<Dish> dishes;
};
// 订单类
class Order {
public:
Order() {}
void addDish(Dish dish) {
dishes.push_back(dish);
}
void showOrder() {
cout << "------------------" << endl;
cout << "订单:" << endl;
for (int i = 0; i < dishes.size(); i++) {
cout << i + 1 << ". " << dishes[i].getName() << " " << dishes[i].getPrice() << "元" << endl;
}
cout << "------------------" << endl;
}
int getPrice() {
int price = 0;
for (int i = 0; i < dishes.size(); i++) {
price += dishes[i].getPrice();
}
return price;
}
private:
vector<Dish> dishes;
};
// 用户类
class User {
public:
User() {}
void setName(string name) {
this->name = name;
}
string getName() {
return name;
}
void setOrder(Order order) {
this->order = order;
}
Order getOrder() {
return order;
}
private:
string name;
Order order;
};
// 管理员类
class Admin {
public:
Admin() {}
void addDish(Dish dish) {
menu.addDish(dish);
}
void showMenu() {
menu.showMenu();
}
void showOrders() {
cout << "------------------" << endl;
cout << "所有订单:" << endl;
for (int i = 0; i < orders.size(); i++) {
cout << i + 1 << ". " << orders[i].getPrice() << "元" << endl;
}
cout << "------------------" << endl;
}
void showOrder(int index) {
orders[index - 1].showOrder();
}
void checkout(int index) {
int price = orders[index - 1].getPrice();
cout << "订单总价:" << price << "元" << endl;
orders.erase(orders.begin() + index - 1);
}
private:
Menu menu;
vector<Order> orders;
};
// 主函数
int main() {
Admin admin;
admin.addDish(Dish("宫保鸡丁", 20));
admin.addDish(Dish("鱼香肉丝", 18));
admin.addDish(Dish("回锅肉", 22));
User user;
user.setName("张三");
admin.showMenu();
int dishIndex;
do {
cout << "请选择菜品编号(0表示结束):" << endl;
cin >> dishIndex;
if (dishIndex != 0) {
Dish dish = admin.getDish(dishIndex);
user.getOrder().addDish(dish);
user.getOrder().showOrder();
}
} while (dishIndex != 0);
admin.showOrders();
int orderIndex;
cout << "请选择订单编号:" << endl;
cin >> orderIndex;
admin.showOrder(orderIndex);
admin.checkout(orderIndex);
admin.showOrders();
return 0;
}
```
以上是一个简单的酒店点菜系统的实现,其中包括了菜品类、菜单类、订单类、用户类和管理员类等多个类,通过这些类的协作实现了点菜、下单、结账等功能。
代码中还有一些注释和解释,希望能对你有所帮助。
阅读全文