

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Examen práctico programación para practicar la programación
Tipo: Apuntes
1 / 2
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


Programación II - UD
Partimos del código de Deustea que has recibido los días anteriores. La principal modificación es la presencia de la clase Cliente y de la clase VentanaGestionClientes que se describe más adelante. En el resto de código no hay cambios sustanciales.
Sobre este código de partida, se pide que realices las siguientes tareas (puntuación s/10 entre corchetes, núm. aprox. de líneas entre llaves):
1. Programación Orientada a Objetos [2] {35 l} [Tienda, Cliente]
1a [1] Crea una nueva clase Tienda en la jerarquía de clases existente (busca el lugar más apropiado para heredar, o interfaces que implementar). Una tienda debe tener nombre y dirección, y poder gestionar una lista de los pedidos y de los productos disponibles en esa tienda. [no va a utilizarse para nada más en este examen, debes pensar en cómo sería esa clase para crear objetos de tipo tienda aunque no los tengas que crear hoy]
1b [1] Se quiere que el identificador de la clase Cliente sea único (se debe crear con un número diferente en cada construcción de cliente). Añade el código que consideres necesario para conseguirlo. Tienes a tu disposición un método calcularID para facilitar esta tarea. Además, los clientes deberán poder ordenarse directamente, por el valor de ese identificador único.
2. Estructuras de Datos [2,5] {15 l} [Deustea]
2a [0,5] Crea un nuevo atributo conjunto llamado clientes que almacene todos los clientes ordenados de Deustea (utilizarás este atributo en la tarea 3). Añade un consultor getClientes().
2b [1] Crea un método obtenerPedidosPorCliente que recibe como parámetro un objeto del tipo Cliente y devuelve un conjunto con todos los pedidos de ese cliente.
2c [1] Crea un mapa que tenga como clave un cliente y como valor un conjunto con todos los pedidos de ese cliente. Para hacerlo, tienes pendiente de codificar un método llamado crearMapaPorCliente.
3. Ficheros y excepciones [2,5] {30 l} [Deustea, ¿alguna otra?]
3a [0,75] Añade el identificador de cliente a la hora de guardar los datos de los clientes en el método guardarClientes que reciba un nombre de fichero (String) como argumento y guarde el conjunto de clientes ( clientes , tarea 2a) de la clase Deustea en el fichero indicado. Parte del método ya está programado, solo tienes que añadir la parte correspondiente al identificador.
3b [0,75] Haz lo mismo que en el apartado anterior, pero en este caso en cargarClientes.
3c [1] Añade una nueva excepción IDdeClienteNoValida que se lanzará en caso de que el ID del cliente que se carga en el método cargarClientes tenga un valor negativo. La excepción deberá gestionarle el método que llame a cargarClientes e informar por consola de ese error.
4. Swing [2,5] {20 l} [VentanaGestiónClientes]
4a [0,75] Carga el JComboBox de la ventana VentanaGestionClientes con los datos de todos los clientes de Deustea (tarea 2a)
Programación II - UD
4b [1,75] Añade la gestión de eventos necesaria para que al seleccionar un nuevo ítem del JComboBox de clientes en la VentanaGestionClientes se carguen los pedidos de ese cliente en el JTextArea. Para hacerlo, puedes utilizar el mapa del apartado anterior o bien recorrer la lista de pedidos.
5. Eventos, hilos y Swing [1,5] {15 l} [VentanaGestionClientes] Añade un pequeño contador de segundos a la ventana. Para ello, añade un JLabel al panel pNorte y de esta forma mostrarlo en pantalla. El temporizador se actualizará cada segundo, y se lanzará cuando se abra la ventana. Haz que el hilo se detenga cuando se cierre la ventana. - Tienes en ALUD los ficheros con los que se va a trabajar en un fichero comprimido. Crea un proyecto en eclipse y descomprime ese fichero en la carpeta de proyecto sin cambiar los paquetes. - En algunos casos verás un comentario // Tarea n en la parte de código correspondiente a la tarea (número n ) a completar. Si escribes código en algún otro lugar, añade el mismo comentario. - Al acabar, crea un archivo .zip y entrégalo en ALUD ( asegúrate de que incluyes los ficheros java modificados ).