definición de situaciones y manejo de casos giovanni hernández p. nivel 2

54
Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Upload: eugenia-rey-olivares

Post on 24-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Definición de situaciones y manejo de casos

Giovanni Hernández P.Nivel 2

Page 2: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

CASO DE ESTUDIOEnunciado En algunas tiendas, existen procesos de control de inventarios y de control de estadísticas para poder realizar

pedidos. Además, se realizan actividades de mercadeo con sus productos más vendidos. Estos procesos y actividades sirven para poder tomar decisiones en cuanto a los productos que se deben vender en la tienda.

En este caso, tenemos una pequeña tienda que vende cuatro productos, para cada uno de los cuales se debe manejar la siguiente información: (1) su nombre, (2) su tipo (puede ser un producto de papelería, de supermercado o de droguería), (3) la cantidad actual del producto en la tienda (número de unidades disponibles para la venta que hay en bodega), (4) el número de productos por debajo del cual se debe hacer un nuevo pedido al proveedor y (5) el precio base de venta por unidad. Para calcular el precio final de cada producto, se deben sumar los impuestos que define la ley. Dichos impuestos dependen del tipo de producto: uno de papelería tiene un IVA del 16%, uno de supermercado del 4% y uno de droguería del 12%. Eso quiere decir, que si un lápiz tiene un precio base de $10, el precio final será de $11,6 considerando que un lápiz es un producto de papelería, y sobre estos se debe pagar el 16% de impuestos.

El programa de manejo de esta tienda debe permitir las siguientes operaciones: (1) vender a un cliente un cierto número de unidades de un producto, (2) hacer un pedido de un producto para el cual ya se llegó al tope mínimo definido y (3) mostrar algunas estadísticas de la tienda. Dichas estadísticas son: (a) el producto más vendido, (b) el producto menos vendido, (c) la cantidad total de dinero obtenido por las ventas de la tienda y (d) el promedio de ventas de la tienda (valor total de las ventas dividido por el número total de unidades vendidas de todos los productos).

Page 3: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Interfaz GUI

Page 4: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Taller No 1

Entender el problema del caso de estudio tienda

Page 5: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Nuevos elementos del modelado

Caso de estudio (La tienda)• Nuevos elementos del modelado

Entero int

Real double

Cadena de caracteres String

double valorUnitario = 11.6;Int valorPesos = (int) valorUnitario;

La parte entera de un valor real

14 % 2 2

Calcular el residuo

Page 6: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Nuevos elementos del modelado

Caso de estudio (La tienda)• Valores lógicos (Verdadero - Falso)

Valor lógico boolean

Ej.Modelar la característica de un producto si es o no subsidiado

Valores que tiene true, falseSintaxis Javapublic class Producto{

private boolean subsidiado;}

Page 7: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Nuevos elementos del modelado

Caso de estudio (La tienda)• Un carácter (Un carácter alfanumérico)

Un carácter char

Ej.Un producto clasificado en tres grupos: A, B, C, según su calidad

Valores que tiene un solo carácterSe le asigna en comilla sencilla ‘cadena de caracteres comilla doble “

Sintaxis Javapublic class Producto{

private char calidad;}

Page 8: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Constantes para definir el dominio de un atributo

Ej.Modelar las características del tipo de producto

1. Supermercado2. Papelería3. Droguería

Page 9: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Constantes para definir el dominio de un atributo …

public class Producto{

// - - - - - - - - - - - - - - -// Constantes // - - - - - - - - - - - - - - -

public final static int PAPELERIA = 1; public final static int SUPERMERCADO = 2;

public final static int DROGUERIA = 3;// - - - - - - - - - - - - - - -// Atributos // - - - - - - - - - - - - - - -

private int tipo;

}

Esta instrucción puede ir enCualquier método de la claseProducto

tipo = PAPELERIA;tipo = SUPERMERCADO;tipo = DROGUERIA;

Las constantes siempre van en mayúsculas. Si el nombre los compone mas de una palabra se utiliza en “_” para unirlas.

Page 10: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Constantes para representar valores inmutables

Valores que no van a cambiar durante la ejecución de un programa

public class Producto{

// - - - - - - - - - - - - - - -// Constantes // - - - - - - - - - - - - - - -

private final static double IVA_PAPEL = 0.16;private final static double IVA_FARMACIA = 0.12;private final static double IVA_MERCADO = 0.04;

}

