用C++写一个餐饮管理系统,要求可以增加删除菜品,展示菜品,显示顾客点单信息,不用指针链表
时间: 2024-01-05 21:02:07 浏览: 74
好的,我可以为您提供一个基本的餐饮管理系统的代码框架,具体实现可以根据您的需求进行修改和完善:
```c++
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
// 菜品类
class Dish {
private:
string name; // 菜品名称
double price; // 菜品价格
public:
Dish(string name, double price) : name(name), price(price) {}
void setName(string name) {
this->name = name;
}
string getName() {
return name;
}
void setPrice(double price) {
this->price = price;
}
double getPrice() {
return price;
}
};
// 餐厅类
class Restaurant {
private:
vector<Dish> menu; // 菜单
vector<Dish> order; // 顾客点单
public:
// 增加菜品
void addDish(Dish dish) {
menu.push_back(dish);
}
// 删除菜品
void deleteDish(string name) {
for (int i = 0; i < menu.size(); i++) {
if (menu[i].getName() == name) {
menu.erase(menu.begin() + i);
break;
}
}
}
// 展示菜单
void showMenu() {
cout << "菜单:" << endl;
for (int i = 0; i < menu.size(); i++) {
cout << menu[i].getName() << " " << menu[i].getPrice() << endl;
}
}
// 顾客点单
void orderDish(string name) {
for (int i = 0; i < menu.size(); i++) {
if (menu[i].getName() == name) {
order.push_back(menu[i]);
break;
}
}
}
// 显示顾客点单信息
void showOrder() {
double totalPrice = 0;
cout << "顾客点单信息:" << endl;
for (int i = 0; i < order.size(); i++) {
cout << order[i].getName() << " " << order[i].getPrice() << endl;
totalPrice += order[i].getPrice();
}
cout << "总价:" << totalPrice << endl;
}
};
int main() {
Restaurant restaurant;
restaurant.addDish(Dish("鱼香肉丝", 28.0));
restaurant.addDish(Dish("宫保鸡丁", 32.0));
restaurant.addDish(Dish("回锅肉", 38.0));
restaurant.showMenu();
restaurant.orderDish("鱼香肉丝");
restaurant.orderDish("宫保鸡丁");
restaurant.showOrder();
restaurant.deleteDish("鱼香肉丝");
restaurant.showMenu();
return 0;
}
```
这个系统利用了面向对象的思想,使用了两个类:菜品类和餐厅类。其中,菜品类包含了菜品的名称和价格属性,餐厅类包含了菜单和顾客点单两个向量,实现了增加菜品、删除菜品、展示菜单、顾客点单和显示顾客点单信息等功能。在主函数中,我们可以看到如何使用这个系统的示例。
阅读全文