Está en la página 1de 2

CASO ESTUDIO: ALMACEN DE VINOS

Conceptos Definicion de PILA


Básicos Una pila (o stack) es un colección conjunto de elementos genéricos en la cual
en un extremo se le pueden insertar nuevos elementos y de la cual se pueden
retirar otros, llamado la parte superior de la pila (TOS = Top Of Stack o
Tope de la pila).

F Parte superior TOS


E
D
C
B
A

Una PILA de 6 elementos


¿Cómo funciona la PILA?
Considerando que solo un extremo puede ser considerado parte superior de la
pila (TOS) se tendrá que:
 Los nuevos elementos deben colocarse en parte superior de la pila (lo que
hace que el TOS de la pila se mueva hacia arriba), o
 Los elementos que se encuentran en el TOS pueden ser removidos (es
decir retirados, lo que hace que el TOS se mueva hacia abajo).
Al irse agregando o retirando elementos de una pila ésta estará pasando
constantemente por un proceso de encogimiento (retiro de elementos) o
expansión (adición de elementos), por lo que a veces se le denomina como
una lista en la que el último elemento entrado es el primero en salir (LIFO =
Last In First Out)

Operaciones Básicas
Los dos cambios que se pueden hacer en una pila tienen nombres especiales:
1. Cuando se agrega un elemento a una pila éste es empujado (push) dentro
de la pila. Dada una pila s y un elemento i, la operación s.push(i) se
define como la acción de agregar el elemento i a la parte superior de la
pila s.
2. Igualmente la operación top( ) devuelve el elemento superior y lo retorna
como un valor de la función top, luego la operación de asignación i = top(
), toma el elemento superior de la pila s y asigna su valor a la variable i.
3. La operación s.pop( ) elimina el elemento que se encuentra el tope de la
pila s.

Enunciado: Una fábrica de vinos almacena sus barriles de vinos apilados uno sobre otro
en numerosas pilas (altura maxima de almacenaje 3 barriles) .
La fábrica produce dos tipos de vinos (A y B), donde los de más calidad
deben estar almacenado durante mas tiempo para su añejo por lo que cada
barril tiene su código de identificación donde se incluye la fecha para su
extracción.

Objetivos Modelar este problema utilizando Pilas sabiendo que la cantidad de estas no
es conocida de antemano.
Implemente el Tipo de Dato Abstracto TDA definido utilizando clases en
C++.
En ambos casos el TAD debe incluir la salva y lectura de archivos con el
desglose de lo almacenado.
Realizar una aplicación que demuestre el uso de esta implementación del
TDA

Diseño  La aplicación será realizada en MODO CONSOLA. No se aceptarán


trabajos realizados en modo de diseño de formularios.
 El programa debe incluir un menú para:
 Entrada de datos por teclado.
 Salvar datos a un archivo.
 Leer datos de un archivo.
 Mostrar los barriles almacenados por pantalla.
 Extraer un barril del TOS de una pila dada
 Salir.
 El programa elaborado tiene que incluir todas las validaciones de
entrada de datos necesarias
 El código debe incluir la clase stack para el trabajo con las pilas

La clase Stack C++ cuenta con la clase stack la cual representa un conjunto genérico de
elementos tipo LIFO (“último en entrar primero en salir”). Esta clase puede
agregarse a la aplicación usando el espacio de nombre #include <stack> y la
misma simplifica el trabajo de codificación en el trabajo con pilas a través de
sus funciones.

Principales funciones de la Clase stack


 empty( ) Devuelve true si la pila está vacía.
 size( ) Obtiene el número de elementos de la pila.
 top( ) Devuelve el elemento situado en el TOS, sin eliminarlo.
 pop( ) Elimina el elemento situado en el TOS.
 push( ) Inserta un objeto en la parte superior de la pila.

Notas  El código de identificación de cada barril incluye el tipo (A o B)


dependiendo de la calidad (A de mayor calidad), el código será por
ejemplo A0108 o B0359, indicando el barril 108 de calidad A o el barril
359 de calidad B producido. El código incluye además su fecha de
extracción como se mencionó al inicio (a mayor calidad más tiempo de
almacenaje debe tener y por ende una fecha más tardía de extracción)
 Tenga presente que NO ES POSIBLE almacenar un barril cuya calidad
sea superior sobre otro de calidad inferior pues la fecha de extracción del
barril de menos calidad es más temprana.
 No existen límites en el número de pilas en el almacén.
 Para este caso de estudio deben tenerse en cuenta las consideraciones
siguientes:
 Código en C++, incluyendo comentarios al mismo.
 Entrega de la documentación del caso en formato impreso y digital
 Los equipos estarán conformados por 4 ó 5 estudiantes.
 La fecha de entrega es la señalada por el docente.

También podría gustarte