Skip to content

Zed-chi/restaurant_manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

restaurant_manager

  • В вашем ресторане некоторое количество столов на разное количество человек (2, 3, 4, 5, 6).

  • Клиенты приходят по одному или группами до 6 человек.

  • Клиенты из группы должны должны поместиться за один стол, поэтому вы должны поместить их за соответствующий стол.

  • Если нет свободных столов с требуемым количеством мест, группа должна ждать в очереди.

  • Сев за стол группа не может его поменять.

  • Группы клиентов должны обслуживаться в порядке поступления с исключением: если есть места для меньшей групппы, которая пришла позже.

  • Группы могут делить один стол, однако если в то же время у вас есть свободный стол с требуемым количеством мест, то нужно посадить клиентов за него.

  • Конечно полагаем, что группа может устать ждать свои места и уйти из очереди.

Заполните RestManeger класс подходящими структурами и реализуйте его конструктор с тремя методами. Вы можете изменить другие классы и добавить новые методы на ваше усмотрение.

public class Table 
{ 
   public final int size; // number of chairs 
} 

public class ClientsGroup
{
   public final int size; // number of clients
}

public class RestManager
{
   public RestManager (List<Table> tables)
   {
      // TODO
   }

   // new client(s) show up
   public void onArrive (ClientsGroup group)
   {
      // TODO
   }

   // client(s) leave, either served or simply abandoning the queue
   public void onLeave (ClientsGroup group)
   {
      // TODO
   }

   // return table where a given client group is seated, 
   // or null if it is still queuing or has already left
   public Table lookup (ClientsGroup group)
   {
      // TODO
   }
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published