0

タグで述べたように、これは宿題であり、標準の Java ライブラリのみを使用します。

タスクは、注文 (ピザで構成される) をさまざまなオーブンで調理するようにスケジュールするプログラムを作成することです。注文にはディールがあり、それは満たされなければならず、ピザには調理時間とクールダウン時間があり、本質的にすべてのピザは締め切りまでに調理する必要がありますが、オーブンから出る時間がクールダウン時間を超えるほど早く調理することはできません. 期限までに注文を履行できないと判断された場合は、例外がスローされます。私が理解できない主な問題は、新しい注文に合わせてプログラムにオーブンのスケジュールを変更させるにはどうすればよいかということです.

これを開始する方法が思い浮かびません。助けていただければ幸いです。

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

It is hard to know with the information you provide, but it seems it could be a good scenario to use a rule engine such as JBoss Rules (Drools), if you want to experiment with it.

于 2011-09-25T13:46:43.503 に答える