Skip to content

ucudal/PII_Desafio_Menu_1_Start

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UCU

Universidad Católica del Uruguay

Facultad de Ingeniería y Tecnologías

Programación II

Desafío menú #1: Restaurante simple

Objetivo

Completar la implementación en C# las clases indicadas a continuación, con sus responsabilidades y colaboraciones, también indicadas a continuación.

Clases a implementar

A continuación la descripción de las clases, sus responsabilidades de hacer y de conocer, y sus colaboraciones.

1. Clase Dish

Representa un platillo individual en el menú del restaurante.

Dish
Conocer el nombre del platillo
Conocer el precio del platillo
Conoce si el platillo es vegetariano o no
  • Responsabilidades de conocer:

    • Name: Conocer el nombre del platillo.
    • Price: Conocer el precio del platillo.
    • IsVegetarian: Conocer si el platillo es vegetariano o no.
  • No tiene responsabilidades de hacer.

  • No tiene colaboradores.

Important

Debe ser posible crear una instancia de Dish e inicializar sus propiedades en una sola operación.

Aquí está el código provisto de la clase Dish.

2. Clase Menu

Representa el conjunto de platillos disponibles en el restaurante.

Menu
Conocer la lista de platillos disponibles en el restaurante
Agregar un platillo a la lista de platillos del menú
Eliminar un platillo de la lista del menú
Buscar y devolver un platillo específico del menú basado en su nombre
Dish
  • Responsabilidades de conocer:

    • dishes: Conocer la lista de platillos disponibles en el restaurante; esta responsabilidad está ya implementada con la variable de instancia dishes en el código provisto.
  • Responsabilidades de hacer

    • AddDish(Dish): Agregar un platillo a la lista de platillos del menú.
    • RemoveDish(Dish): Eliminar un platillo de la lista del menú.
    • Dish GetDishByName(string): Buscar y devolver un platillo específico del menú basado en su nombre; retorna null si no encuentra en platillo.
  • Colaboradores

    • Dish

Tip

Puedes acceder al i-ésimo elemento de la variable de instancia dishes con dishes[i] y las estructuras de repetición condicional que consideres apropiadas. También puedes recorrer los platillos en esa variable de instancia con la estructura repetitiva condicional foreach.

Aquí está el código provisto de la clase Menu.

3. Clase Table

Representa una mesa en el restaurante.

Table
Conocer el número identificador de la mesa
Conocer si la mesa está ocupada o no
Conocer la lista de platillos que han sido ordenados en la mesa
Marcar la mesa como ocupada
Liberar la mesa y vaciar la lista de pedidos
Agregar un platillo a los que han sido ordenados en la mesa
Determinar si la mesa tiene pedidos o no
Dish
  • Responsabilidades de conocer:

    • Number: Conocer el número identificador de la mesa.
    • IsOccupied: Conocer si la mesa está ocupada o no.
    • Order: Conocer la lista de platillos que han sido pedidos en la mesa; esta responsabilidad está ya implementada con la variable de instancia order en el código provisto.
  • Responsabilidades de hacer:

    • Occupy(): Marcar la mesa como ocupada.
    • Free(): Liberar la mesa y vaciar la lista de pedidos.
    • AddToOrder(Dish): Agregar un platillo a la lista de pedidos.
    • bool HasOrders(): Determinar si la mesa tiene pedidos o no; retorna true si los tiene y false en caso contrario.
  • Colaboradores:

    • Dish

Tip

El método Clear() de la clase ArrayList vacía la lista.

Important

Debe ser posible crear una instancia de Table e inicializar sus propiedades en una sola operación.

Aquí está el código provisto de la clase Table.

4. Clase Waiter

Representa un mozo en el restaurante, encargado de atender mesas.

Waiter
Conocer el nombre del mozo
Conocer las mesas asignadas al mozo
Asignar una mesa al mozo
Tomar un pedido para una mesa específica y agregar el platillo a la orden de esa mesa
Dish
Table
  • Responsabilidades de conocer:

    • Name: Conocer el nombre del mozo.
    • assignedTables: Conocer las mesas asignadas al mozo; esta responsabilidad está ya implementada con la variable de instancia assignedTables en el código provisto.
  • Responsabilidades de hacer:

    • AssignTable(Table): Asignar una mesa al mozo.
    • TakeOrder(Table, Dish): Tomar un pedido para una mesa específica y agregar el platillo a la orden de esa mesa.
  • Colaboradores:

    • Dish
    • Table

Important

Debe ser posible crear una instancia de Waiter e inicializar sus propiedades en una sola operación.

Aquí está el código provisto de la clase Waiter.

About

Ejercicio para el tema de clases, responsabilidades y colaboraciones

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages