程序设计实践-课程设计任务布置(麦当劳) (price 200)(不包含文档)

本文主要是介绍程序设计实践-课程设计任务布置(麦当劳) (price 200)(不包含文档),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

WX: help-assignment
code price 200(不包含文档!不包含文档!不包含文档!)

课题任务-概述

2023年5月,麦当劳在北邮开业。大量的学生去那里订餐。正因为如此,麦当劳的在线点餐系统经常关闭以避免拥挤,尤其是在午餐和晚餐时间。该系统的关闭时间不确定。北邮的学生认为这非常麻烦。然而,北邮学生无所畏惧。北京邮电大学最优秀的学生之一(也是北邮ICPC团队的一员)Zhai Xie (ThomasX)在飞书上开发了一个实时监控机器人,它告诉我们麦当劳在线点餐系统的实时状态。有了这个机器人,北邮学生可以更方便地点餐。
北邮的麦当劳和它的点餐系统在07:00:00开始工作,点餐系统在22:00:01关闭。麦当劳一共有N种食物和M种套餐类型。每种套餐中包含多种食物。具体配置信息将在菜单文件(dict.dic)中提供。对于制作和存储每种食物,规定第i种食物在ti秒内完成,其最大存储容量为capi,表示该种食物最多可以存储capi个。
麦当劳系统每天开放前,所有食物存储容量都为0,在任何时间点如果某种食物的存储量小于capi ,则会立即制作该食物,直到达到capi 。其中,不同种类食物可以同时制作,同种类食物只能依次制作。
从07:00:00到22:00:00(含),学生可以在系统中点餐(如果系统未关闭)。每天(只有一天)按照顺序有n个订单,第i个订单发生在时间ai :bi :ci 。第i个订单要求一份typei (typei ∈Mcombo∪Nfood,其中Mcombo和Nfood分别表示全体的套餐和食物的集合)类型的套餐或食物。如果点餐时系统关闭,会导致点餐失败。
22:00以后如果还有之前的订单未完成,则麦当劳会继续加班,且保证23:59:59(含)前一定能完成所有订单。

课题任务-规则

在每一秒的开始,如果有新的食物完成,则首先存储食物,然后接受订单(如果存在)。
订单按照“先来先到,异步处理”原则进行处理。
先来先到:指的是对于有存量的食物,总会被分配给时间最早的订单(套餐或单点);
异步处理:指的是当一个订单(套餐或单点)因为请求的食物没有被全部满足时,不必等待该订单完成,可以直接处理下一个订单。
食物一旦被分配给订单,就不能撤销。食物被分配给订单后,即便该订单尚未完成,该食物也不再占用对应类型的容量。
当订单(套餐或单点)中要求的所有食物,均已被分配给该订单,则该订单会立刻完成。
如果在某个时刻t0,有人下了一个订单,并且该订单无法立刻完成,导致未完成订单的数量大于W1,则系统立即自动关闭(不再接受订单),但该订单仍然算作成功下单。 
如果在某个时刻t1,未完成订单的数量小于W2,则系统将在1秒后重新打开。即系统可以接受t1+1时刻的订单,而不能接受t1时刻的订单。

课题任务-OJ版输入

第一行包含一个整数n(1≤n≤54001)表示订单个数。
第二行包含两个整数W1,W2(2≤W2≤W1≤100)。 
第三行包含N个整数t1, t2,...,tN(1≤ti≤70),其中ti表示第i种食物的制作时长。
第四行包含N个整数cap1,cap2,...,capN (1≤capi≤n),其中capi表示第i种食物的最大存储容量。
对于接下来的n行,用格式类似于11:11:11的方式,给出第i个订单的时间。然后输入一个字符串typei,(typei ∈Mcombo∪Nfood)表示套餐或食物的名称(参见dict.dic)。
测试用例保证订单时间在[07:00:00,22:00:00]内,同一个时间点不可能出现多个订单,第i-1个订单一定早于第i个(2≤i≤n),且23:59:59(含)前麦当劳一定能完成所有订单。具体见input.txt。 

课题任务-OJ版输出

输出包括n行,按照订单顺序输出订单完成时间。对于第i行,如果第i个订单不成功,则输出Fail。否则,输出这个订单完成的时间。时间格式与输入格式(11:11:11)一致。具体见output.txt。
第一行给出N和M。其中N表示食物的种类数,M表示套餐的种类数。
第二行包含N个字符串,每个字符串name_i^food表示第i种食物的名称。
接下来M行,其中的第i行包含多个字符串,第一个字符串name_i^combo表示第i个套餐的名称,后续的第j个字符串name_(i,j)^food表示第i个套餐中包含的第j种食物的名称。
具体见dict.dic。

注:系统每次运行时所读取的菜单文件内容可能不一样。

开发两个版本

控制台版本,即OJ版。
图形化版本:图形化技术自选,但限定只能使用C语言或C++语言。

分组

OJ版:一个人一组,即个人完成。
图形化版本:3人一组,自行组队。

WX: help-assignment

这篇关于程序设计实践-课程设计任务布置(麦当劳) (price 200)(不包含文档)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/984988

相关文章

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

C++必修:模版的入门到实践

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C++学习 贝蒂的主页:Betty’s blog 1. 泛型编程 首先让我们来思考一个问题,如何实现一个交换函数? void swap(int& x, int& y){int tmp = x;x = y;y = tmp;} 相信大家很快就能写出上面这段代码,但是如果要求这个交换函数支持字符型

亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践

2024年6月21日-22日,51CTO“WOT全球技术创新大会2024”在北京举办。火山引擎边缘计算架构师李志明受邀参与,以“边缘容器技术在泛CDN场景的应用和实践”为主题,与多位行业资深专家,共同探讨泛CDN行业技术架构以及云原生与边缘计算的发展和展望。 火山引擎边缘计算架构师李志明表示:为更好地解决传统泛CDN类业务运行中的问题,火山引擎边缘容器团队参考行业做法,结合实践经验,打造火山

9 个 GraphQL 安全最佳实践

GraphQL 已被最大的平台采用 - Facebook、Twitter、Github、Pinterest、Walmart - 这些大公司不能在安全性上妥协。但是,尽管 GraphQL 可以成为您的 API 的非常安全的选项,但它并不是开箱即用的。事实恰恰相反:即使是最新手的黑客,所有大门都是敞开的。此外,GraphQL 有自己的一套注意事项,因此如果您来自 REST,您可能会错过一些重要步骤!

基于Java医院药品交易系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W+,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人  Java精品实战案例《600套》 2023-2025年最值得选择的Java毕业设计选题大全:1000个热

如何设置windows计划任务

如何设置windows计划任务 前言:在工作过程中写了一个python脚本,用于调用jira接口查询bug单数量,想要在本地定时任务执行,每天发送到钉钉群提醒,写下操作步骤用于记录。 1. 准备 Python 脚本 确保你的 Python 脚本已经保存到一个文件,比如 jira_reminder.py。 2. 创建批处理文件 为了方便任务计划程序运行 Python 脚本,创建一个批处理文

工程文档CAD转换必备!在 Java 中将 DWG 转换为 JPG

Aspose.CAD 是一个独立的类库,以加强Java应用程序处理和渲染CAD图纸,而不需要AutoCAD或任何其他渲染工作流程。该CAD类库允许将DWG, DWT, DWF, DWFX, IFC, PLT, DGN, OBJ, STL, IGES, CFF2文件、布局和图层高质量地转换为PDF和光栅图像格式。 Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格

关于word文档中目录的switch

有很多的switch,下面这篇文章介绍的比较详细,可以参考:http://word.mvps.org/FAQs/Formatting/TOCSwitches.htm

HTML文档插入JS代码的几种方法

在HTML文档里嵌入客户端JavaScript代码有4中方法: 1.内联,放置在< script>和标签对之间。 2.放置在由< script>标签的src属性指定的外部文件中。 3.放置在HTML事件处理程序中,该事件处理程序由onclick或onmouseover这样的HTML属性值指定。 4.放在一个URL里,这个URL使用特殊的“javascript:”协议。 在JS编程中,主张

Netty ByteBuf 释放详解:内存管理与最佳实践

Netty ByteBuf 释放详解:内存管理与最佳实践 在Netty中(学习netty请参考:🔗深入浅出Netty:高性能网络应用框架的原理与实践),管理ByteBuf的内存是至关重要的(学习ByteBuf请参考:🔗Netty ByteBuf 详解:高性能数据缓冲区的全面介绍)。未能正确释放ByteBuf可能会导致内存泄漏,进而影响应用的性能和稳定性。本文将详细介绍如何正确地释放ByteB