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
obtenerInformacion
que 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 objetoAlumno
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
- Copia ambos archivos en un entorno de desarrollo como Visual Studio Code.
- Abre el archivo
index.html
con la extensión Live Server. - Observa los resultados en la consola del navegador.