FUNDAMENTOS DE INFORMÁTICA



Documentos relacionados
INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ

GRAMMAR Aplicación de apoyo para el aprendizaje de los lenguajes formales.

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C)

FUNDAMENTOS DE INFORMÁTICA

La informática es la ciencia que estudia el procesamiento de la información (texto, imagen, sonido...) mediante máquinas. A estas máquinas se les

PROGRAMACIÓN ORIENTADA POR OBJETOS EN JAVA

PEQUEÑOS RUMIANTES. Gestión de vacunas por explotación

Tema 3. Diagramas de Clases y Objetos C H R I STO PHER E X P Ó S I TO I Z Q U I ERDO A I R A M E X P Ó S I TO M Á R Q UEZ I S R A E L LÓ P EZ P L ATA

CAPÍTULO 8 Persistencia de Datos

NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS

a3asesor doc Gestor Documental Guía Gestor de Campañas

Tienda online: mayoristas.fibrahumana.com. Instrucciones paso a paso para realizar y gestionar pedidos

FACULTAD DE INGENIERÍA

Además esta misma estructura de menú la reutilizaremos en las siguientes partes de la practica

Programación Orientada a Objetos (Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información - UNED)

Cómo descargar los perfiles ICC desde el Centro de Perfiles ICC de Antalis

Capítulo 3. Introducción a la programación. Continuar

Proyecto de TIENDA ONLINE

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño variable y uso de ciclos en otros contextos

Práctica 4 Concurrencia en Java

Botones de la Barra de Herramientas / Otros botones

Manual del sistema de pre documentación Dypaq

Guía práctica de estudio 07: Herencia

Funciones básicas del depurador

Guía de Usuario TARJETA REGALO

SYLLABUS de la Asignatura. : Programación I

RECIBOS. Cti19_14 C.T.I. Cálculo y Tratamiento de la Información

WINDOWS 98/Me CONFIGURACIÓN DE WINDOWS III. Sistema

INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C)

Programación orientada a objetos I

Taller de Programación I. Tema 08: Estructuras Dinámicas de Datos en Java

PROGRAMA FORMATIVO Programación para dispositivos móviles Android

Programación orientada a objetos. Introducción

1. MEJORAS EN LA CONSULTA DE CUENTAS EXPEDIENTE MEJORAS EN LA ELABORACIÓN DE MANDAMIENTOS DE PAGO... 6

1: PROCESO BÁSICO DE DESARROLLO CON

Introducción. Propósito. Ámbito del Sistema. Ingeniería del Software I

Manual Clientes. Tienda Online de Finanzauto

Manual para la página de usuarios de EstasWifi

Instituto Tecnológico de Zacatecas. Departamento de Sistemas y Computación. Licenciatura en Informática. Organización de Datos

LA CLASE VECTOR DEL API JAVA. MÉTODOS TRIMTOSIZE Y ENSURECAPACITY EJEMPLO Y EJERCICIOS RESUELTOS. (CU00922C)

WINDOWS 7 ESCRITORIO Fecha y hora. VENTANAS

Interfaz interfaz textual gráficos

Estilos y temas 1. CREAR UN ESTILO. amos a ver una serie de herramientas que te ayudarán a aplicar fácilmente formatos y diseños a tus documentos.

Centro de Capacitación en Informática

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

Estructura de datos y Programación

Manual de usuario Expertos

Examen No. 2. Valor: 50 pts (30% de la Nota Final) Tiempo Máximo: 2.5 Horas Fecha: 28 de Marzo del 2017

Manual de Usuario Usuario InvenSoft

07 Variables. 7.1 Variables globales Definición

Unidad de aprendizaje: maneja componentes del equipo de cómputo. Numero: 1

Manual para el Mantenimiento de Productos

DESARROLLO DE APLICACIONES EN ANDROID

Principios de Computadoras II

PARTE TEÓRICA - TEST [2,5 PUNTOS]:

09/12/2010 Módulo de Facturas de clientes

Práctica 11c. Práctica 11c. José M. Ordax

09/12/2010 Módulo de Registro de elaboraciones

Examen de Introducción al Software (Ingeniería Informática)

EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET...

Herencia y Clases Abstractas

Forma Básica Clase Java

MOO - Metodología y Programación Orientada a Objetos

TIPO Y MÉTODO ITERATOR. ERROR JAVA.UTIL.CONCURRENT MODIFICATIONEXCEPTION. RESUMEN DE TIPOS DE BUCLES EN JAVA. (CU00667B)

Elabore el diagrama de clases en UML y la codificación de un programa para resolver los siguientes problemas:

Vision para Mac. 24 noviembre GUÍA DEL USUARIO