precio = valorUnitario * (1 + IVA_MERCADO); precio = valorUnitario * (1 + 0.04);

Equivale a

Page 11: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Taller No 2

Mostrar el uso de constantes para representar los valores posibles de

alguna característica

Page 12: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Manejo de asociaciones opcionales

Modificar el enunciado de la tienda para que el programa maneje 1,2,3 y 4 productos

Tienda Producto

pr1 0..1

pr2 0..1

pr3 0..1

pr 0..1

Tienda Producto

pr1 0..1

Diagrama anterior Nuevo diagrama

Cardinalidad : Define el No de instancias de una clase que se puede manejara través de una asociación.

Page 13: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Manejo de asociaciones opcionalesModificar el enunciado de la tienda para que el

programa maneje 1,2,3 y 4 productos

Tienda Producto

pr1 0..1

pr2 0..1

pr3 0..1

pr 0..1

Nuevo diagrama

null : permite representar un objeto correspondiente a una asociación que no esta presente.

: Tienda

: Producto

: Productopr2 = null;pr3 = null;

pr1

pr4

Page 14: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Mostrar declaraciones de las clases Tienda y Producto

Tienda

+dineroEnCaja

Producto

+nombre+tipo+valorUnitario+cantidadBodega+cantidadMinima+totalProductosVendidos

pr1

pr2

pr3

pr4

public class Tienda{

// ---------------------// Atributos//----------------------

private double dineroEnCaja;// ---------------------// Relaciones//----------------------

private Producto pr1;private Producto pr2;private Producto pr3;private Producto pr4;

}

Page 15: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Diagrama de clases

Page 16: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Taller No 3

Mostrar las declaraciones de las clases Tienda y Producto

Page 17: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Expresiones

OPERADORES RELACIONALESPermiten determinar un valor de verdad

(VERDADERO O FALSO) para una situación del mundo.

Es igual que == valorUnitario == 55.75

Es diferente de != tipo != PAPELERIA

Es menor que < cantidadBodega < 120

Es mayor que > cantidadBodega > cantidadMinima

Es menor o igual que <= valorUnitario <= 100.0

Es mayor o igual que >= valorUnitario >= 100

Describen situaciones de un objeto

Page 18: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Mapa Conceptual No 1

Identificar el funcionamiento los operadores relacionales

Page 19: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Expresiones

OPERADORES LOGICOSPermiten describir situaciones mas complejas, a

partir de varias expresiones relacionales o atributos de tipo boolean

(Y) && tipo == SUPERMERCADO && totalProductosVendidos == 0

(O) || tipo == SUPERMERCADO || tipo == PAPELERIA

(NO) ! !(tipo == PAPELERIA)

Page 20: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Expresiones

OPERADORES SOBRE CADENAS DE CARACTERES

Concatenación + return “Compre el producto” + nombre + “ por solo $” + valorUnitario;

Comparación equals return nombre.equals(buscado);

Extracción de un caracter

charAt cd1.charAt(1)

Page 21: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Ej.

String cad1 = “viva Pasto”;String cad2 = “viva pasto”;

cad1.equals(cad2) false Existe una P mayúscula

Cad1.equalsIgnoreCase(cad2) true Compara e ignora si son mayúsculas o minúsculas

Cad1.charAt(1) ‘i’ Las cadenas de caracteres se enumeran desde 0

Page 22: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Otros operadores de asignación

• Operador ++: Se aplica a valores enteros• Operador --: Se aplica a valores enteros• Operador +=: Incrementa un atributo en

cualquier valor• Operador -=: Decrementa un atributo en

cualquier valorcantidadBodega ++;cantidadBodega = cantidadBodega + 1;

Page 23: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Taller No 4

Generar habilidad en la utilización de asignaciones y las expresiones como un medio para transformar el estado

de un objeto

Page 24: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Clases y objetos

Tienda

+dineroEnCaja

Producto

+nombre+tipo+valorUnitario+cantidadBodega+cantidadMinima+totalProductosVendidos

pr1

pr2

pr3

pr4

Diagrama de objetos

Page 25: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Creación de un objeto

Producto p = new Producto();

:Producto

nombre =tipo =valorUnitario =cantidadBodega =cantidadMinima = totalProductoVendidos =

pr1

No tiene valores iniciales

Page 26: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Métodos constructores

