用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 20:49:51 浏览: 58
以下是一个简单的早餐店点餐系统的 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; } ``` 该程序定义了一个菜品结构体,包含菜品名称、价格和数量三个成员变量。初始化了一个菜单数组,并定义了一个已点菜品数组和一个总金额变量。在主函数中通过一个循环展示菜单,并根据用户选择调用相应的函数实现点餐、查看已点菜品、结算和付款功能。每个功能都在对应的函数中实现,通过菜品编号和数量进行点餐,可以查看已点菜品和菜品数量,结算时根据已点菜品计算总金额,付款时通过用户输入的支付金额计算找钱等功能。

相关推荐

最新推荐

recommend-type

基于C语言实现点餐系统

主要为大家详细介绍了基于C语言实现点餐系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

C语言程序设计实现区号查询系统C语言程序设计实现

用C语言编程的区号查询系统,要求实现区号查询系统中,添加新记录、删除记录、显示记录信息、按城市查找信息和退出系统等功能。 ①录入有关城市的名称和区号。 ②显示所有城市的信息。 ③通过输入城市名称查找对应...
recommend-type

C语言实现餐饮结账管理系统

主要为大家详细介绍了C语言实现餐饮结账管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

C语言程序设计实现门禁控制系统

系统将ID卡技术、计算机控制技术与电子门锁有机结合,用ID卡替代钥匙,配合计算机实现智能化门禁控制和管理,有效的解决了传统门锁的使用繁琐和无法信息记录等不足,利用数据控制器采集的数据实现数字化管理可为内部...
recommend-type

基于Linux操作系统C语言开发的多人聊天室程序设计与实现.docx

里面附有源代码,加上详细的设计步骤,使用了C语言开发,功能有服务器和客户端的消息接收与发送,以及退出功能
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SPDK_NVMF_DISCOVERY_NQN是什么 有什么作用

SPDK_NVMF_DISCOVERY_NQN 是 SPDK (Storage Performance Development Kit) 中用于查询 NVMf (Non-Volatile Memory express over Fabrics) 存储设备名称的协议。NVMf 是一种基于网络的存储协议,可用于连接远程非易失性内存存储器。 SPDK_NVMF_DISCOVERY_NQN 的作用是让存储应用程序能够通过 SPDK 查询 NVMf 存储设备的名称,以便能够访问这些存储设备。通过查询 NVMf 存储设备名称,存储应用程序可以获取必要的信息,例如存储设备的IP地址、端口号、名称等,以便能
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。