Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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");
        }
Esempio n. 3
0
        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.");
        }