Está en la página 1de 3

D.E.G.

PRCTICA FINAL LENGUAJE BASIC CURSO 2006/2007 10/10/2006

2 D.A.I

Una empresa de almacenaje requiere una aplicacin informtica para controlar la entrada y salida de productos de su almacn principal. Dicha aplicacin responder a los siguientes requerimientos:

a) Los productos tienen un cdigo de producto (iCodProducto numero entero), un


nombre (sNombre) y un precio unitario (dbPrecio numero real). b) Los productos entran y salen del almacn por remesas de un mismo tipo de producto, y cada remesa consta de un numero de productos determinado (iNumProductos numero entero) c) Se tienen catalogados los productos que pueden existir en el almacen. Cuando queremos dar un Alta de remesa de un producto que no catalogado, previamente se debe realizr un Alta de producto. d) El Alta de producto implica registrar en el catlogo los datos de un producto, pero no implica que dicho producto exista en almacen. e) Cada vez que llega una remesa de un producto se produce un Alta de remesa. En el Alta de remesa se proporcionarn los datos del producto (su cdigo) y el nmero de productos que vienen en dicha remesa. f) Si llega una remesa de un producto ya existente en el almacen se incrementarn las existencias de dicho producto. g) Cuando sale una remesa de un producto se produce una Salida de remesa. La Salida de remesa se realizar sobre un producto existente en el almacn y siempre en una cantidad igual o inferior a las existencias de dicho producto. h) No pueden salir remesas de productos sin existencias o con ms productos de los existentes en el almacen. i) Si en una Salida de remesa se agotan las existencias de un producto, este producto ya no existir en el almacn (no puede aparecer en ningn listado). j) Tambin se necesita obtener listados sobre las existencias en el almacn y el catlogo. Los listados contendrn los datos de todos los productos existentes en el almacn y proporcionarn para cada producto los mismos datos : el cdigo de producto, su nombre, su precio y las existencias del mismo. Los listados necesarios son: 1) Listado bsico de productos (sin orden) 2) Listado de productos registrados en catlogo (no incluye el campo existencias). 3) Productos ordenados por cdigo de producto ascendente Valoracin del problema - 10 puntos Funcionamiento correcto de los mens: 1 punto

Alta de remesas: 2 punto Salida de remesas: 2 puntos Alta de producto : 1 punto Listados 4 puntos 1 punto los listados 1) y 2) y 2 puntos el listado c)

D.E.G.

2 D.A.I

Mens de la aplicacin: MENU PRINCIPAL 1.ALTA DE REMESAS 2.SALIDA DE REMESAS 3.ALTA DE PRODUCTO 4.LISTADOS 5.SALIR

MENU LISTADOS 1.LISTADO BASICO 2.PRODUCTOS EN CATLOGO 3.PRODUCTOS POR CDIGO 4.VOLVER A MENU PRINCIPAL

Ejemplo de listado de almacn: CODIGO 123 345 NOMBRE SACO PATATAS 50 KG LANGOSTINOS 1KG PRECIO 45,78 10,00 CANTIDAD 4 1 VALOR 183,12 10,00

Ejemplo de listado del catlogo: CODIGO 123 345 NOMBRE SACO PATATAS 50 KG LANGOSTINOS 1KG PRECIO 45,78 10,00

Algoritmo de ordenacin: Sub OrdenaArray(ByVal esAlmacen() As StockProducto) 'Declaracion de variables Dim i, j As Integer Dim bOrdenado, bCompara As Boolean Dim esElem As StockProducto 'Usaremos el algoritmo de la burbuja mejorado 'Inicializamos la marca que nos indicar cuando esta el array 'ordenado bOrdenado = False i = 0 Do While bOrdenado = False And i < esAlmacen.GetUpperBound(0) bOrdenado = True For j = 0 To esAlmacen.GetUpperBound(0) - 1 - i 'Comparacion por codigo de producto bCompara = esAlmacen(j).iCodProducto > esAlmacen(j + 1).iCodProducto If bCompara = True Then 'Intercambiamos elementos esElem = esAlmacen(j) esAlmacen(j) = esAlmacen(j + 1) esAlmacen(j + 1) = esElem 'Marcamos como que el array aun no esta ordenado bOrdenado = False

D.E.G. End If Next 'Incrementamos i i += 1

2 D.A.I

Loop End Sub