Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

[Sugerencia] Desafio

import java.util.ArrayList;
import java.util.Scanner;

public class Principal {

public static void main(String[] args) {

    Scanner leer = new Scanner(System.in);
    ArrayList<Proyecto> listaProyectos = new ArrayList<>();

    int opcion;

    do {
        System.out.println("\n=== GESTOR DE PROYECTOS ===");
        System.out.println("1. Agregar proyecto");
        System.out.println("2. Listar proyectos");
        System.out.println("3. Buscar proyecto por nombre");
        System.out.println("4. Salir");
        System.out.print("Seleccione una opción: ");
        opcion = leer.nextInt();
        leer.nextLine(); 

        switch (opcion) {

            case 1:
                Proyecto nuevo = new Proyecto();

                System.out.print("Nombre del proyecto: ");
                nuevo.nombre = leer.nextLine();

                System.out.print("Cliente: ");
                nuevo.cliente = leer.nextLine();

                System.out.print("Duración (meses): ");
                nuevo.duracionMeses = leer.nextInt();
                leer.nextLine();

                listaProyectos.add(nuevo);
                System.out.println("✅ Proyecto agregado correctamente");
                break;

            case 2:
                if (listaProyectos.isEmpty()) {
                    System.out.println("No hay proyectos registrados.");
                } else {
                    for (Proyecto p : listaProyectos) {
                        p.mostrarProyecto();
                    }
                }
                break;

            case 3:
                System.out.print("Ingrese nombre del proyecto a buscar: ");
                String nombreBusqueda = leer.nextLine();
                boolean encontrado = false;

                for (Proyecto p : listaProyectos) {
                    if (p.nombre.equalsIgnoreCase(nombreBusqueda)) {
                        p.mostrarProyecto();
                        encontrado = true;
                        break;
                    }
                }

                if (!encontrado) {
                    System.out.println(" Proyecto no encontrado.");
                }
                break;

            case 4:
                System.out.println("Saliendo del sistema...");
                break;

            default:
                System.out.println(" Opción inválida");
        }

    } while (opcion != 4);

    leer.close();
}

}

2 respuestas

package modelo;

public class Proyecto {
public String nombre;
public String cliente;
public int duracionMeses;

public void mostrarProyecto() {
    System.out.println(" Proyecto: " + nombre);
    System.out.println(" Cliente: " + cliente);
    System.out.println(" Duración: " + duracionMeses + " meses");
    System.out.println("---------------------------");
}

}

¡Hola Liliana!

Veo que has compartido un código que parece ser parte de un gestor de proyectos en Java. Tu implementación ya cubre varias funcionalidades básicas, como agregar, listar y buscar proyectos. Sin embargo, dado que el desafío del curso sugiere que trabajes con conceptos como constructores, listas y ordenación, aquí tienes algunas sugerencias para mejorar y expandir tu aplicación:

  1. Uso de Constructores: Actualmente, estás creando objetos Proyecto sin utilizar un constructor. Podrías definir un constructor en la clase Proyecto que acepte los parámetros nombre, cliente y duracionMeses. Esto no solo hará tu código más limpio, sino que también es una buena práctica de programación orientada a objetos.

    public class Proyecto {
        String nombre;
        String cliente;
        int duracionMeses;
    
        public Proyecto(String nombre, String cliente, int duracionMeses) {
            this.nombre = nombre;
            this.cliente = cliente;
            this.duracionMeses = duracionMeses;
        }
    
        public void mostrarProyecto() {
            System.out.println("Nombre: " + nombre + ", Cliente: " + cliente + ", Duración: " + duracionMeses + " meses");
        }
    }
    

    Luego, al agregar un nuevo proyecto, podrías usar el constructor:

    Proyecto nuevo = new Proyecto(nombre, cliente, duracionMeses);
    
  2. Ordenación de Proyectos: Puedes agregar funcionalidad para ordenar los proyectos. Por ejemplo, podrías ordenar la lista por nombre o por duración usando Collections.sort() y un Comparator.

    Collections.sort(listaProyectos, new Comparator<Proyecto>() {
        public int compare(Proyecto p1, Proyecto p2) {
            return p1.nombre.compareToIgnoreCase(p2.nombre);
        }
    });
    
  3. Mejorar la Interfaz de Usuario: Considera agregar más opciones al menú, como eliminar un proyecto o actualizar la información de un proyecto existente.

  4. Validaciones: Agrega validaciones para asegurarte de que los datos ingresados por el usuario sean correctos, como verificar que la duración sea un número positivo.

Estas mejoras te permitirán practicar y aplicar más conceptos vistos en el curso. Espero que estas sugerencias te sean útiles.

¡Espero haber ayudado y buenos estudios!