private void comboTema_SelectedIndexChanged(object sender, EventArgs e) { //Actualiza la tabla de exámenes al cambiar de tema String tema = comboTema.SelectedItem.ToString(); int idTema = temaDAO.findTemaByName(tema); tablaExamenes.DataSource = examenNotaDAO.actualizarTablaExamenes(idTema); }
private void btnAdd_Click(object sender, EventArgs e) { //Típico control de entrada. if (tPregunta.Text.Equals("")) { MessageBox.Show("El campo de la pregunta no puede estar vacío."); return; } if (comboRespuestas.SelectedIndex == -1) { MessageBox.Show("Debes seleccionar el número de respuestas."); return; } if (comboAsignatura.SelectedIndex == -1) { MessageBox.Show("Debes seleccionar la asignatura."); return; } if (comboTema.SelectedIndex == -1) { MessageBox.Show("Debes seleccionar el tema."); return; } bool errorVacio = false; bool errorRespuesta = true; for (int k = 0; k < listaLabels.Count; k++) { if (listaRespuestas[k].Text.Equals("")) { errorVacio = true; break; } if (listaRadioResp[k].Checked == true) { errorRespuesta = false; } } if (errorVacio) { MessageBox.Show("Las respuestas no pueden estar en blanco."); return; } if (errorRespuesta) { MessageBox.Show("Tiene que haber una respuesta correcta."); return; } int correcta = 0; for (int k = 0; k < listaLabels.Count; k++) { if (listaRadioResp[k].Checked) { correcta = k + 1; } } //Se inserta una pregunta y sus respuestas Clases.Pregunta pregunta = new Clases.Pregunta(tPregunta.Text, correcta, temaDAO.findTemaByName(comboTema.SelectedItem.ToString())); List <Clases.Respuesta> respuestas = new List <Clases.Respuesta>(); for (int k = 0; k < listaRespuestas.Count; k++) { Clases.Respuesta respuestaTemporal = new Clases.Respuesta(listaRespuestas[k].Text); respuestas.Add(respuestaTemporal); } preguntaDAO.insertPregunta(pregunta, respuestas); MessageBox.Show("Añadida"); }
private void btnGenerar_Click(object sender, EventArgs e) { int numPreguntas; int numRespuestas; int valorPreguntaAcertada; int valorPreguntaFallada; int valorPreguntaVacia; List <int> listaPreguntasTotales = new List <int>(); List <int> listaPreguntasEscogidas = new List <int>(); //Control de entrada if (comboAsignatura.SelectedIndex == -1) { MessageBox.Show("Debes seleccionar la asignatura."); return; } if (tNumero.Text.Equals("") || tNumero.Text.Equals("0")) { MessageBox.Show("Introduzca el número de preguntas."); return; } try { numPreguntas = Convert.ToInt32(tNumero.Text); valorPreguntaAcertada = 10 / numPreguntas; } catch { MessageBox.Show("Introduzca un número válido de preguntas."); return; } try { numRespuestas = Convert.ToInt32(tNumRespuestas.Text); } catch { MessageBox.Show("Introduzca un número válido de respuestas."); return; } try { valorPreguntaVacia = 1 / Convert.ToInt32(tVacias.Text); } catch (DivideByZeroException) { valorPreguntaVacia = 0; } catch { MessageBox.Show("Introduzca un valor válido."); return; } try { valorPreguntaFallada = 1 / Convert.ToInt32(tIncorrectas.Text); } catch (DivideByZeroException) { valorPreguntaFallada = 0; } catch { MessageBox.Show("Introduzca un valor válido."); return; } String tema = comboTema.SelectedItem.ToString(); listaPreguntasTotales = preguntaRespuestaDAO.getPreguntas(temaDAO.findTemaByName(tema), numRespuestas); if (numPreguntas > listaPreguntasTotales.Count) { MessageBox.Show("No hay tantas preguntas guardadas."); return; } //Se randomiza el orden de las respuestas Random rnd = new Random(); int k = 0; do { int indice = rnd.Next(1, listaPreguntasTotales.Count); if (!listaPreguntasEscogidas.Contains(listaPreguntasTotales [indice - 1])) { listaPreguntasEscogidas.Add(listaPreguntasTotales [indice - 1]); k++; } } while(numPreguntas > k); //Se inserta el examen y se genera el PDF Clases.Examen examen = new Clases.Examen(temaDAO.findTemaByName(tema), numPreguntas, numRespuestas); examen = examenNotaDAO.insertExamen(examen, listaPreguntasEscogidas, numPreguntas, numRespuestas); Utils.Generar.generarPDF(examen); MessageBox.Show("Generado."); }