Introducción a la Programación en Java: Creación de un Sistema de Registro de Estudiantes

Java, con su paradigma de programación orientada a objetos y su promesa de «escribir una vez, ejecutar en cualquier lugar», ha sido un pilar en el mundo del desarrollo de software durante décadas. Ideal para construir aplicaciones robustas y escalables, desde aplicaciones móviles hasta sistemas empresariales, Java ofrece un ecosistema rico y una comunidad vibrante. Para aquellos interesados en sumergirse en este lenguaje, proponemos un ejercicio práctico que combina varios conceptos fundamentales de Java: la creación de un sistema de registro de estudiantes.

Este proyecto tiene como objetivo desarrollar una aplicación de consola en Java que permita a los usuarios gestionar una lista de estudiantes, incluyendo operaciones como agregar, listar, buscar y eliminar estudiantes. A través de este ejercicio, se explorarán conceptos tales como clases, objetos, colecciones y manejo de excepciones, proporcionando una base sólida en la programación orientada a objetos.

Objetivos del Ejercicio

El sistema de registro de estudiantes deberá ser capaz de realizar las siguientes operaciones:

  1. Agregar estudiantes: Permitir a los usuarios introducir datos del estudiante, como ID, nombre, y curso.
  2. Listar todos los estudiantes: Mostrar un listado de todos los estudiantes registrados.
  3. Buscar estudiantes por ID: Permitir a los usuarios buscar un estudiante específico por su ID.
  4. Eliminar estudiantes: Ofrecer la opción de eliminar un estudiante del registro basándose en su ID.

Implementación Propuesta

Antes de adentrarnos en el código, es importante diseñar las clases que representarán la lógica de nuestro sistema. Podemos empezar con una clase Estudiante para almacenar la información de cada estudiante, y una clase RegistroEstudiantes que maneje la lógica de agregar, buscar, listar y eliminar estudiantes.

Clase Estudiante

public class Estudiante {
    private String id;
    private String nombre;
    private String curso;

    public Estudiante(String id, String nombre, String curso) {
        this.id = id;
        this.nombre = nombre;
        this.curso = curso;
    }

    // Getters y Setters
    public String getId() {
        return id;
    }

    public String getNombre() {
        return nombre;
    }

    public String getCurso() {
        return curso;
    }

    @Override
    public String toString() {
        return "Estudiante{" +
               "ID='" + id + '\'' +
               ", Nombre='" + nombre + '\'' +
               ", Curso='" + curso + '\'' +
               '}';
    }
}

Clase RegistroEstudiantes

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

public class RegistroEstudiantes {
    private List<Estudiante> estudiantes = new ArrayList<>();

    public void agregarEstudiante(Estudiante estudiante) {
        estudiantes.add(estudiante);
        System.out.println("Estudiante agregado exitosamente.");
    }

    public void listarEstudiantes() {
        System.out.println("Listado de Estudiantes:");
        for (Estudiante estudiante : estudiantes) {
            System.out.println(estudiante);
        }
    }

    public void buscarEstudiante(String id) {
        for (Estudiante estudiante : estudiantes) {
            if (estudiante.getId().equals(id)) {
                System.out.println("Estudiante encontrado: " + estudiante);
                return;
            }
        }
        System.out.println("Estudiante no encontrado.");
    }

    public void eliminarEstudiante(String id) {
        if (estudiantes.removeIf(estudiante -> estudiante.getId().equals(id))) {
            System.out.println("Estudiante eliminado correctamente.");
        } else {
            System.out.println("Estudiante no encontrado.");
        }
    }

    public static void main(String[] args) {
        RegistroEstudiantes registro = new RegistroEstudiantes();
        Scanner scanner = new Scanner(System.in);
        int opcion;

        do {
            System.out.println("\nSistema de Registro de Estudiantes");
            System.out.println("1. Agregar estudiante");
            System.out.println("2. Listar estudiantes");
            System.out.println("3. Buscar estudiante");
            System.out.println("4. Eliminar estudiante");
            System.out.println("0. Salir");
            System.out.print("Seleccione una opción: ");
            opcion = scanner.nextInt();
            scanner.nextLine(); // Consume newline left-over

            switch (opcion) {
                case 1:
                    System.out.print("Ingrese ID del estudiante: ");
                    String id = scanner.nextLine();
                    System.out.print("Ingrese nombre del estudiante: ");
                    String nombre = scanner.nextLine();
                    System.out.print("Ingrese curso del estudiante: ");
                    String curso = scanner.nextLine();
                    Estudiante estudiante = new Estudiante(id, nombre, curso);
                    registro.agregarEstudiante(estudiante);
                    break;
                case 2:
                    registro.listarEstudiantes();
                    break;
                case 3:
                    System.out.print("Ingrese ID del estudiante a buscar: ");
                    String buscarId = scanner.nextLine();
                    registro.buscarEstudiante(buscarId);
                    break;
                case 4:
                    System.out.print("Ingrese ID del estudiante a eliminar: ");
                    String eliminarId = scanner.nextLine();
                    registro.eliminarEstudiante(eliminarId);
                    break;
                case 0:
                    System.out.println("Saliendo...");
                    break;
                default:
                    System.out.println("Opción no válida. Por favor, intente de nuevo.");
            }
        } while (opcion != 0);

        scanner.close();
    }
}

Desafíos y Aprendizajes

Este ejercicio ofrece una excelente oportunidad para familiarizarse con los fundamentos de Java y la programación orientada a objetos. Los participantes aprenderán a manejar colecciones, como ArrayList, para almacenar objetos y realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) sobre ellos. Además, el manejo de la entrada/salida a través de la clase Scanner permitirá una interacción básica con el usuario a través de la consola.

Para expandir este proyecto, podrías considerar agregar funcionalidades como modificar los datos de un estudiante, guardar y cargar la lista de estudiantes desde un archivo, o incluso desarrollar una interfaz gráfica de usuario (GUI) utilizando Swing o bases de datos para no perder los datos cada vez que el programa se reinicia.

black background with text overlay screengrab
Photo by Pixabay on Pexels.com

Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad