这是一个简单的餐饮管理系统,它包括了一些基本的功能,如菜品管理、订单管理、支付和收据生成等。
main.c: 主函数所在的文件。admin_menu.c: 管理员菜单的实现。customer_menu.c: 客户菜单的实现。dish.c: 菜品管理的实现。manageTable.c: 餐桌管理的实现。order.c: 订单管理的实现。order_info.c: 订单信息的实现。payment.c: 支付系统的实现。receipt.c: 收据生成的实现。table.c: 餐桌的实现。
在开始之前,你需要确保你的系统上已经安装了wget,curl和unzip。如果你的系统上还没有安装这些工具,你可以使用以下命令来安装:
sudo apt update
sudo apt install wget curl unzip如果你使用的是Homebrew,你可以使用以下命令来安装:
brew install wget curl unzip安装完这些工具后,你就可以开始下载并运行我们的项目了。
你可以直接从GitHub的release页面下载我们的项目的预编译版本。以下是在不同操作系统和不同架构上使用wget或curl下载,解压并运行的步骤:
使用wget或curl下载最新的release:
wget https://github.com/skyhua0224/Ordering/releases/latest/download/ubuntu-latest-amd64-binary.zip或者使用curl:
curl -LO https://github.com/skyhua0224/Ordering/releases/latest/download/ubuntu-latest-amd64-binary.zip使用wget或curl下载最新的release:
wget https://github.com/skyhua0224/Ordering/releases/latest/download/ubuntu-latest-arm64-binary.zip或者使用curl:
curl -LO https://github.com/skyhua0224/Ordering/releases/latest/download/ubuntu-latest-arm64-binary.zip然后,使用unzip命令解压下载的文件,*处为所使用的架构:
unzip ubuntu-latest-*-binary.zip最后,进入到解压出来的package目录,并运行程序:
cd package
./Ordering使用wget或curl下载最新的release:
wget https://github.com/skyhua0224/Ordering/releases/latest/download/macos-latest-amd64-binary.zip或者使用curl:
curl -LO https://github.com/skyhua0224/Ordering/releases/latest/download/macos-latest-amd64-binary.zip使用wget或curl下载最新的release:
wget https://github.com/skyhua0224/Ordering/releases/latest/download/macos-latest-arm64-binary.zip或者使用curl:
curl -LO https://github.com/skyhua0224/Ordering/releases/latest/download/macos-latest-arm64-binary.zip然后,使用unzip命令解压下载的文件,*处为所使用的架构:
unzip macos-latest-*-binary.zip最后,进入到解压出来的package目录,并运行程序:
cd package
./Ordering首先,从以下链接下载最新的release: https://github.com/skyhua0224/Ordering/releases/latest/download/windows-latest-amd64-binary.zip
然后,使用任何ZIP工具解压下载的文件。
最后,进入到解压出来的package目录,并双击Ordering.exe运行程序。
请注意,你可能需要给Ordering文件添加执行权限。你可以使用以下命令来添加执行权限:
chmod +x Ordering在这个餐饮管理系统中,我们有几个主要的实体:Dish(菜品)、Table(餐桌)、Customer(客户)和Order(订单)。这些实体之间存在以下关系:
- Dish-Order:一个订单可以包含多种菜品,而一种菜品可以出现在多个订单中,因此Dish和Order之间是多对多的关系。这部分主要在
dish.c和order.c中实现。 - Table-Order:一个餐桌在一段时间内只能有一个订单,但一个订单可以对应一个餐桌,因此Table和Order之间是一对一的关系。这部分主要在
table.c和order.c中实现。 - Customer-Order:一个客户可以下多个订单,但一个订单只能由一个客户下,因此Customer和Order之间是一对多的关系。这部分主要在
customer_menu.c和order.c中实现。
这些实体和它们之间的关系构成了我们的餐饮管理系统的核心部分。
你需要CMake和GCC来编译这个项目。首先,创建一个新的目录用于构建:
mkdir build
cd build然后,运行CMake来生成Makefile文件:
cmake ..最后,运行make来编译项目:
make这将会在build目录下生成一个名为Ordering的可执行文件。
编译完成后,根据你的操作系统,使用以下命令来运行程序:
Windows:
cd build
./Ordering.exeLinux/macOS:
cd build
./Ordering编译默认会复制example_data的菜单数据和订单数据复制到默认文件夹,如果你要自己使用,请确保在执行文件Ordering的同目录下存在dish_info.txt和order_info.txt。以下分别为两个文件的格式: dish_info.txt
库存 价格(两位小数) 菜名 类别
order_info.txt
桌号 人数 点菜数量 总金额 是否支付 下单时间(yyyy-MM-dd_HH_mm_ss)
.vscode/
c_cpp_properties.json // VS Code 的 C/C++ 配置文件
launch.json // VS Code 的调试配置文件
settings.json // VS Code 的设置文件
tasks.json // VS Code 的任务配置文件
example_data/
dish_info.txt // 菜品信息的样例数据文件
order_info.txt // 订单信息的样例数据文件
.gitignore // Git上传忽略的文件与文件夹
admin_menu.c // 管理员菜单的实现
adminOrder.c // 管理员订单的实现
adminOrder.h // 管理员订单的声明
CMakeLists.txt // 项目的CMake文件
color.h // 颜色的定义
customer_menu.c // 客户菜单的实现
dish.c // 菜品管理的实现
dish.h // 菜品管理的声明
main_menu.h // 主菜单的声明
main.c // 主函数的实现
manageTable.c // 餐桌管理的实现
order_info.c // 订单信息的实现
order_info.h // 订单信息的声明
order.c // 订单管理的实现
order.h // 订单管理的声明
payment.c // 支付系统的实现
payment.h // 支付系统的声明
README.md // 项目的 README 文件
receipt.c // 收据生成的实现
receipt.h // 收据生成的声明
sleep.c // sleep 函数的实现
sleep.h // sleep 函数的声明
table.c // 餐桌的实现
table.h // 餐桌的声明
你需要CMake来编译这个项目。以下是在不同操作系统上安装CMake的方法:
-
Windows:你可以从CMake官方网站下载CMake的Windows安装程序。下载并运行安装程序,然后按照提示进行操作。我们更推荐使用Windows自带WSL使用Linux环境运行我们的程序,因为团队所使用的是macOS和Ubuntu(WSL)进行开发。你可以使用以下命令在有支持硬件虚拟化的电脑并搭载Windows 10和Windows 11上通过PowerShell安装默认的WSL2 Ubuntu 22.04 LTS:
wsl --install然后再参考Linux安装方式安装cmake。
-
Linux:在大多数Linux发行版中,你可以使用包管理器来安装CMake和make。例如,在团队使用的Debian系Linux中,你可以使用以下命令:
sudo apt install build-essential cmake -
macOS:在macOS中,你可以使用Homebrew来安装CMake。如果你还没有安装Homebrew,你可以从Homebrew官方网站下载并安装。然后,你可以使用以下命令来安装CMake:
brew install cmake
欢迎提供贡献、问题和功能请求。
如果你想贡献,可以查看问题页面。
👤 SkyHua
- Telegram: @skyhua
- Github: @skyhua0224