Ejercicios propuestos y resueltos básicos estructuras dinámicas en Java

Hola a todos, hoy os dejo una serie de ejercicios de Java para practicar todo aquello que hemos explicado en anteriores posts, haciendo hincapié en las listas enlazadas en Java.

Todos los ejercicios que proponemos están resueltos en este mismo post, intenta hacerlo por ti mismo y si te quedas atascado puedes mirar la solución. Recuerda, que no tiene por que estar igual tu solución con la del post, el objetivo es que aprendas no que me copies la solución.

Crea un proyecto en Java por ejercicio. Colocare en las soluciones algunos comentarios para que sean más fácilmente entendible.

Te recomiendo que uses mensajes de trazas, donde te sean necesarios. Si tienes problemas también puedes usar el depurador.

Aquí tienes todos los posts relacionados con Java:

Curso Java

Si tienes alguna duda, recuerda que puedes consultarnos escribiendo un comentario en este post o enviándonos un e-mail a administrador@discoduroderoer.es

Al final de los ejercicios, os dejamos el enlace para descargaros los proyectos.

IMPORTANTE: para realizar esta serie de ejercicios necesitáis usar listas enlazadas, ya este hecha por vosotros, la de java o la nuestra creada específicamente para ello.

Pincha aquí para descargar nuestra lista enlazada, incluye la clase ListaEnlazada y Nodo.

Tambien os dejo un par de métodos interesantes para crear números alreatorios, ya puesto en otro post.

/**
     * Genera un numero aleatorio entre dos numeros.
     * Entre el minimo y el maximo incluidos
     * @param minimo Número mínimo
     * @param maximo Número máximo
     * @return Número entre minimo y maximo
     */
    public static int generaNumeroAleatorio(int minimo, int maximo){
        
        int num=(int)Math.floor(Math.random()*(minimo-(maximo+1))+(maximo+1));
        return num;
    }
    
    /**
     * Genera un numero aleatorio entre dos numeros reales.
     * Entre el minimo y el maximo incluidos
     * Devuelve un numero con dos decimales.
     * @param minimo Número mínimo
     * @param maximo Número máximo
     * @return Número entre minimo y maximo
     */
    public static double generaNumeroRealAleatorio(double minimo, double maximo){
        
        double num=Math.rint(Math.floor(Math.random()*(minimo-((maximo*100)+1))+((maximo*100)+1)))/100;
        return num;
        
    }

1) Un cine de un pueblo pequeño nos propone hacer una aplicación para controlar las personas de una cola de un cine en los grandes estrenos de películas.

Un conjunto de personas esperaran la cola para sacar una entrada, tendremos que calcular la entrada según la edad de la persona (mínimo 5 años).

La edad de las personas se generan aleatoriamente entre 5 y 60 años. Os recomiendo realizar un método en el main para generar Personas en la cola.

Al final, deberemos mostrar la cantidad total recaudada. El número de personas de la cola se elige al azar entre 0 y 50.

Os dejo la clase Persona . Solo tenéis que hacer el main.

Pincha aquí para descargar la clase Persona.

Te recomiendo usar un mensaje de traza para saber si la recaudacion es correcta según la edad (opcional).

Recuerda que al final la lista debe quedar vacía, una vez que una persona paga su entrada ya no está en la cola.

Aquí os dejo la lista de precios:

EdadPrecio
Entre 5 y 10 años1 €
Entre 11 y 17 años2.5 €
Mayor de 18 años3.5 €
Spoiler Inside SelectShow>




2) Realiza el ejercicio anterior pero el lugar de usar una lista enlazada, usar la clase ArrayList. Usa un iterador para recorrer el ArrayList. Usa la misma clase Persona del ejercicio anterior.

Spoiler Inside SelectShow>

3) Un supermercado nos pide que hagamos una pequeña aplicación que almacene los productos pasados por el escaner.

La aplicación debe almacenar Productos (clase), cada producto al crearse contiene una cantidad, un precio (estos dos generados aleatoriamente). El nombre del producto será básico (producto1, producto2, producto3, etc.).

Te dejo la clase Producto, solo agrégala a tu proyecto. Pincha aquí para descargarlo.

El precio ya viene con los impuestos incluidos.

Calcular el precio total de una lista de entre 1 y 8 productos (aleatorio). Mostrar un ticket con todo lo vendido y el precio final como se hacen en los supermercados. Más o menos con este formato, lo importante son los datos, no el estilo:

***********Cantidad****Precio*****Total

Producto1           5                       3.5              17.5

Producto2             7                    2.5              17.5

Precio final                                                         35

Spoiler Inside SelectShow>

4) Realiza el ejercicio anterior pero el lugar de usar una lista enlazada, usar la clase ArrayList. Usa un iterador para recorrer el ArrayList.

Spoiler Inside SelectShow>




5) Un amigo funcionario nos pide que le hagamos un informe para sus informes. Debemos gestionar informes que están formados de un código numérico y una tarea que pueden ser ADMINISTRATIVO, EMPRESARIAL y PERSONAL. Debe comprobarse que la tarea es alguna de estas.

Nuestro amigo quiere que seamos capaz de agregar y eliminar informes en forma de pila (el último en entrar, es el primero en salir). Agrega 10 informes y muestra su contenido, elimina todo el contenido y agrega de nuevo 5 informes.

Puedes crear los informes como quieras.

Te dejo la clase Informe como apoyo. Pîncha aquí para descargar la clase.

Spoiler Inside SelectShow>

Aquí os dejo todos los proyectos. Descargalo aquí.




Espero que os sea de ayuda. Si tenéis dudas, preguntad, estamos para ayudarte.

Compartir

1 comentario

  1. Paco

    No me puedo descargar la lista enlazada, F.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.