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
- Clase
Alumno:- Define las propiedades de un alumno.
- Incluye un método
obtenerInformacionque devuelve un resumen de los datos del alumno.
- Clase
AlumnosBaseDatos:- Gestiona un arreglo de alumnos.
- Proporciona métodos básicos para agregar, consultar, modificar, eliminar y listar alumnos.
- Uso de Métodos:
agregarAlumno: Añade un objetoAlumnoal 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
- Copia ambos archivos en un entorno de desarrollo como Visual Studio Code.
- Abre el archivo
index.htmlcon la extensión Live Server. - Observa los resultados en la consola del navegador.