Permiten inicializar los valores de un objeto y son invocados automáticamente al momento de ejecutar la instrucción de creación

Reglas:1.Se debe llamar igual que la clase2.No puede tener ningún tipo de retorno

Page 27: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Métodos constructores …

Ej.Para la clase productopublic Producto(){tipo = 0;nombre = “”;valorUnitario = 0.0;cantidadBodega = 0;cantidadMinima = 0;totalProductoVendidos = 0}

Page 28: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Métodos constructores …

Producto p = new Producto();

:Producto

nombre = “”tipo = 0valorUnitario = 0.0cantidadBodega = 0cantidadMinima = 0totalProductoVendidos = 0

pr1

Con valores iniciales a través del constructor

Page 29: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Métodos constructores …

Ej.Una nueva tienda acaba de abrir y quiere utilizar el programa a

del caso de estudio con los siguientes productos:1. Frasco jarabe para la gripe, producto de droguería, con un

valor base de $ 7.2002. Botella de alcohol, producto de droguería, a $2.800 la unidad3. Kilo de queso, producto de supermercado, a $ 4.100 la unidad4. Resaltador, producto de papelería, a $ 3.500 la unidad

Page 30: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Métodos constructores …Producto Cantidad en bodega Tope mínimo

Jarabe 14 10

Alcohol 12 8

Queso 10 4

Resaltador 20 10

Código

Producto pr1 = new Producto(Producto.Drogueria, “Jarabe”, 7200.0, 14, 10)

Page 31: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Taller No 5

Generar habilidad en el uso de los constructores de las clases para crear

escenarios

Page 32: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Instrucciones condicionales

Permite plantear la solución al problema considerando los diferentes casos que se pueden presentar

Ej.Cuando la cantidad que se desea vender es

mayor a la que existe en bodega.Cuando la cantidad que se desea vender esta

disponible en bodega.

Page 33: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Instrucciones condicionales…Caso Expresión que describe el caso Algoritmo para resolver el problema de ese caso

1 cantidad > cantidadBodega // Vende todas las unidades disponiblestotalProductosVendidos += cantidadBodega;cantidadBodega = 0;

2 Cantidad <= cantidadBodega // vende lo pedido por el usuariototalProductosVendidos += cantidad;cantidadBodega -= cantidad;