Examen de Programación II (Ingeniería Informática)

índice MÓDULO 1: Word 2007 Parte 1ª Word 2007 TEMA 1. Primeros Pasos TEMA 2. Introducir Texto TEMA 3. Trabajar con un Documento

EJERCICIO 30 DE EXCEL

INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00924C)

Transcripción:

FUNDAMENTOS DE INFORMÁTICA GESTIÓN DE TIENDA ON-LINE Miguel Gómez Morón Grado en Ingeniería Mecánica Curso 2013/2014 Centro asociado de Cádiz

INDICE ENUNCIADO DE LA PRÁCTICA:...2 ETAPA 1.1....2 ETAPA 1.2....2 ETAPA 2.1....3 ETAPA 2.2....4 ETAPA 3.1....5 1

ENUNCIADO DE LA PRÁCTICA: El objetivo de la práctica es implementar una aplicación capaz de gestionar una tienda on-line de componentes informáticos, para simplificarla se han pasado por alto algunos detalles del sistema de gestión, centrándose en la creación de un sistema de stock para la tienda, los componentes que en ella se comercializan, las ventas en proceso, las ventas completadas y el control sobre estas. La aplicación se realizara usando lenguaje java y con el editor bluej, una vez completada cada etapa de la práctica, esta debe ser ejecutable desde símbolo de sistema. ETAPA 1.1. En esta primera parte se crea la clase Componente, esta clase simboliza los productos que se venderán en la tienda virtual, y el resto de clases de la aplicación están orientadas a gestionar esta clase o agrupaciones de ella. La clase Componente posee los campos: Nombre del fabricante Tipo String ej. ( HP ) Código del fabricante Tipo int ej. (123) Código del producto Tipo int ej. (321) Descripción del producto Tipo String ej. ( Impresora ) Precio Tipo doublé (125.65) El constructor de esta clase obliga a introducir todos estos campos al crear el objeto. Componente dispone de 2 métodos por cada uno de estos campos, el primero un set para poder modificarlo y el segundo un get para obtener el campo como valor de retorno previendo su uso más adelante, además de un método adicional que muestra en la consola el valor adjudicado a cada campo con un texto descriptivo de este. ETAPA 1.2. Se confecciona la clase Lanzador, que está dirigida a ser la que permita que la aplicación pueda ser ejecutada por java fuera del editor bluej, para esto se dota con un método main, que en esta etapa de la práctica se limita a la creación de algunos componentes que puedan servir de muestra, introducir cada uno de los valores de sus campos y una vez creados hacer uso de sus métodos para mostrar los valores de sus campos. 2

ETAPA 2.1. Se crea la clase CarroCompra, la cual simboliza el carro de la compra que un cliente usa para incluir los componentes que desea comprar, para la creación de esta clase se importan desde java.util las clases ArrayList y Calendar, CarroCompra dispone de los campos: carrocompra fecha cliente total metododepago Es un ArrayList de objetos de la clase Componente. De la clase Calendar importada, deja constancia de la fecha y hora en la que se crea el objeto carrocompra. Tipo String con el código del cliente al cual pertenece el carrocompra Tipo doublé, es la suma de todos los atributos precio de los componentes que se almacenen en el carro Representa el tipo de pago que el cliente elije para formalizar la compra, puede ser tarjeta de crédito o transferencia bancaria, para este fin se ha usado una clase enum que tan solo permite estas dos opciones El constructor de la clase necesita que le aporten el identificador de cliente e incorpora por sí misma la fecha de la creación del carro. Los métodos permiten agregar y quitar componentes de la lista distinguiendo cada objeto componente por su campo codigodelproducto y actualizando el total cada vez, también posee métodos para presentar en pantalla el listado de los productos contenidos en la lista, mostrando también el identificador de cliente, el número de objetos contenidos en la lista y el total, un método similar ejerce la misma función mostrando complementariamente todos los campos de cada producto contenido en la lista. El método comprar simula la formalización de la compra, para esto al hacer la llamada a este método se debe introducir el tipo de pago elegido, este método crea un nuevo objeto de la clase Venta el cual se detalla a continuación y el eliminado del carrocompra. Clase Venta, las instancias de ventas poseen los mismos atributos que carrocompra, el campo fecha no contendrá la fecha de creación del carro, este contendrá la fecha de formalización de la compra (creación del objeto de la clase Venta), aunque se desde bluej podemos crear una instancia de Venta, está dirigida a que sean creadas desde el método comprar de los objetos carrocompra, a los campos mencionados se añade el campo metododepago, destinado a almacenar el tipo de pago elegido en carrocompra para formalizar la compra. En la realización de todas las clases se tiene en cuenta aportar toda la documentación necesaria para poder ser usadas con javadoc y así hacer accesible nuestra aplicación a personas ajenas al proyecto de una manera fácil. La clase Lanzador es modificada para que cree una instancia de la clase CarroCompra y añada dos componentes, a continuación elimina uno de ellos, muestra el contenido del carro por pantalla, después formaliza la compra creando un objeto venta. 3

