Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafio

Propuesta de aplicación: Sistema de gestión de cursos

Puedes hacer un programa en Java para administrar cursos y estudiantes.

Qué podría hacer

registrar cursos

registrar estudiantes

agregar estudiantes a un curso

mostrar la lista de cursos

mostrar estudiantes inscritos

ordenar cursos por nombre

ordenar estudiantes por edad o nombre

buscar un curso específico

Conceptos que practicarías

Con este proyecto pondrías en práctica:

constructores

encapsulamiento

herencia, si quieres crear distintos tipos de cursos

ArrayList

foreach

Comparable

Collections.sort()

toString()

polimorfismo, si manejas varios tipos de objetos relacionados

Ejemplo de estructura
Clase Curso
public class Curso implements Comparable {
private String nombre;
private String instructor;

public Curso(String nombre, String instructor) {
    this.nombre = nombre;
    this.instructor = instructor;
}

public String getNombre() {
    return nombre;
}

public String getInstructor() {
    return instructor;
}

@Override
public int compareTo(Curso otro) {
    return this.nombre.compareTo(otro.getNombre());
}

@Override
public String toString() {
    return "Curso: " + nombre + " - Instructor: " + instructor;
}

}
Clase Estudiante

1 respuesta

¡Hola David, espero que estés bien!

¡Qué gran desafío te has propuesto! Crear un sistema de gestión de cursos y estudiantes es una excelente manera de poner en práctica muchos conceptos importantes en Java. Veamos cómo podrías abordar este proyecto.

  1. Registrar Cursos y Estudiantes: Puedes crear clases separadas para Curso y Estudiante. Ya tienes un buen comienzo con la clase Curso. Para Estudiante, podrías tener algo como esto:

    public class Estudiante {
        private String nombre;
        private int edad;
    
        public Estudiante(String nombre, int edad) {
            this.nombre = nombre;
            this.edad = edad;
        }
    
        public String getNombre() {
            return nombre;
        }
    
        public int getEdad() {
            return edad;
        }
    
        @Override
        public String toString() {
            return "Estudiante: " + nombre + " - Edad: " + edad;
        }
    }
    
  2. Agregar Estudiantes a un Curso: Podrías añadir una lista de estudiantes dentro de la clase Curso y un método para añadir estudiantes a esa lista.

    public class Curso implements Comparable<Curso> {
        private String nombre;
        private String instructor;
        private List<Estudiante> estudiantes;
    
        public Curso(String nombre, String instructor) {
            this.nombre = nombre;
            this.instructor = instructor;
            this.estudiantes = new ArrayList<>();
        }
    
        public void agregarEstudiante(Estudiante estudiante) {
            estudiantes.add(estudiante);
        }
    
        public List<Estudiante> getEstudiantes() {
            return estudiantes;
        }
    }
    
  3. Mostrar y Ordenar: Para mostrar y ordenar los cursos y estudiantes, puedes usar Collections.sort() junto con la interfaz Comparable o un Comparator.

    Ejemplo para ordenar estudiantes por nombre:

    Collections.sort(estudiantes, Comparator.comparing(Estudiante::getNombre));
    

    Y para ordenar por edad:

    Collections.sort(estudiantes, Comparator.comparingInt(Estudiante::getEdad));
    
  4. Buscar un Curso Específico: Podrías implementar un método que busque en la lista de cursos por nombre.

    public Curso buscarCurso(String nombreCurso) {
        for (Curso curso : listaDeCursos) {
            if (curso.getNombre().equalsIgnoreCase(nombreCurso)) {
                return curso;
            }
        }
        return null; // o lanzar una excepción si prefieres
    }
    

Este proyecto te dará una buena práctica con la manipulación de listas, el uso de ArrayList, y los conceptos de encapsulamiento y polimorfismo. Espero que estas ideas te ayuden a comenzar tu aplicación.

¡Espero haber ayudado y buenos estudios!