c++实现餐厅点餐功能

还没来得及学习太多,保存着,等慢慢补充吧。
#include "iostream"
#include "stdlib.h"
#include "iomanip"
using namespace std;
const int NUM = 3;
class Guest;
class Food
{
private:
	int Fnum;                  //菜编号
	char Fname[10];			  // 菜名
	char Fclasses[10];        // 菜类别
	double Fprice;            //菜单价
public:
	Food(char *fclasses = NULL, int fnum = 0, char *fname = NULL,  double fprice = 0) {};
	friend class Shop;
	friend class Guest;
};
class Shop
{
private:
	Food f[NUM];          //餐厅食物样数
	int num;              //实际样数
public:
	Shop();
	void Food_delete(int fnum);
	void Food_amend(int fnum);
	void Food_find(int fnum);
	void Show_menu();
	friend class Guest;
};
class Guest
{
private:
	int Tnum;                     //桌号
	Food g_food[NUM];            //所点菜的信息
	int f_num[NUM];             //份数
	in
  • 31
    点赞
  • 151
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
好的,以下是一个简单的餐厅点餐系统的 C++ 代码,包含基本点餐功能餐厅管理功能。注意,这只是一个示例代码,可以根据具体需求进行修改和完善。 ```c++ #include <iostream> #include <string> #include <vector> using namespace std; class Dish { public: string name; float price; Dish(string name, float price) : name(name), price(price) {} }; class Order { public: Dish dish; int count; Order(Dish dish, int count) : dish(dish), count(count) {} }; class Table { public: int id; vector<Order> orders; Table(int id) : id(id) {} }; class Restaurant { public: vector<Dish> dishes; vector<Table> tables; Restaurant() {} void addDish(string name, float price) { dishes.push_back(Dish(name, price)); } void addTable(int id) { tables.push_back(Table(id)); } void printDishes() { cout << "Dishes:\n"; for (Dish dish : dishes) { cout << dish.name << " - $" << dish.price << endl; } } void printTables() { cout << "Tables:\n"; for (Table table : tables) { cout << "Table " << table.id << endl; if (table.orders.empty()) { cout << "No orders\n"; } else { float total = 0; for (Order order : table.orders) { cout << order.dish.name << " x " << order.count << " - $" << order.dish.price * order.count << endl; total += order.dish.price * order.count; } cout << "Total: $" << total << endl; } } } void takeOrder(int tableId, string dishName, int count) { Table* table = findTable(tableId); if (table == nullptr) { cout << "Table not found\n"; return; } Dish* dish = findDish(dishName); if (dish == nullptr) { cout << "Dish not found\n"; return; } table->orders.push_back(Order(*dish, count)); cout << "Order taken successfully\n"; } void removeOrder(int tableId, string dishName, int count) { Table* table = findTable(tableId); if (table == nullptr) { cout << "Table not found\n"; return; } Dish* dish = findDish(dishName); if (dish == nullptr) { cout << "Dish not found\n"; return; } for (int i = 0; i < table->orders.size(); i++) { if (table->orders[i].dish.name == dishName) { if (table->orders[i].count > count) { table->orders[i].count -= count; cout << "Order removed successfully\n"; return; } else if (table->orders[i].count == count) { table->orders.erase(table->orders.begin() + i); cout << "Order removed successfully\n"; return; } else { cout << "Not enough orders to remove\n"; return; } } } cout << "Order not found\n"; } private: Table* findTable(int id) { for (Table& table : tables) { if (table.id == id) { return &table; } } return nullptr; } Dish* findDish(string name) { for (Dish& dish : dishes) { if (dish.name == name) { return &dish; } } return nullptr; } }; int main() { Restaurant restaurant; restaurant.addDish("Hamburger", 4.99); restaurant.addDish("French fries", 1.99); restaurant.addDish("Coke", 0.99); restaurant.addTable(1); restaurant.addTable(2); restaurant.printDishes(); restaurant.takeOrder(1, "Hamburger", 2); restaurant.takeOrder(1, "French fries", 1); restaurant.takeOrder(2, "Coke", 3); restaurant.printTables(); restaurant.removeOrder(1, "Hamburger", 1); restaurant.printTables(); return 0; } ``` 以上代码实现了一个简单的餐厅点餐系统,包含了添加菜品和桌子、打印菜单和桌子信息、点餐和取消点餐功能。可以根据需要进行修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值