使用标准Java库的作业调度

使用标准Java库的作业调度,java,schedule,Java,Schedule,正如标签中提到的,这是家庭作业,只使用标准java库 这项任务是创建一个程序来安排订单(由比萨饼组成)在不同的烤箱中烹饪。订单有规定,必须满足,比萨饼有烹饪时间和冷却时间,所有比萨饼都必须在截止日期前烹饪,但不能煮得太早以至于离开烤箱的时间超过冷却时间。如果确定无法在截止日期前完成订单,则抛出异常。我无法理解的主要问题是,我如何让程序重新安排烤箱以适应新的订单 我想不出如何开始这项工作,我真的非常感谢任何帮助 你可以开始阅读了 看来你的比萨饼加工时间(烹饪+冷却+等等)可以事先计算出来,因此可能

正如标签中提到的,这是家庭作业,只使用标准java库

这项任务是创建一个程序来安排订单(由比萨饼组成)在不同的烤箱中烹饪。订单有规定,必须满足,比萨饼有烹饪时间和冷却时间,所有比萨饼都必须在截止日期前烹饪,但不能煮得太早以至于离开烤箱的时间超过冷却时间。如果确定无法在截止日期前完成订单,则抛出异常。我无法理解的主要问题是,我如何让程序重新安排烤箱以适应新的订单

我想不出如何开始这项工作,我真的非常感谢任何帮助

你可以开始阅读了


看来你的比萨饼加工时间(烹饪+冷却+等等)可以事先计算出来,因此可能会有所帮助。PizzaOrder将实现一个界面,该界面比较订单的截止日期。

一个好的开始是将中间的段落变成行为和状态不受约束的对象,例如

class Order 
List<Pizza> pizzas;

class Oven 
int maxPizzas;
List<Pizza> cooking;
cook(pizza: Pizza);

class Pizza 
int cookTimeMins; 
int coolTimeMins;
long cookTimeStart;

class PizzaShop 
List<Oven> ovens; 
List<Order> orders;
scheduleOrder(order: Order) throws Exception
类顺序
列出比萨饼;
分级烤箱
int maxPizzas;
列出烹饪;
厨师(比萨饼:比萨饼);
高级披萨
国际烹饪时间分钟;
int cooltimemin;
长时间启动;
高级比萨饼店
列出烤箱清单;
列出订单;
scheduleOrder(order:order)引发异常

从这里开始对各种方法进行伪编码。从这些积木开始,你会发现,如果不把问题作为一个整体来看待,而是把问题分成小块来看待,问题就会变得更容易解决

很难了解您提供的信息,但使用规则引擎似乎是一个不错的方案,例如,如果您想尝试使用它。

老实说,如果您至少不说您尝试了什么或发布了一些有问题的代码,我想很难得到你问题的答案。你说你无法确定重新安排时间。用代码描述初始计划,然后寻求有关重新计划的具体帮助