用c语言设计一个早餐店点餐系统,实现电子点餐、结算和付款功能。程序运行,用户可查看该餐厅餐品名称和价钱,通过菜单选择实现点餐、查看已点餐品、结算和付款功能。各个功能通过函数实现,在主函数中通过调用相应函数实现相应功能。 程序运行显示以下界面: *************欢迎光临美味早餐店,本店将为您提供优质美味的早餐*************** 1.小笼包子 10元/屉 2.肉夹馍 8元/个 3.牛肉面 15元/碗 4.小米粥 3元/碗 5.茶叶蛋 1元/个 6.豆腐脑 3元/碗 7.油条 2元/个 8.凉菜 5元/盘 *************************************************************************** 请根据菜单选项进行以下操作: 1.点餐 2.查看已点餐食 3.结算 4.付款 0.退出 该系统完成以下功能: 1.点餐:进入点餐界面,输入餐品编号和数量进行点餐。 2.查看已点餐品:列车已点餐品名称和数量。 3.结算:根据已点餐品计算应付款金额。 4.付款:进行结账付款,根据用户输入的付款金额,系统自动进行找钱等功能。 0.退出:退出程序。
时间: 2023-07-18 11:49:51 浏览: 100
以下是一个简单的早餐店点餐系统的 C 语言代码示例:
```
#include <stdio.h>
#include <stdlib.h>
// 定义菜品结构体
typedef struct {
char name[20]; // 菜品名称
float price; // 菜品价格
int quantity; // 菜品数量
} Dish;
// 初始化菜单
Dish menu[] = {
{"小笼包子", 10.0, 0},
{"肉夹馍", 8.0, 0},
{"牛肉面", 15.0, 0},
{"小米粥", 3.0, 0},
{"茶叶蛋", 1.0, 0},
{"豆腐脑", 3.0, 0},
{"油条", 2.0, 0},
{"凉菜", 5.0, 0}
};
int order[8] = {0}; // 已点菜品数组
int total = 0; // 总金额
// 显示菜单
void show_menu() {
printf("*************欢迎光临美味早餐店,本店将为您提供优质美味的早餐***************\n");
for (int i = 0; i < 8; i++) {
printf("%d.%s\t%.1f元/份\n", i + 1, menu[i].name, menu[i].price);
}
printf("********************************************************************************\n");
}
// 点餐
void order_dish() {
int id, num;
printf("请输入要点的菜品编号和份数,用空格分开:\n");
scanf("%d %d", &id, &num);
if (id < 1 || id > 8 || num <= 0) {
printf("输入无效,请重新输入!\n");
return;
}
order[id - 1] += num;
menu[id - 1].quantity += num;
printf("已成功点餐!\n");
}
// 查看已点菜品
void show_order() {
printf("已点菜品如下:\n");
for (int i = 0; i < 8; i++) {
if (order[i] > 0) {
printf("%s\t%d份\n", menu[i].name, order[i]);
}
}
}
// 结算
void settle_accounts() {
for (int i = 0; i < 8; i++) {
if (order[i] > 0) {
total += order[i] * menu[i].price;
}
}
printf("总共需要支付%.1f元\n", (float)total);
}
// 付款
void make_payment() {
float pay;
printf("请输入支付金额:\n");
scanf("%f", &pay);
if (pay < total) {
printf("支付金额不足,请重新输入!\n");
return;
}
printf("找您%.1f元,欢迎下次光临!\n", pay - total);
// 清空已点菜品数组和总金额
for (int i = 0; i < 8; i++) {
order[i] = 0;
menu[i].quantity = 0;
}
total = 0;
}
int main() {
int choice;
while (1) {
show_menu();
printf("请选择操作:\n");
printf("1.点餐 2.查看已点菜品 3.结算 4.付款 0.退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
order_dish();
break;
case 2:
show_order();
break;
case 3:
settle_accounts();
break;
case 4:
make_payment();
break;
case 0:
printf("欢迎下次光临!\n");
exit(0);
default:
printf("输入无效,请重新输入!\n");
}
}
return 0;
}
```
该程序定义了一个菜品结构体,包含菜品名称、价格和数量三个成员变量。初始化了一个菜单数组,并定义了一个已点菜品数组和一个总金额变量。在主函数中通过一个循环展示菜单,并根据用户选择调用相应的函数实现点餐、查看已点菜品、结算和付款功能。每个功能都在对应的函数中实现,通过菜品编号和数量进行点餐,可以查看已点菜品和菜品数量,结算时根据已点菜品计算总金额,付款时通过用户输入的支付金额计算找钱等功能。
阅读全文