Page 34: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Instrucciones condicionales…Codigo Javapublic class Producto{

…if(cantidad > cantidadBodega){

totalProductosVendidos += cantidadBodega;cantidadBodega = 0;

}else{

totalProductosVendidos =+ cantidad;cantidadBodega -= cantidad;

}

If () {}Else { }

Page 35: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Instrucciones condicionales…

• Condicionales en cascadaCaso Expresión que describe el caso Algoritmo para resolver el problema de ese caso

1 (tipo==SUPERMERCADO) return IVA_MERCADO;

2 (tipo==DROGUERIA) return IVA_FARMACIA;

3 (tipo==PAPELERIA) return IVA_PAPEL;

Page 36: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Instrucciones condicionales…Codigo Javapublic double darIVA(){

if(tipo == PAPELERIA){

return IVA_PAPEL;}else if(tipo == SUPERMERCADO){

return IVA_MERCADO;}else{

return IVA_FARMACIA;}

}

If () {}Else if() { }Else {}

Page 37: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Mapa Conceptual

Identificar el funcionamiento de una instrucción condicional

Page 38: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Taller No 6

Utilizar las instrucciones condicionales simples para expresar

el cambio de estado que debe hacerse en un objeto, en cada uno de

los casos identificados

Page 39: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Ej. RequerimientoNombre R1-Dar el nombre del producto mas vendido entre el producto 1 y el

producto 2

Resumen Se requiere calcular y retorna el producto que mas se ha vendido en la tienda, entre el producto1 y el producto2

Entradas

Ninguna

Resultados

Se ha calculado y retornado el nombre del producto mas vendido.

Page 40: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Ej. RequerimientoNombre R2-Dar el nombre del producto mas vendido entre el producto1, el

producto2 y el prducto3.

Resumen Se requiere calcular y retorna el producto que más se ha vendido en la tienda, entre el producto1 , el producto2 y el producto3.

Entradas

Ninguna

Resultados

Se ha calculado y retornado el nombre del producto mas vendido.

Page 41: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Ej. RequerimientoNombre R3-Dar el nombre del producto mas vendido entre el producto1, el

producto2 ,el prducto3 y el producto4.

Resumen Se requiere calcular y retorna el producto que mas se ha vendido en la tienda, entre el producto1 , el producto2 , el producto3 y el producto4.

Entradas

Ninguna

Resultados

Se ha calculado y retornado el nombre del producto mas vendido.

Page 42: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

CodigoPublic String darProductoMasVendido(){

int valor1 = p1.darProductosVendidos();int valor2 = p2.darProductosVendidos();int valor3 = p3.darProductosVendidos();int valor4 = p4.darProductosVendidos();

if(valor1 > valor2 && valor1 > valor3 && valor1 > valor4){

return p1.darNombre();}else if(valor2 > valor1 && valor2 > valor3 && valor2 > valor4){

return p2.darNombre();}else if(valor3 > valor1 && valor3 > valor2 && valor3 > valor4){

return p3.darNombre();}else if(valor4 > valor1 && valor4 > valor2 && valor4 > valor3){

return p4.darNombre();}

}

Page 43: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Ej. RequerimientoNombre R2-Dar el producto con menos existencias

Resumen S requiere calcular y retornar el nombre del producto con menos existencias (Cantidad en bodega)

Entradas

Ninguna

Resultados

Se ha calculado y retornado el producto con menos existencias.

Page 44: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Instrucciones condicionales compuestas

• switch• Representa un conjunto de casos• Cada caso tiene un algoritmo diferente• Cada caso debe esta identificado con un valor

entero

Page 45: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Estructura de la instrucción switch en java

switch(expresion){

case constante : solución del caso 1break;

case constante : solución del caso 2break;

….}

Page 46: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Ej.public double darIva(){

double iva = 0.0;switch( tipo){

case PAPELERIA:iva = IVA_PAPEL;break;

case SUPERMERCADO:iva = IVA_MERCADO;break;

case DROGUERIA:iva = IVA_FARMACIA;break;

}return iva;

}

Page 47: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Ej.Nombre R3-Dar el nombre del tipo de producto

Resumen Retorna el nombre del tipo de producto. Por ejemplo, si el producto es de tipo SUPERMERCADO, debe retornar “El producto es de supermercado”

Entradas

Ninguna

Resultados

Retorna el nombre del tipo de producto.

Método de la clase Producto

Page 48: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Ej.Nombre R4-Aumentar el precio del producto

Resumen Aumenta el precio del producto de acuerdo con la siguiente regla: si es un producto de droguería debe aumentar el 1%, si es de supermercado el 3% y si es de papelería el 2%

Entradas

Ninguna

Resultados

El valor unitario del producto se ha aumentado en el porcentaje correspondiente.

Método de la clase Producto

Page 49: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Ej.Nombre R5-Retorna el precio final del producto

Resumen Retorna el precio final del producto identificado por el numero si el numero es 1 se debe retornar el precio del primer producto, si el numero es 2 se debe entregar el precio del producto 2, si el numero es 3 se debe entregar el precio del producto 3 y si el numero es 4 debe entregar el precio del producto 4.

Entradas

Numero de identificación

Resultados

Retorna el precio del producto de acuerdo con el numero de identificación.

Método de la clase Producto

Page 50: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Ej.Nombre R5-Retorna el precio final del producto

Resumen Retorna el precio final del producto identificado por nombre del producto.

Entradas

Nombre del producto

Resultados

Retorna el precio del producto de acuerdo con el nombre del producto.

Método de la clase Producto

Page 51: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Taller No 7

Utilizar las instrucciones condicionales simples para expresar conjuntos de casos y soluciones asociadas con los mismos.

Page 52: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Responsabilidades de una clase

Tipos de métodos• Métodos constructores : Tienen la responsabilidad

de inicializar los valores de los atributos de un objeto durante su creación

• Métodos modificadores: tienen la responsabilidad de cambiar el estado de los objetos de la clase. (“hacer”)

• Métodos analizadores: Tienen la responsabilidad de analizar información a partir del estado de los objetos de una clase. (“Saber”)

Page 53: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Responsabilidades de una clase…

• Una clase es responsable de administrar su propia información.

• Una clase es responsable de ayudar a sus vecinos del mundo y colaborar con ellos en la solución de problemas.

• Primero los constructores• Segundo los modificadores• Tercero los analizadores

Page 54: Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

Mapa conceptual No 3

Identificar cuáles son las responsabilidades de una clase.