ETAPA 2.2. Se crea la clase ComponenteEnStock, los objetos creados por esta clase son simplemente la combinación de un objeto componente con un nuevo atributo cantidad, que simboliza la cantidad de este componente que tenemos en nuestra tienda. Cuenta con dos constructores, uno de ellos requiere que le aportemos un componente y una cantidad, mientras que el otro hace una llamada al constructor de la clase componente, de este modo crea el objeto componente y después lo usa para crear el objeto componenteenstock, sus método principales aumentan y disminuyen el campo cantidad y consultan su valor. Se crea Stock, esta clase importa de java.util la clase HashMap, la cual crea una lista de componenteenstock, adjudicando a cada uno una etiqueta para ser llamado por esta, para esta etiqueta usamos el atributo códigodelproducto, esta clase relaciona varias clases, entre ellas CarroCompra y ComponenteEnStock, su constructor solamente crea una HashMap vacío. Sus métodos incorporan componenteenstock a la lista y también consultan su cantidad en stock. Se crean dos clases de características similares, ListaCarro, que es una lista de los objetos carrocompra existentes, la cual permite consultar los atributos de cada objeto añadido a la lista; y la clase ListaVenta que contiene una lista de los objetos de la clase Venta existentes, igualmente permite consultar los atributos de cada objeto añadido a la lista, así como hacer una búsqueda por atributo fecha de objetos que coincidan con los márgenes indicados. Por ultimo para esta etapa se crea la clase Tienda, mediante su constructor esta clase asocia a todas las anteriores para que interactúen entre ellas y consiguiendo mediante llamadas a constructores y métodos de todas las demás controlar toda las funciones tanto de un administrador de la tienda como de un cliente, estos métodos pueden crear componentes, añadirlos al stock, manipular este, hacer todas las consultas y búsquedas, gestionar devoluciones, crear carros de la compra, añadir y eliminar componentes de estos y formalizar las compras. El método main de la clase Lanzador es nuevamente actualizada para desde símbolo de sistema, crear una tienda virtual y generar un pequeño stock inicial, una vez generado muestra un sistema de menús que nos permiten acceder a la aplicación como administrador o como cliente, así como a todos los métodos que a cada uno de ellos corresponde. 4

ETAPA 3.1. En esta etapa se crean dos niveles de subclases de la ahora superclase Componente, cada una de ellas heredando los atributos de la anterior y añadiendo los propios, así como el método para mostrar en la consola sus atributos, la nueva estructura de subtipos de componente es la siguiente: 1. Periférico: subclase de componente, el nuevo atributo que contiene es tipo de conexión, de tipo String. 1.1. Teclado: subclase de periférico, el nuevo atributo que contiene es idioma del teclado, de tipo String. 1.2. Ratón: subclase de periférico, el nuevo atributo que contiene es número de botones, de tipo int. 1.3. Impresora: subclase de periférico, el nuevo atributo que contiene es tipo de impresora, de tipo enum que permite seleccionar tinta o laser. 2. Placa base: subclase de componente, sus nuevos atributos son: ancho de tipo int, alto de tipo int, tipo de procesador de tipo String y tipo de ranura de memoria de tipo String. 3. Memoria: subclase de componente, su nuevo atributo es tamaño que es de tipo int. 3.1. Flash: subclase de memoria, su nuevo atributo es velocidad de lectura de tipo int. 3.2. DiscoDuro: subclase de memoria, su nuevo atributo es tipo de disco duro de tipo enum permite distinguir entre externo e interno. 3.3. Ram: subclase de memoria, su nuevo atributo es tipo de Ram de tipo enum permite distinguir entre DDR, DDR2 y DDR3. Gracias al polimorfismo las modificaciones en otras clases son mínimas y van dirigidas a poder crear estos subcomponentes, el resto de funciones como stock o carro de la compra interactúan con ellos como lo hacían con los objetos componente. Se modifica el método main de la clase Lanzador para que desde este se puedan crear subcomponentes de todos los tipos anteriormente contemplados de igual manera que hacía con la superclase Componente. Finalmente se modifican las clases CarroCompra y Venta para que muestren los componentes diferenciando por subclases, también la clase stock es modificada para incluir la posibilidad de poder mostrar por separado en la consola las diferentes subclases de Componente. 5

El diagrama de clases queda del siguiente modo: