用c语言编写一个餐饮点餐系统
时间: 2023-08-21 13:03:28 浏览: 224
C语言编写的餐厅点菜系统
5星 · 资源好评率100%
好的,我可以给你提供一个简单的餐饮点餐系统的C语言代码框架,你可以根据需要进行修改和完善:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_MENU_ITEMS 100
#define MAX_ORDER_ITEMS 100
typedef struct {
int id; // 菜品编号
char name[100]; // 菜品名称
double price; // 菜品价格
} MenuItem;
typedef struct {
MenuItem menuItems[MAX_MENU_ITEMS]; // 菜单列表
int numItems; // 菜单数量
} Menu;
typedef struct {
MenuItem menuItem; // 已点菜品信息
int num; // 菜品数量
} OrderItem;
typedef struct {
OrderItem orderItems[MAX_ORDER_ITEMS]; // 已点菜品列表
int numItems; // 已点菜品数量
double totalPrice; // 总价
} Order;
void initMenu(Menu *menu) {
// 初始化菜单
menu->numItems = 0;
// TODO: 可以从文件中读取菜单信息
}
void printMenu(Menu *menu) {
// 打印菜单
printf("Menu:\n");
for (int i = 0; i < menu->numItems; i++) {
MenuItem item = menu->menuItems[i];
printf("%d\t%s\t%.2f\n", item.id, item.name, item.price);
}
}
void initOrder(Order *order) {
// 初始化订单
order->numItems = 0;
order->totalPrice = 0.0;
}
void printOrder(Order *order) {
// 打印订单
printf("Order:\n");
for (int i = 0; i < order->numItems; i++) {
OrderItem item = order->orderItems[i];
printf("%d\t%s\t%.2f\t%d\n", item.menuItem.id, item.menuItem.name, item.menuItem.price, item.num);
}
printf("Total Price: %.2f\n", order->totalPrice);
}
void addToOrder(Menu *menu, Order *order, int id, int num) {
// 将指定编号的菜品添加到订单中
int index = -1;
for (int i = 0; i < menu->numItems; i++) {
if (menu->menuItems[i].id == id) {
index = i;
break;
}
}
if (index == -1) {
printf("Invalid menu item id!\n");
return;
}
OrderItem item = order->orderItems[order->numItems];
item.menuItem = menu->menuItems[index];
item.num = num;
order->orderItems[order->numItems] = item;
order->numItems++;
order->totalPrice += item.menuItem.price * num;
}
int main() {
Menu menu;
initMenu(&menu);
printMenu(&menu);
Order order;
initOrder(&order);
int id, num;
while (1) {
printf("Enter the id of the menu item you want to order (or -1 to finish ordering): ");
scanf("%d", &id);
if (id == -1) {
break;
}
printf("Enter the number of the menu item you want to order: ");
scanf("%d", &num);
addToOrder(&menu, &order, id, num);
}
printOrder(&order);
return 0;
}
```
以上代码框架包括了菜单的初始化、打印、订单的初始化、打印以及将指定编号的菜品添加到订单中的功能。你可以根据需要进行修改和扩展。
阅读全文