Programación

Informática. Nodos. Listas

  • Enviado por: Carlos Hincapie
  • Idioma: castellano
  • País: Colombia Colombia
  • 7 páginas
publicidad
publicidad

PARCIAL

CARLOS H. HINCAPIE

Materia: Análisis De Algoritmos

Profesor: Alberto Restrepo

Fecha: Marzo 25 de 1999

MEDELLIN

DEPARTAMENTO DE HUMANIDADES

UNIVERSIDAD EAFIT

3. Diseñe las estructuras de datos abstractas necesarias y sus operaciones.

  • Un restaurante es un lugar donde una seria de clientes lo frecuentan con el fin de degustar un plato de comida. El restaurante tiene además interaccion con proveedores de alimentos, que son los que surten el local con los ingredientes necesarios para elaborar cada plato.

  • Dentro del restaurante se presentas tres procesos fundamentales, que son la solicitud de un plato (abarca desde el momento en que el cliente entra al restaurante hasta que recibe el plato que va a comer), el de cancelación de la cuente(desde que el cliente termina de comer hasta que sale del restaurante), y el de recepción de alimentos (que va desde la solicitud de un pedido hasta su almacenamiento en la dispensa del restaurante).

    Básicamente son tres procesos los cuales hay que sistematizar están anteriormente descritos: solicitud de un plato, cancelación de cuenta y recepción de alimentos.

    Los procesos en el restaurante se almacenaran en las siguientes estructuras de datos:

    Una COLA (A) en la cual se irán almacenando las personas que estas esperando meza esta cola a su vez será la cabeza de una LISTA SIMPLE (B) la cual representara las mesas esta estructura tendrá los siguientes tipos de datos un dato bool que indicara si la mesa esta o no esta ocupada en determinado momento, tendrá el apuntador a otras dos LISTAS SIMPLES (E) la cual será como una carta del menú y (D) en la cual se ira almacenando los platos consumidos por la mesa estos nodos tendrían los siguientes datos productos de los platos y precio del plato. Y por ultimo necesitaremos dos estructuras una LISTA SIMPLE (E) en la cual se almacenaran todos los productos consumidos por el total de las mesas y ya bien según las dimensiones del restaurante podría ser una LISTA SIMPLE o un ARBOL (F) la cual seria el inventario de los productos que tiene el restaurante.

    El primer proceso se haría de la siguiente forma el cliente entra en el restaurante es almacenado en una COLA hasta que se desocupe una mesa las cuales están representadas por una LISTA SIMPLE.

    El segundo proceso seria básicamente realizar un proceso llamado cancelación el cual se basaría en dos proceso el primero de FACTURACION que seria el de sumar los costos de los platos consumidos por la mesa los cuales están almacenados en la LISTA SIMPLE (D). Y otro que seria llevar despues de facturado la lista de los productos consumidos a la LISTA SIMPLE (E). Otras funciones que tendríamos que realizar en este proceso seria liberar mesa.

    El tercer proceso seria actualizar la LISTA SIMPLE (F) con los datos que tenemos almacenados en la LISTA SIMPLE(E). En este proceso necesitaremos una función que nos reste la cantidad de productos consumidos con la cantidad que hay en inventario en la LISTA SIMPLE (F).

    Los siguientes serian los métodos que pienso que podrían ser útiles para los diferentes procesos:

    Para el primer proceso:

  • Bool mesaVacia (): Este método nos informa si hay una mesa vacía.

  • Void ubicación (): Este nos ubica a las personas en una mesa vacía.

  • Para el segundo proceso:

  • Int facturación (int n): A este método se le entrega una mesa y el nos retorna la cuenta de dicha mesa.

  • Void libararMesa(): Este método deja el indicador bool de la mesa cancelada en 0 o false para indicar que la mesa a quedado libre.

  • Void consumoTotal (): Este método se encarga de traspasar los productos consumidos por la mesa a otra lista ya especifica que seria la lista (E).

  • Para el tercer proceso:

  • Void realizarPedido (): Si es necesario se piden los productos faltantes a los proveedores.

  • Void actualizarInventario (): Este método resta los productos vendidos que están almacenados en la lista (E) a los productos del inventario que están almacenados en la lista (F).

  • DATOS Y ESPECIFICACION DE LOS NODOS

    Nodo Mesa

    Nodo Menú

    Nodo Inventario

  • Imagínese que se encuentra analizando el entorno de la tienda de su barrio, desde el punto de vista de sistema, podemos decir que la tienda es un lugar donde se comercializan (compran y venden) comestibles y abarrotes en general.

  • Desde el punto de vista de capacidad, la tienda tiene unos limites determinados por el espacio en el refrigerador (500 artículos), el tamaño de la alacena (1500 artículos), y la bodega (2000 artículos).

    Los procesos principales del negocio son: solicitud de pedido a los proveedores, la compra de los artículos, y la venta de los artículos.

    Para implantar este problema se va a tener encuentra que la actualización de los productos va a ser en línea.

    Se van a utilizar LISTAS ENCADENADAS una principal que tendrá los sitios de almacenamiento refrigerador, alacena y bodega de estos nodos se desprenderá una lista que tendrá la información de los productos y la cantidad de artículos de cada producto.

    Los métodos que pienso que serian los mas útiles serian, teniendo en cuenta que los métodos de toda lista tienen implantados.

  • Void ubicar (char n): Este método ubica un producto el cual se le da como parámetro.

  • Void venta (int n): resta determinada cantidad que se le introduce como parámetro a un producto previamente ubicado.

  • Int espacioOcupado (char n): este método retorna la cantidad de artículos que hay en el lugar de almacenamiento que se le introduce como parámetro.

  • Void compra (int n): suma lo comprado al producto previamente ubicado.

  • EL ESQUEMA ANTERIORMENTE PLANTEADO SERIA:

    Refrigerador

    Alacena

    Bodega

    Producto

    # de artículos

    BOOL OCUPADA

    APUNTADOR A LISTA MENU

    LISTA DE PRODUCTOS CONSUMIDOS

    PRODUCTOS DE LOS PLATOS

    PRECIO DEL PLATO

    PRODUCTO

    # DE ARTICULOS