C语言实现餐厅点餐系统
1. 概述
餐厅点餐系统是一种常见的实用型软件系统。本文将讲解如何使用C语言实现一个基本的餐厅点餐系统,让读者全面掌握对C语言的应用和理解。
2. 系统功能划分
餐厅点餐系统需要完成以下功能:
- 清单功能:展示所有菜单清单的名称和价格。
- 下单功能:让用户输入要购买的菜单名称,并记录用户所选的菜单。
- 结账功能:展示用户所选的所有菜单清单,以及总价格。
为了实现以上功能,我们将采用结构体、函数和控制结构等C语言操作。
3. 代码实现
3.1 定义餐厅菜单结构体
结构体是C语言中非常重要的数据类型,它可以用来定义不同类型的数据。我们可以使用结构体定义餐厅的菜单,代码如下:
// 声明一个结构体类型 MenuItem
typedef struct MenuItem {
char name[50];
float price;
} MenuItem;
// 定义一个数组用于储存所有的菜单项
MenuItem menu[] = {
{"烤肉饭", 35},
{"鱼香肉丝", 25},
{"回锅肉", 28},
{"麻辣烫", 18},
{"水煮鱼", 48},
{"糖醋排骨", 30},
{"宫保鸡丁", 22},
{"炸鸡腿", 20}
};
3.2 实现菜单清单功能
我们可以通过循环结构来展示所有的菜单名称和价格。
void displayMenu() {
printf("------菜单------\n");
for (int i = 0; i < sizeof(menu) / sizeof(MenuItem); i++) {
printf("%d. %s 价格: %.2f元\n", i + 1, menu[i].name, menu[i].price);
}
}
3.3 实现下单功能
我们可以通过循环结构和 if 语句来判断用户输入的菜单名称是否有效。
void orderFood() {
char name[50];
printf("请输入您想要的菜品名称:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < sizeof(menu) / sizeof(MenuItem); i++) {
if (strcmp(menu[i].name, name) == 0) {
found = 1;
printf("成功添加菜品 %s!\n", menu[i].name);
break;
}
}
if (!found) {
printf("菜品 %s 不存在!\n", name);
}
}
3.4 实现结账功能
我们通过定义一个结构体数组来记录用户所选的菜单,再根据用户的点单情况输出菜品清单和总价格。
typedef struct OrderItem {
char name[50];
float price;
} OrderItem;
OrderItem orders[10];
int orderCount = 0;
void checkBill() {
float totalPrice = 0;
if (orderCount == 0) {
printf("您还没有点单!\n");
return;
}
printf("您的点单清单如下:\n");
for (int i = 0; i < orderCount; i++) {
printf("%d. %s 价格: %.2f元\n", i + 1, orders[i].name, orders[i].price);
totalPrice += orders[i].price;
}
printf("总价格: %.2f元\n", totalPrice);
}
4. 示例说明
4.1 示例一:操作菜单
int main() {
displayMenu();
orderFood();
checkBill();
return 0;
}
输出结果:
------菜单------
1. 烤肉饭 价格: 35.00元
2. 鱼香肉丝 价格: 25.00元
3. 回锅肉 价格: 28.00元
4. 麻辣烫 价格: 18.00元
5. 水煮鱼 价格: 48.00元
6. 糖醋排骨 价格: 30.00元
7. 宫保鸡丁 价格: 22.00元
8. 炸鸡腿 价格: 20.00元
请输入您想要的菜品名称:烤肉饭
成功添加菜品 烤肉饭!
您的点单清单如下:
1. 烤肉饭 价格: 35.00元
总价格: 35.00元
4.2 示例二:多次点单
int main() {
displayMenu();
printf("\n第一波点单:\n");
orderFood();
orderFood();
checkBill();
printf("\n第二波点单:\n");
orderFood();
orderFood();
orderFood();
checkBill();
return 0;
}
输出结果:
------菜单------
1. 烤肉饭 价格: 35.00元
2. 鱼香肉丝 价格: 25.00元
3. 回锅肉 价格: 28.00元
4. 麻辣烫 价格: 18.00元
5. 水煮鱼 价格: 48.00元
6. 糖醋排骨 价格: 30.00元
7. 宫保鸡丁 价格: 22.00元
8. 炸鸡腿 价格: 20.00元
第一波点单:
请输入您想要的菜品名称:烤肉饭
成功添加菜品 烤肉饭!
请输入您想要的菜品名称:鱼香肉丝
成功添加菜品 鱼香肉丝!
您的点单清单如下:
1. 烤肉饭 价格: 35.00元
2. 鱼香肉丝 价格: 25.00元
总价格: 60.00元
第二波点单:
请输入您想要的菜品名称:回锅肉
成功添加菜品 回锅肉!
请输入您想要的菜品名称:水煮鱼
成功添加菜品 水煮鱼!
请输入您想要的菜品名称:麻辣烫
菜品 麻辣烫 不存在!
您的点单清单如下:
1. 烤肉饭 价格: 35.00元
2. 鱼香肉丝 价格: 25.00元
3. 回锅肉 价格: 28.00元
4. 水煮鱼 价格: 48.00元
总价格: 136.00元
以上就是C语言实现餐厅点餐系统的全部过程,希望可以帮助到读者对 C 语言的基本应用和理解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现餐厅点餐系统 - Python技术站