0

如标签中所述,这是作业,仅使用标准 java 库。

任务是创建一个程序来安排在不同烤箱中烹饪的订单(包括比萨饼)。订单有deline,必须满足,并且比萨饼有烹饪时间和冷却时间,本质上所有比萨饼都必须在截止日期前煮熟,但不能过早煮熟,以至于它们离开烤箱的时间超过冷却时间。如果确定无法在截止日期前完成订单,则会引发异常。我无法理解的主要问题是如何让程序重新安排烤箱以适应新订单。

我想不出如何开始,非常感谢任何帮助!

4

3 回答 3

1

您可以开始阅读最早截止日期优先调度

似乎可以预先计算您的比萨处理时间(烹饪 + 冷却 + 等),因此PriorityQueue可能会有所帮助。PizzaOrder 将实现Comparable接口,用于比较订单的截止日期。

于 2011-09-25T13:24:05.227 回答
1

一个好的起点是将中间段落转换为行为和状态不受约束的对象,例如

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

从那里开始伪编码您希望在各种方法中发生的事情。从这些构建块开始,您会发现如果不从整体上看问题,而是在小块上看,问题会变得更容易解决。

于 2011-09-25T13:29:56.343 回答
0

很难知道您提供的信息,但如果您想尝试使用诸如JBoss Rules (Drools)之类的规则引擎,这似乎是一个很好的场景。

于 2011-09-25T13:46:43.503 回答