Untitled

 avatar
unknown
plain_text
10 months ago
3.5 kB
3
Indexable
let inputNombre = document.getElementById("nombre")
let inputApellido = document.getElementById("apellido")
let inputMatricula = document.getElementById("matricula")
let inputNota = document.getElementById("nota")
let h3Nota = document.getElementById("mostrarPromedio")

let btnGuardar = document.getElementById("boton")
let btnCalcularProm = document.getElementById("btnProm")
let clearBtn = document.getElementById("limpiarBtn")

const h1Texto = document.getElementById("mostrarEstudiante")

let tbody = document.querySelector("#datos")

let estudiantes = [];

let Estudiante = class {
  constructor(nombre, apellido, matricula, nota) {
    this.nombre = nombre
    this.apellido = apellido
    this.matricula = matricula
    this.nota = nota
  }
};

const limpiar = () => {
  inputNombre.value = ""
  inputApellido.value = ""
  inputMatricula.value = ""
  inputNota.value = ""
};

clearBtn.addEventListener("click", (e) => {
  limpiar();
});


const agregarEstudianteATabla = (estudiante) => {
  let tr = document.createElement("tr")
  let tdIndice = document.createElement("td")
  let tdNombre = document.createElement("td")
  let tdApellido = document.createElement("td")
  let tdMatricula = document.createElement("td")
  let tdNota = document.createElement("td")

  let nodoTextoIndice = document.createTextNode(
    estudiantes.indexOf(estudiante) + 1
  );
  let nodoTextoNombre = document.createTextNode(estudiante.nombre)
  let nodoTextoApellido = document.createTextNode(estudiante.apellido)
  let nodoTextoMatricula = document.createTextNode(estudiante.matricula)
  let nodoTextoNota = document.createTextNode(estudiante.nota)

  tdIndice.appendChild(nodoTextoIndice)
  tdNombre.appendChild(nodoTextoNombre)
  tdApellido.appendChild(nodoTextoApellido)
  tdMatricula.appendChild(nodoTextoMatricula)
  tdNota.appendChild(nodoTextoNota)

  tr.append(tdIndice, tdNombre, tdApellido, tdMatricula, tdNota)
  tbody.appendChild(tr)
}

let cargarEstudiantesGuardados = () => {
  let estudiantesGuardados = JSON.parse(localStorage.getItem("estudiantes"))
  if (estudiantesGuardados == null) {
    estudiantes = []
  } else {
    estudiantes = estudiantesGuardados
  }
}
let crearEstudiantes = (nombre, apellido, matricula, nota) => {

  if (nombre && apellido && matricula && nota) {
    let nuevoEstudiante = new Estudiante(nombre, apellido, matricula, nota)
    estudiantes.push(nuevoEstudiante);

    localStorage.setItem("estudiantes", JSON.stringify(estudiantes))

    agregarEstudianteATabla(nuevoEstudiante);

    alert(`El estudiante ${nombre} fue guardado`)

    limpiar()
  } else {
    alert("Por favor, completa todos los campos del formulario.");
  }
}
btnGuardar.addEventListener("click", (e) => {
  let nombre = inputNombre.value;
  let apellido = inputApellido.value;
  let matricula = inputMatricula.value;
  let nota = inputNota.value;

crearEstudiantes(nombre, apellido, matricula, nota)
})



btnCalcularProm.addEventListener("click", (e) => {
  let i = 0;
  estudiantes.forEach((e) => {
    i += parseInt(e.nota)
  })

  promedio = i / estudiantes.length;

  h3Nota.innerText = `El promedio de los estudiantes es: ${promedio.toFixed(
    2
  )}`
})
cargarEstudiantesGuardados()

if (estudiantes.length > 0) {
  estudiantes.forEach(
    (estudiante) => { pintarEstudiantes(estudiante.nombre, estudiante.apellido, estudiante.matricula, estudiante.nota)}
  ) 
}
console.log(estudiantes)
Editor is loading...
Leave a Comment