universidad de ixtlahuaca cui....una tienda departamental de súper descuento, ofrece diferentes...
TRANSCRIPT
POO I.C. HERNÁNDEZ ORO OSCAR AMURICIO 1
Universidad de Ixtlahuaca CUI.
Programación Orientado a Objetos
Software para calcular el total de la compra realizada por los usuarios en una tienda
Manual Técnico
Ixtlahuaca Edo. de México a 26 de Junio de 2013.
POO I.C. HERNÁNDEZ ORO OSCAR AMURICIO 2
INDICE
Titulo Página
1. Definición del problema 3
2. Propuesta de solución 6
3. Análisis 7
4. Diagrama de clases 8
5. Representación en pseudocódigo de el diagrama de clases 9
6. Diagrama de secuencia 21
7. Representación en pseudocódigo de el diagrama de secuencia 28
8. Requerimientos mínimos de HW Y SW 34
9. Recomendaciones 35
10. Codificación comentada 35
POO I.C. HERNÁNDEZ ORO OSCAR AMURICIO 3
1. DEFINICIÓN DEL PROBLEMA
Una tienda departamental de súper descuento, ofrece diferentes productos a la venta para sus clientes con diferentes descuentos. Para ello, debe tener el control sobre los productos ofrecidos, registrando la clave del producto, el nombre, el precio de lista y el precio de compra, la cantidad de unidades de producto que se tienen en existencia y un umbral de inventario para ese producto (es el número mínimo de productos que se deben tener en existencia antes de resurtir el producto). Se tienen 2 tipos de productos: Productos perecederos y Productos No perecederos. De los productos perecederos se debe registrar la fecha de caducidad y la unidad de venta (por ejemplo kilo, pieza, o litro). Para calcular el precio de compra de cada uno de este tipo de productos, se debe multiplicar el número de unidades de venta por el precio de lista, y a esa cantidad se debe aplicar un descuento del 0.1% por cada día que reste para cumplir la fecha de caducidad. De los productos no perecederos, se debe registrar la dimensión de su empaque (largo, ancho y profundo). Para calcular el precio de compra de este tipo de productos, se debe obtener su volumen y multiplicarlo por el precio de lista. También es necesario tener el control sobre sus clientes, registrando su nombre completo, edad, sexo, dirección y teléfono. Se tienen clientes de tipo Básico, de los cuales se registra una cuota mensual de $100, $200 o $300, y para ellos, se registra un porcentaje de descuento que se calcula dividiendo la cuota mensual por el número del día del mes en el que se hace la compra, y ese resultado se divide por 30. Se tienen clientes de tipo Especial, de los cuales se registra un porcentaje de descuento que se calcula multiplicando el número de años de antigüedad que tenga por un factor de 0.41. Finalmente, se tienen clientes de tipo Premium, los cuales obtienen un porcentaje de descuento calculado dividiendo el límite de su tarjeta de crédito por un factor de 4900. Cuando un cliente compra sus productos, la tienda debe calcular el costo total a pagar, y para ello, se debe obtener la cantidad total del precio de compra de todos los productos adquiridos, y aplicarles el descuento de acuerdo con el tipo de cliente. Además, a la existencia del producto que se haya comprado, se le debe restar la cantidad comprada, y se debe checar cómo queda con respecto al umbral de inventario, y si la nueva existencia es
POO I.C. HERNÁNDEZ ORO OSCAR AMURICIO 4
menor que el umbral de inventario, se debe generar un aviso para que ese producto se resurta. Por ejemplo, el día de hoy 7 de junio, un cliente compra: 2.5 kg de Carne 5 manzanas 3mil centímetros cúbicos de pintura. Analizando se tiene Para la carne se tiene:
Clave: 24 Tipo: Perecedero Nombre: Carne Caducidad: 10 jun 2013 Unidad venta: kg Precio Unidad Venta: $85.00 Unidades compradas: 2.5
El precio de compra de la carne se calcula: Precio sin descuento = (Precio Unidad Venta)*(Unidades compradas) = 85*2.5 =212.5 Descuento= (0.1/100)*(Precio sin descuento)*(días para caducar)=0.001*212.5*3=0.6375 Precio a pagar = Precio sin descuento – Descuento=212.5-0.6375= 211.8625 De igual manera se calcula el precio de cualquier producto perecedero. Para la pintura se tiene:
Clave: 17 Tipo: No Perecedero Nombre: Pintura Dimensión: Largo: 30 cm Ancho: 20 cm Profundo: 5 cm Unidad venta: cm3 Precio Unidad Venta: $0.1 Unidades compradas: 3000
El precio de la pintura se calcula: Precio sin descuento = (Precio Unidad Venta)*(Unidades compradas) = 0,1*3000 =300 Descuento= No aplica Precio a pagar = 300
POO I.C. HERNÁNDEZ ORO OSCAR AMURICIO 5
Asumiendo entonces que el cliente realizó las siguientes compras
Si es un tipo de cliente Básico con cuota de $200.00 lo que debe pagar es Suma productos= 586.64 Porcentaje de descuento = (cuota/7)/30=0.9524 % Total a pagar =586.64- (586.64*0.9524)/100=580.05
Si es un tipo de cliente Especial con 5 años de antigüedad, lo que debe pagar es
Suma productos= 586.64 Porcentaje de descuento = (antigüedad)*(0.41) = 2.05 Total a pagar = 586.64-(586.64*2.05)/100=573.61
Si es un tipo de cliente Premium con un límite en su tarjeta de crédito de 30000
Suma productos = 586.64 Porcentaje de descuento = límite/49000 =6.1224 Total a pagar = 586.64 –(586.64*6.1224)/100 = 549.73
Actualmente todos los registros y los pagos al realizar las compras se hacen por medio de
una hoja y un bolígrafo, lo cual conlleva mucho tiempo y perdida de información después
de mucho tiempo, y al mismo tiempo la productividad baja al tardarse en hacer el registro.
POO I.C. HERNÁNDEZ ORO OSCAR AMURICIO 6
2. PROPUESTA DE SOLUCIÓN
La empresa GIDS (Grupo de Ingenieros Desarrolladores de Software) propone realizar un
programa orientado a objetos que permita:
I. REGISTRAR LOS DATOS DEL CLENTE:
CLAVE
NOMBRE COMPLETO
EDAD
SEXO
DIRECCIÓN
TELÉFONO
Dependiendo del tipo de cliente que sea además de la información básica de sus datos se registrará:
CLIENTE BÁSICO
CUOTA MENSUAL
TOTAL
CLIENTE ESPECIAL
ANTIGÜEDAD
TOTAL2
CLIENTE PREMIUM
LIMITE DE TARJETA DE CREDITO
TOTAL3
II. REGISTRAR INFORMACIÓN DE LOS PRODUCTOS:
CLAVE DEL PRODUCTO
NOMBRE DEL PRODUCTO
CANTIDAD DEL PRODUTO
PRECIO DE LISTA
Dependiendo del tipo de producto que sea además de la información básica de su información se registrara:
POO I.C. HERNÁNDEZ ORO OSCAR AMURICIO 7
PERECEDERO
FECHA DE CADUCIDAD
UNIDAD DE VENTA
UNIDADES COMPRADAS
NO PERECEDERO
LARGO
ANCHO
ALTO
UNIDAD DE VENTA
UNIDADES COMPRADAS
III. CALCULAR EL TOTAL DE LA COMPRA DE PRODUCTOS DE LOS CLIENTES
IV. Almacenar de manera permanente los totales de las compras.
3. ANÁLISIS
Datos de entrada:
USUARIO:
Clave del usuario (Entero)
Nombre completo (Cadena)
Edad (Entero)
Sexo (Variable)
Dirección (Cadena)
Teléfono (Cadena)
PRODUCTO:
Clave del producto (Entero)
Nombre del producto (Cadena)
Cantidad del producto (Entero)
Precio de lista (Real)
Datos de salida
Total de la compra realizado por el cliente
POO I.C. Hernández Oro Oscar Mauricio 8
4. DIAGRAMA DE CLASES
POO I.C. Hernández Oro Oscar Mauricio 9
5. REPRESENTACIÓN EN PSEUDOCÓDIGO DEL DIAGRAMA DE CLASES
Método de la clase CL_CLIENTE
Atributos
Clave: Entero
Nombre: Cadena
Edad: Entero
Sexo: Variable
Direccion: Cadena
Telefono: Entero
Comienza
Método ColocarClave (x: Entero)
INICIO
Clave x
FIN (Método ColocarCalave)
Método ColocarNombre (x: Cadena)
INICIO
Nombre x
FIN (Método ColocarNombre)
Método ColocarEdad (x: Entero)
INICIO
Edad x
FIN (Método ColocarEdad)
Método ColocarSexo (x: Variable)
INICIO
Sexo x
FIN (Método ColocarSexo)
Método ColocarDireccion (x: Cadena)
INICIO
Direccion x
FIN (Método ColocarDireccion)
POO I.C. Hernández Oro Oscar Mauricio 10
Método ColocarTelefono (x: Entero)
INICIO
Telefono x
FIN (Método ColocarTelefono)
Método ObtenerClave: Entero
INICIO
Regresa Clave
FIN (Método ObtenerClave)
Método ObtenerNombre: Cadena
INICIO
Regresa Nombre
FIN (Método ObtenerNombre)
Método ObtenerEdad: Entero
INICIO
Regresa Edad
FIN (Método ObtenerEdad)
Método ObtenerSexo: Variable
INICIO
Regresa Sexo
FIN (Método ObtenerSexo)
Método ObtenerDireccion: Cadena
INICIO
Regresa Direccion
FIN (Método ObtenerDireccion)
Método ObtenerTelefono: Entero
INICIO
Regresa Telefono
FIN (Método ObtenerTelefono)
Termina Método de la clase CL_USUARIO
POO I.C. Hernández Oro Oscar Mauricio 11
Método de la clase CL_BASICO derivado de CL_CLIENTE
Atributos
Cuota: Entero
DiaCompra: Entero
Total: Real
Comienza
Método ColocarCuota (x: Entero)
INICIO
Cuota x
FIN (Método ColocarCuota)
Método ObtenerCuota: Entero
INICIO
Regresa Cuota
FIN (Método ObtenerCuota)
Método ColocarDiaCompra (x: Entero)
INICIO
DiaCompra x
FIN (Método ColocarDiaCompra)
Método ObtenerDiaCompra: Entero
INICIO
Regresa DiaCompra
FIN (Método ObtenerDiaCompra)
Método ColocarTotal (x: Real)
INICIO
Total x
FIN (Método ColocarTotal)
Método ObtenerTotal: Real
INICIO
Regresa Total
FIN (Método ObtenerTotal)
POO I.C. Hernández Oro Oscar Mauricio 12
Método CalcularPorcentaje
INICIO
Porcentaje = (Cuota/DiaCompra)/30
FIN (Método CalcularPorcentaje)
Método CalcularTotal
INICIO
Total = SumaProducto - (SumaProductos * Porcentaje)/100
FIN (Método CalcularTotal)
Termina Método CL_BASICO derivado de CL_CLIENTE
Método de la clase CL_ESPECIAL derivado de CL_CLIENTE
Atributos
Antigüedad: Entero
Total2: Real
Comienza
Método ColocarAntigüedad (x: Entero)
INICIO
Antigüedad x
FIN (Método Colocar Antigüedad)
Método ObtenerAntigüedad: Entero
INICIO
Regresa Antigüedad
FIN (Método ObtenerAntigüedad)
Método ColocarTotal2 (x: Real)
INICIO
Total2 x
FIN (Método ColocarTotal2)
Método ObtenerTotal2: Real
INICIO
Regresa Total2
FIN (Método ObtenerTotal2)
POO I.C. Hernández Oro Oscar Mauricio 13
Método CalcularPorcentaje
INICIO
Porcentaje = (Antigüedad)*(0.41)
FIN (Método CalcularPorcentaje2)
Método CalcularTotal
INICIO
Total = SumaProducto - (SumaProductos*Porcentaje)/100
FIN (Método CalcularTotal)
Termina Método CL_ESPECIAL derivado de CL_CLIENTE
Método de la clase CL_PREMIUM derivado de CL_CLIENTE
Atributos
Limite: Entero
Total3: Real
Comienza
Método ColocarLimite (x: Entero)
INICIO
Limite x
FIN (Método ColocarLimite)
Método ObtenerLimite: Entero
INICIO
Regresa Limite
FIN (Método ObtenerLimite)
Método ColocarTotal3 (x: Real)
INICIO
Total3 x
FIN (Método ColocarTotal3)
Método ObtenerTotal3: Real
INICIO
Regresa Total3
FIN (Método ObtenerTotal3)
POO I.C. Hernández Oro Oscar Mauricio 14
Método CalcularPorcentaje
INICIO
Porcentaje = Limite/4900
FIN (Método CalcularPorcentaje)
Método CalcularTotal
INICIO
Total3 = SumaProductos - (SumaProductos*Porcentaje)/100
FIN (Método CalcularTotal)
Termina Método CL_PREMIUM derivado de CL_CLIENTE
Método de la clase CL_PRODUCTO
Atributos
ClaveProducto: Entero
NombreProducto: Cadena
Cantidad: Entero
PecioLista: Real
Comienza
Método ColocarClaveProducto (x: Entero)
INICIO
ClaveProducto x
FIN (Método ColocarClaveProducto)
Método ColocarNombreProducto (x: Cadena)
INICIO
NombreProducto x
FIN (Método ColocarNombreProducto)
Método ColocarPrecioLista (x: Real)
INICIO
PrecioLista x
FIN (Método ColocarPrecioLista)
Método ColocarCantidad (x: Entero)
INICIO
Cantidad x
FIN (Método ColocarCantidad)
POO I.C. Hernández Oro Oscar Mauricio 15
Método ObtenerClaveProducto: Entero
INICIO
Regresa ClaveProducto
FIN (Método ObtenerClaveProducto)
Método ObtenerNombreProducto: Cadena
INICIO
Regresa NombreProducto
FIN (Método ObtenerNombreProducto)
Método ObtenerPrecioLista: Real
INICIO
Regresa PrecioLista
FIN (Método ObtenerPrecioLista)
Método ObtenerCantidad: Entero
INICIO
Regresa Cantidad
FIN (Método ObtenerCantidad)
Método CalcularSumaProductos (pos: Entero)
INICIO
SumaProductos = Precio[pos] + Precio[pos]
FIN (Método ObtenerPrecioLista)
Termina Método de la clase CL_PRODUCTO
POO I.C. Hernández Oro Oscar Mauricio 16
Método de la clase CL_PERECEDERO derivado de CL_PRODUCTO
Atributos
Caducidad: Entero
UniVenta: Cadena
Unidad, Precio: Real
Comienza
Método ColocarCaducidad (x: Entero)
INICIO
Caducidad x
FIN (Método ColocarCaducidad)
Método ColocarUniVenta (x: Cadena)
INICIO
UniVenta x
FIN (Método ColocarUniVenta)
Método ColocarUnidad (x: Real)
INICIO
Unidad x
FIN (Método ColocarUnidad)
Método ObtenerCaducidad: Entero
INICIO
Regresa Caducidad
FIN (Método ObtenerCaducidad)
Método ObtenerUniVenta: Cadena
INICIO
Regresa UniVenta
FIN (Método ObtenerUniVenta)
Método ObtenerUnidad: Real
INICIO
Regresa Unidad
FIN (Método ObtenerUnidad)
POO I.C. Hernández Oro Oscar Mauricio 17
Método ColocarPrecio (x: Real, pos: Entero)
INICIO
Precio [pos] x
FIN (Método ColocarPrecio)
Método ObtenerPrecio: Real (pos: Entero)
INICIO
Regresa Precio [pos]
FIN (Método ObtenerPrecio)
Método CalcularPrecio (pos: Entero)
INICIO
Precio [pos] = (Unidad*PrecioLista)*(0.1(Caducidad-DiaCompra))
FIN (Método CalcularDescuento)
Termina Método CL_PERECEDERO derivado de CL_PRODUCTO
Método de la clase CL_NOPERECEDERO derivado de CL_PRODUCTO
Atributos
Largo: Real
Ancho: Real
Alto: Real
UniVenta2: Cadena
Unidad2, Precio2: Entero
Comienza
Método ColocarLargo (x: Real)
INICIO
Largo x
FIN (Método ColocarLargo)
Método ColocarAncho (x: Real)
INICIO
Ancho x
FIN (Método ColocarAncho)
POO I.C. Hernández Oro Oscar Mauricio 18
Método ColocarAlto (x: Real)
INICIO
Alto x
FIN (Método ColocarAlto)
Método ColocarUniVenta2 (x: Cadena)
INICIO
UniVenta2 x
FIN (Método ColocarUniVenta)
Método ColocarUnidad2 (x: Entero)
INICIO
Unidad x
FIN (Método ColocarUnidad2)
Método ObtenerLargo: Real
INICIO
Regresa Largo
FIN (Método ObtenerLargo)
Método ObtenerAncho: Real
INICIO
Regresa Ancho
FIN (Método ObtenerAncho)
Método ObtenerAlto: Real
INICIO
Regresa Alto
FIN (Método ObtenerAlto)
Método ObtenerUniVenta2: Cadena
INICIO
Regresa UniVenta2
FIN (Método ObtenerUniVenta2)
Método ObtenerUnidad2: Entero
INICIO
Regresa Unidad2
FIN (Método ObtenerUnidad2)
POO I.C. Hernández Oro Oscar Mauricio 19
Método ColocarPrecio (x: Real, pos: Entero)
INICIO
Precio [pos] x
FIN (Método ColocarPrecio)
Método ObtenerPrecio: Real (pos: Entero)
INICIO
Regresa Precio [pos]
FIN (Método ObtenerPrecio)
Método CalcularPrecio
INICIO
Precio [pos] = ((Largo*Ancho)*Alto)*PrecioLista
FIN (Método CalcularPrecio)
Termina Método CL_NOPERECDERO derivado de CL_PRODUCTO
Método de la clase CL_ALMACENADOR_PRODUCTO
COMIENZA MÉTODO GuardarProducto(x CL_PRODUCTO)
INICIO Crear Archivo (miarchivo,“DIRECTORIO.DAT”) Escribe (miarchivo,x) Cerrar (miarchivo)
FIN (Método GuardarProducto)
MÉTODO SacarProducto(x CL_PRODUCTO) INICIO
Abrir (miarchivo,”LECTURA”,”DIRECTORIO.DAT”) Leer (miarchivo,x) Cerrar (miarchivo)
FIN (Método SacarProducto)
TERMINA Método CL_ALMACENADOR_PRODUCTO
POO I.C. Hernández Oro Oscar Mauricio 20
PSEUDICÓDIGO DE CLASE CL_VISTA
CLASE CL_VISTA ATRIBUTOS
Dato: Variable
Mensaje: Cadena COMIENZA
//SETTERS MÉTODO ColocarDato (x:Variable) INICIO Dato x FIN (METÓDO ColocarDato) MÉTODO ColocarMensaje (x:Cadena) INICIO Mensaje x FIN (METÓDO ColocarMensaje)
// GETTERS MÉTODO ObtenerDato: Variable
INICIO Regresa Dato FIN (METÓDO ObtenerDato) MÉTODO ObtenerMensaje: Cadena INICIO Regresa Mensaje FIN (METÓDO ObtenerMensaje)
MÉTODO MostrarMensaje INICIO Escribe (Mensaje) FIN (METÓDO MostraMensaje)
MÉTODO RecibirDato INICIO Leer (Dato) FIN (MÉTODO RecibirDato)
TERMINA CLASE CL_VISTA
POO I.C. Hernández Oro Oscar Mauricio 21
6. DIAGRAMA DE SECUENCIA
POO I.C. Hernández Oro Oscar Mauricio 22
POO I.C. Hernández Oro Oscar Mauricio 23
POO I.C. Hernández Oro Oscar Mauricio 24
POO I.C. Hernández Oro Oscar Mauricio 25
POO I.C. Hernández Oro Oscar Mauricio 26
POO I.C. Hernández Oro Oscar Mauricio 27
POO I.C. Hernández Oro Oscar Mauricio 28
7. PSEUDOCÓDIGO DEL DIAGRAMA DE SECUENCIA
Clase CL_CALCULA
Variables
VI_CLAV, VI_CLAVPRO, VI_TEL, VI_CUO, VI_DIA, VI_ANT, VI_LIM, VI_CAD, VI_UNI2: Entero
VI_OPC, VI_OPC2, pos, VI_CAN: Entero
VI_NOM, VI_NOMPRO VI_DIR, VI_VEN, VI_VEN2: Cadena
VI_PREC, VI_UNI, VI_LAR, VI_ANC, VI_ALT: Real
VS_TOTAL, VS_TOTAL2, VS_TOTAL3, VS_PRECIO, VS_PRECIO2: Real
VI_SEX: Variable
Comienza
CL_VISTA PANTALLA NUEVO CL_VISTA
PANTALLA.ColocarMensaje ("Programa que calcula el monto a pagar por la compra de un cliente")
PANTALLA.MostrarMensaje
PANTALLA.ColocarMensaje (“Ingresa la clave del cliente”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_CLAV = PANTALLA.ObtenerDato
CLIENTE.ColocarClave (VI_CLAV)
PANTALLA.ColocarMensaje (“Ingresa el nombre completo del cliente”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_NOM = PANTALLA.ObtenerDato
CLIENTE.ColocarNombre (VI_NOM)
PANTALLA.ColocarMensaje (“Ingresa la edad del cliente”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_ED = PANTALLA.ObtenerDato
CLIENTE.ColocarEdad (VI_ED)
PANTALLA.ColocarMensaje (“Ingresa el sexo del cliente”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_SEX = PANTALLA.ObtenerDato
CLIENTE.ColocarSexo (VI_SEX)
POO I.C. Hernández Oro Oscar Mauricio 29
PANTALLA.ColocarMensaje (“Ingresa la dirección del cliente”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_DIR = PANTALLA.ObtenerDato
CLIENTE.ColocarDireccion (VI_DIR)
PANTALLA.ColocarMensaje (“Ingresa el número telefonico del cliente”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_TEL = PANTALLA.ObtenerDato
CLIENTE.ColocarTelefono (VI_TEL)
PANTALLA.ColocarMensaje (“¿Qué tipo de cliente es?”)
PANTALLA.MostrarMensaje
PANTALLA.ColocarMensaje (“1. BASICO”)
PANTALLA.MostrarMensaje
PANTALLA.ColocarMensaje (“2. ESPECIAL”)
PANTALLA.MostrarMensaje
PANTALLA.ColocarMensaje (“3. PREMIUM”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_OPC = PANTALLA.ObtenerDato
Caso 1:
PANTALLA.ColocarMensaje (“Ingresa la cuota mensual del cliente”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_CUO = PANTALLA.ObtenerDato
BASICO.ColocarCuota (VI_CUO)
PANTALLA.ColocarMensaje (“Ingresa el día en que se realizó la compra”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_DIA = PANTALLA.ObtenerDato
BASICO.ColocarDia (VI_DIA)
BASICO.CalcularPorcentaje
BASICO.CalcularTotal
POO I.C. Hernández Oro Oscar Mauricio 30
VS_TOTAL = PANTALLA.ObtenerDato
PANTALLA.ColocarMensaje (“El total a pagar es”+VS_TOTAL)
PANTALLA.MostrarMensaje
BASICO.ColocarTotal (VS_TOTAL)
Caso 2:
PANTALLA.ColocarMensaje (“Ingresa la antigüedad del cliente”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_ANT = PANTALLA.ObtenerDato
ESPECIAL.ColocarAntugüedad (VI_ANT)
ESPECIAL.CalcularPorcentaje2
ESPECIAL.CalcularTotal2
VS_TOTAL = PANTALLA.ObtenerDato
PANTALLA.ColocarMensaje (“El total a pagar es”+VS_TOTAL)
PANTALLA.MostrarMensaje
ESPECIAL.ColocarTotal2 (VS_TOTAL)
Caso 3:
PANTALLA.ColocarMensaje (“Ingresa el límite de la tarjeta de crédito del
cliente”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_LIM = PANTALLA.ObtenerDato
PREMIUM.ColocarLimite (VI_LIM)
PREMIUM.CalcularPorcentaje3
PREMUIM.CalcularTotal3
VS_TOTAL = PANTALLA.ObtenerDato
PANTALLA.ColocarMensaje (“El total a pagar es”+VS_TOTAL)
PANTALLA.MostrarMensaje
PREMIUM.ColocarTotal3 (VS_TOTAL)
POO I.C. Hernández Oro Oscar Mauricio 31
PANTALLA.ColocarMensaje (“Ingresa la clave del producto”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_CLAVPRO = PANTALLA.ObtenerDato
PRODUCTO.ColocarClaveProducto (VI_CLAVPRO)
PANTALLA.ColocarMensaje (“Ingresa el nombre del producto”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_NOMPRO = PANTALLA.ObtenerDato
PRODUCTO.ColocarNombreProducto (VI_NOMPRO)
PANTALLA.ColocarMensaje (“Ingresa la cantidad que hay del producto”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_CAN = PANTALLA.ObtenerDato
PRODUCTO.ColocarCantidad (VI_CAN)
PANTALLA.ColocarMensaje (“Ingresa el precio de lista del producto”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_PREC = PANTALLA.ObtenerDato
PRODUCTO.ColocarPrecioLista (VI_PREC)
PANTALLA.ColocarMensaje (“¿Qué tipo de producto es?”)
PANTALLA.MostrarMensaje
PANTALLA.ColocarMensaje (“1. PERECEDERO”)
PANTALLA.MostrarMensaje
PANTALLA.ColocarMensaje (“2. NO PERECEDERO”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_OPC2 = PANTALLA.ObtenerDato
Caso 1:
PANTALLA.ColocarMensaje (“Ingresa la fecha de caducidad del producto”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_CAD = PANTALLA.ObtenerDato
POO I.C. Hernández Oro Oscar Mauricio 32
PERECEDERO.ColocarCaducidad (VI_CAD)
PANTALLA.ColocarMensaje (“Ingresa unidad de venta del producto (KG,
PZA, LITRO, CM CUBICO)”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_VEN = PANTALLA.ObtenerDato
PERECEDERO.ColocarUniVenta (VI_VEN)
PANTALLA.ColocarMensaje (“Ingresa el número de unidades compradas”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_UNI = PANTALLA.ObtenerDato
PERECEDERO.ColocarUnidad (VI_UNI)
PERECEDERO.CalcularPrecio
VS_PRECIO = PANTALLA.ObtenerDato
PANTALLA.ColocarMensaje (“El precio del producto es:”+VS_PRECIO)
PANTALLA.MostrarMensaje
PERECEDERO.ColocarPrecio (VS_PRECIO)
Caso 2:
PANTALLA.ColocarMensaje (“Ingresa las dimensiones del producto”)
PANTALLA.MostrarMensaje
PANTALLA.ColocarMensaje (“LARGO”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_LAR = PANTALLA.ObtenerDato
NOPERECEDERO.ColocarLargo (VI_LAR)
PANTALLA.ColocarMensaje (“ANCHO”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_ANC = PANTALLA.ObtenerDato
NONOPERECEDERO.ColocarAncho (VI_ANC)
POO I.C. Hernández Oro Oscar Mauricio 33
PANTALLA.ColocarMensaje (“ALTO”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_ALT = PANTALLA.ObtenerDato
NOPERECEDERO.ColocarAlto (VI_ALT)
PANTALLA.ColocarMensaje (“Ingresa unidad de venta del producto (KG,
PZA, LITRO, CM CUBICO)”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_VEN2 = PANTALLA.ObtenerDato
NOPERECEDERO.ColocarUniVenta2 (VI_VEN2)
PANTALLA.ColocarMensaje (“Ingresa el número de unidades compradas”)
PANTALLA.MostrarMensaje
PANTALLA.RecibirDato
VI_UNI2 = PANTALLA.ObtenerDato
NOPERECEDERO.ColocarUnidad2 (VI_UNI2)
PERECEDERO.CalcularPrecio2
VS_PRECIO2 = PANTALLA.ObtenerDato
PANTALLA.ColocarMensaje (“El precio del producto es:”+VS_PRECIO2)
PANTALLA.MostrarMensaje
NOPERECEDERO.ColocarPrecio2 (VS_PRECIO2)
PANTALLA.CalcularSumaProductos
PANTALLA.MostrarMensaje
ALMACENAR_PRODUCTO.ColocarTotal (VI_TOTAL)
Termina pseudocódigo del diagrama de clases
POO I.C. Hernández Oro Oscar Mauricio 34
8. REQUERIMIENTOS MÍNIMOS DE HW Y SW
Para poner a funcionar “PROGRAMA TIENDA” se requiere de las siguientes especificaciones de software y hardware.
Hardware (PC) *Procesador Intel® Pentium® 233 MHz o superior. *128 MB RAM (recomendado) *400 MB de espacio disponible en disco duro. *Unidad grabadora CD-ROM *Monitor con resolución SVGA o superior
Hardware (Laptop) *Procesador Intel Atom Inside. *64 MB RAM. *400 MB de Disco Duro. *Unidad de CD-ROM (Para grabar CD’s Usuario y Técnico). *Monitor con resolución SVGA o superior.
Software *Microsoft® Windows® 98 en adelante * Software adecuado para leer documentación formato PDF
POO I.C. Hernández Oro Oscar Mauricio 35
9. RECOMENDACIONES
Las recomendaciones que se hacen, para la ejecución correcta del programa, es no digitalizar números, en el campo de cadenas, y no digitalizar cadenas, en el campo de números, esto podría arrojar datos incorrectos, o provocar que el programa se detenga. Se recomienda leer el manual de usuario, para tener una idea más clara de cómo es la ejecución del programa, ahí vienen pantallas para que el usuario pueda procesar y digitalizar valores reales.
10. CODIFICACION COMENTADA
El código que incluye el programa, se realizó de manera que se logre la solución al problema. Por lo cual, se han definido variables con nombres idénticos a los datos pedidos. Así el lector del código podrá entender de manera más clara, como es que se están codificando los procesos, para llegar a una solución más cercana. Se le han dado valores a algunas variables, para evitar la detención del programa en algún momento. Es por ello que también se define en el manual de usuario. Las operaciones que se realizan, se han introducido de manera que, para cada solución, incluya una operación inmediata. El despliegue de resultados, se han derivado de las operaciones realizadas, así como también, para mostrar la solución al problema indicado.