Планирование работы с использованием стандартных библиотек Java - PullRequest
0 голосов
/ 25 сентября 2011

Как уже упоминалось в тегах, это домашнее задание, использующее только стандартные библиотеки Java.

Задача состоит в том, чтобы создать программу, которая планирует заказы (которые состоят из пиццы) для приготовления в разных печах. В заказах есть соглашение, которое должно быть выполнено, а у пиццы есть время приготовления и время перезарядки. По сути, все пиццы должны быть приготовлены к крайнему сроку, но не могут быть приготовлены так рано, чтобы время их выхода из духовки превышало время перезарядки. Если будет установлено, что выполнить заказ в установленный срок невозможно, выдается исключение. Основная проблема, с которой я не могу разобраться, заключается в том, как заставить программу перепланировать печи в соответствии с новым заказом.

Я не могу придумать, с чего начать, и буду очень признателен за любую помощь!

Ответы [ 3 ]

1 голос
/ 25 сентября 2011

Хорошее место для начала - превратить этот средний абзац в объекты с поведением и измененным состоянием, например,

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

С этого момента начните псевдокодирование того, что вы хотите, чтобы происходило различными способами. Начните с этих строительных блоков, и вы обнаружите, что проблему становится легче решить, если смотреть не на проблему в целом, а на небольшие куски.

1 голос
/ 25 сентября 2011

Вы можете начать читать самый ранний срок первого планирования .

Кажется, что время обработки вашей пиццы (готовить + охлаждать + и т. Д.) Можно рассчитать заранее, поэтому PriorityQueue может быть полезным.PizzaOrder реализует интерфейс Comparable , который сравнивает крайний срок заказа.

0 голосов
/ 25 сентября 2011

С информацией, которую вы предоставляете, трудно узнать, но, возможно, будет хорошим сценарием использовать механизм правил, такой как JBoss Rules (Drools) , если вы хотите поэкспериментировать с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...