Ejemplo 1 – «clase» con alumnos

Crear un programa en JavaScript que permita ingresar varios alumnos, los cuales se almacenarán en un arreglo llamado alumnos. Este arreglo estará basado en una clase que incluirá los métodos básicos de mantenimiento: incorporación, consulta, modificación y eliminación. Además, se creará otra clase llamada alumnos_base_datos, que contendrá la funcionalidad de la clase alumno de manera organizada y sencilla. Los campos que se gestionarán para cada alumno son: nombre, apellidos, documento de identidad, dirección, teléfono, fecha de nacimiento, fecha de ingreso, curso (Lenguaje C, Lenguaje Java, Lenguaje JavaScript) y un estado de actividad (activo, con valores true o false). Por ahora, esta será la estructura del programa.

Clase Alumno: Representará a cada alumno con sus propiedades (nombre, apellidos, etc.).Clase AlumnosBaseDatos: Será la base de datos que mantendrá un arreglo de objetos Alumno y proporcionará métodos para agregar, consultar, modificar y eliminar alumnos.

Código Explicado

Archivo index.html

Incluye un archivo JavaScript externo para mantener el código estructurado.

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Gestión de Alumnos</title>
</head>
<body>
    <h1>Gestión de Alumnos</h1>
    <script src="main.js"></script>
</body>
</html>

Archivo main.js

Aquí implementaremos las clases y métodos.

// Clase Alumno
class Alumno {
    constructor(nombre, apellidos, documentoIdentidad, direccion, telefono, fechaNacimiento, fechaIngreso, curso, activo) {
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.documentoIdentidad = documentoIdentidad;
        this.direccion = direccion;
        this.telefono = telefono;
        this.fechaNacimiento = fechaNacimiento;
        this.fechaIngreso = fechaIngreso;
        this.curso = curso;
        this.activo = activo; // true o false
    }

    // Método para mostrar información del alumno
    obtenerInformacion() {
        return `
        Nombre: ${this.nombre} ${this.apellidos}
        Documento: ${this.documentoIdentidad}
        Dirección: ${this.direccion}
        Teléfono: ${this.telefono}
        Fecha de Nacimiento: ${this.fechaNacimiento}
        Fecha de Ingreso: ${this.fechaIngreso}
        Curso: ${this.curso}
        Activo: ${this.activo ? "Sí" : "No"}
        `;
    }
}

// Clase AlumnosBaseDatos
class AlumnosBaseDatos {
    constructor() {
        this.alumnos = []; // Arreglo para almacenar los objetos Alumno
    }

    // Método para agregar un alumno
    agregarAlumno(alumno) {
        this.alumnos.push(alumno);
        console.log(`Alumno agregado: ${alumno.nombre} ${alumno.apellidos}`);
    }

    // Método para consultar un alumno por documento
    consultarAlumno(documentoIdentidad) {
        const alumno = this.alumnos.find(a => a.documentoIdentidad === documentoIdentidad);
        if (alumno) {
            console.log("Información del alumno encontrado:");
            console.log(alumno.obtenerInformacion());
        } else {
            console.log(`No se encontró ningún alumno con el documento ${documentoIdentidad}.`);
        }
    }

    // Método para modificar un alumno
    modificarAlumno(documentoIdentidad, nuevosDatos) {
        const alumno = this.alumnos.find(a => a.documentoIdentidad === documentoIdentidad);
        if (alumno) {
            Object.assign(alumno, nuevosDatos); // Actualiza las propiedades del alumno
            console.log(`Alumno con documento ${documentoIdentidad} ha sido modificado.`);
        } else {
            console.log(`No se encontró ningún alumno con el documento ${documentoIdentidad}.`);
        }
    }

    // Método para eliminar un alumno
    eliminarAlumno(documentoIdentidad) {
        const index = this.alumnos.findIndex(a => a.documentoIdentidad === documentoIdentidad);
        if (index !== -1) {
            const eliminado = this.alumnos.splice(index, 1);
            console.log(`Alumno eliminado: ${eliminado[0].nombre} ${eliminado[0].apellidos}`);
        } else {
            console.log(`No se encontró ningún alumno con el documento ${documentoIdentidad}.`);
        }
    }

    // Método para listar todos los alumnos
    listarAlumnos() {
        console.log("Listado de todos los alumnos:");
        this.alumnos.forEach(alumno => {
            console.log(alumno.obtenerInformacion());
        });
    }
}

// Crear instancia de AlumnosBaseDatos
const baseDeDatos = new AlumnosBaseDatos();

// Crear y agregar alumnos
const alumno1 = new Alumno("Juan", "Pérez", "12345678X", "Calle Falsa 123", "555-1234", "1995-06-15", "2023-01-10", "Lenguaje JavaScript", true);
const alumno2 = new Alumno("María", "López", "87654321Y", "Avenida Siempreviva 742", "555-5678", "1993-04-22", "2023-02-15", "Lenguaje C", true);

baseDeDatos.agregarAlumno(alumno1);
baseDeDatos.agregarAlumno(alumno2);

// Consultar un alumno
baseDeDatos.consultarAlumno("12345678X");

// Modificar un alumno
baseDeDatos.modificarAlumno("12345678X", { direccion: "Calle Nueva 456", telefono: "555-9999" });

// Eliminar un alumno
baseDeDatos.eliminarAlumno("87654321Y");

// Listar todos los alumnos
baseDeDatos.listarAlumnos();

Explicación del Código

  1. Clase Alumno:
    • Define las propiedades de un alumno.
    • Incluye un método obtenerInformacion que devuelve un resumen de los datos del alumno.
  2. Clase AlumnosBaseDatos:
    • Gestiona un arreglo de alumnos.
    • Proporciona métodos básicos para agregar, consultar, modificar, eliminar y listar alumnos.
  3. Uso de Métodos:
    • agregarAlumno: Añade un objeto Alumno al arreglo.
    • consultarAlumno: Busca un alumno por su documento de identidad.
    • modificarAlumno: Actualiza los datos del alumno encontrado.
    • eliminarAlumno: Elimina al alumno con el documento especificado.
    • listarAlumnos: Muestra todos los alumnos almacenados.

Prueba del Código

  1. Copia ambos archivos en un entorno de desarrollo como Visual Studio Code.
  2. Abre el archivo index.html con la extensión Live Server.
  3. Observa los resultados en la consola del navegador.

Puede que también te guste...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *