Beispiel #1
0
        //da de alta el examen con sus secciones para cada alumno e inicia el proceso de calificación
        private void btExamen_Click(object sender, RoutedEventArgs e)
        {
            List <int> claves = new List <int>();
            int        sec    = contarSecciones();
            Evaluacion ev     = new Evaluacion();
            int        clave  = ev.siguienteClave(ev);
            SeccionEx  se;
            int        alta = 0;

            for (int i = 0; i < numAlumnos; i++)
            {
                ev   = new Evaluacion(clave.ToString(), "1", "0", claveA[i]);
                alta = ev.agregaEvaluacion(ev);
                claves.Add(clave);
                if (alta != 0)
                {
                    alta = ev.nuevoExamen(ev);
                    if (alta != 0)
                    {
                        se = new SeccionEx();
                        int claveS = se.siguienteClave(se);
                        se = new SeccionEx(claveS.ToString(), "0", tbP1.Text, tbG1.Text, clave.ToString());
                        se.agregaSeccion(se);
                        claveS++;
                        if (sec > 1)
                        {
                            se = new SeccionEx(claveS.ToString(), "0", tbP2.Text, tbG2.Text, clave.ToString());
                            se.agregaSeccion(se);
                            claveS++;
                        }
                        if (sec > 2)
                        {
                            se = new SeccionEx(claveS.ToString(), "0", tbP3.Text, tbG3.Text, clave.ToString());
                            se.agregaSeccion(se);
                            claveS++;
                        }
                        if (sec > 3)
                        {
                            se = new SeccionEx(claveS.ToString(), "0", tbP4.Text, tbG4.Text, clave.ToString());
                            se.agregaSeccion(se);
                            claveS++;
                        }
                        if (sec > 4)
                        {
                            se = new SeccionEx(claveS.ToString(), "0", tbP5.Text, tbG5.Text, clave.ToString());
                            se.agregaSeccion(se);
                            claveS++;
                        }
                    }
                }
                clave++;
            }

            if (alta > 0)
            {
                CalificarExamen c = new CalificarExamen(sec, grupo, claves);
                c.Show();
                this.Close();
            }
        }
Beispiel #2
0
        //boton que avanza el ciclo de calificar, limpia los textos cuando aún hay alumnos y se cierra al terminar
        private void bCalif_Click(object sender, RoutedEventArgs e)
        {
            if (cont < claveA.Count())
            {
                float      calif  = 0;
                List <int> claveS = Conexion.getClaveS(clavesE[cont].ToString());
                SeccionEx  ex     = new SeccionEx(claveS[0].ToString());
                ex.insertaAciertos(ex, tb1.Text);
                calif = calif + (float.Parse(tb1.Text) * float.Parse(lbV1.Content.ToString()) / float.Parse(lbP1.Content.ToString()));
                if (sec > 1)
                {
                    ex.claveS = claveS[1].ToString();
                    ex.insertaAciertos(ex, tb2.Text);
                    calif = calif + (float.Parse(tb2.Text) * float.Parse(lbV2.Content.ToString()) / float.Parse(lbP2.Content.ToString()));
                }
                if (sec > 2)
                {
                    ex.claveS = claveS[2].ToString();
                    ex.insertaAciertos(ex, tb3.Text);
                    calif = calif + (float.Parse(tb3.Text) * float.Parse(lbV3.Content.ToString()) / float.Parse(lbP3.Content.ToString()));
                }
                if (sec > 3)
                {
                    ex.claveS = claveS[3].ToString();
                    ex.insertaAciertos(ex, tb4.Text);
                    calif = calif + (float.Parse(tb4.Text) * float.Parse(lbV4.Content.ToString()) / float.Parse(lbP4.Content.ToString()));
                }
                if (sec > 4)
                {
                    ex.claveS = claveS[4].ToString();
                    ex.insertaAciertos(ex, tb5.Text);
                    calif = calif + (float.Parse(tb5.Text) * float.Parse(lbV5.Content.ToString()) / float.Parse(lbP5.Content.ToString()));
                }

                Evaluacion ev = new Evaluacion(clavesE[cont].ToString());
                ev.setExamen(ev, calif.ToString());
                cont++;
            }
            if (cont < claveA.Count())
            {
                limpiar();
                setNombre(claveA[cont]);
            }
            else
            {
                mGrupo m = new mGrupo(grupo);
                m.Show();
                this.Close();
            }
        }
Beispiel #3
0
        //actualiza los aciertos que tuvo un alumno en una sección dada
        public int insertaAciertos(SeccionEx ex, String aciertos)
        {
            int           resp = 0;
            SqlConnection con  = Conexion.agregarConexion();

            try
            {
                String     query = String.Format("update seccionEx set aciertos = {0} where claveS = {1}", aciertos, ex.claveS);
                SqlCommand com   = new SqlCommand(query, con);
                resp = com.ExecuteNonQuery();
            }
            catch (Exception exep)
            {
            }
            return(resp);
        }
Beispiel #4
0
 //Recibe la clase con su primary key para realizar la eliminación de la base, incluyendo las entradas de las tablas que dependan de su primary key
 public int eliminaSeccion(SeccionEx se, String claveE)
 {
     try
     {
         int           res = 0;
         SqlConnection con;
         con = Conexion.agregarConexion();
         SqlCommand cmd = new SqlCommand(String.Format("delete from seccionEx where claveS = {0}", se.claveS), con);
         res = cmd.ExecuteNonQuery();
         con.Close();
         return(res);
     }
     catch (Exception ex)
     {
         MessageBox.Show("No se pudo eliminar la seccion" + ex);
         return(0);
     }
 }
Beispiel #5
0
 //recibe la clase construida con todos sus atributos genera la conección y la da de alta en la base
 public int agregaSeccion(SeccionEx se)
 {
     try
     {
         int           res = 0;
         SqlConnection con;
         con = Conexion.agregarConexion();
         SqlCommand cmd = new SqlCommand(String.Format("insert into seccionEx values({0}, {1}, {2}, {3}, {4})", se.claveS, se.aciertos, se.pregun, se.valor, se.claveE), con);
         res = cmd.ExecuteNonQuery();
         con.Close();
         return(res);
     }
     catch (Exception ex)
     {
         MessageBox.Show("No se pudo dar de alta la seccion" + ex);
         return(0);
     }
 }
Beispiel #6
0
        //obtiene la siguiente clave de la seccion para foliar
        public int siguienteClave(SeccionEx se)
        {
            int resp = 0;

            try
            {
                SqlConnection con;
                con = Conexion.agregarConexion();
                SqlCommand    cmd = new SqlCommand("select max(claveS) from seccionEx", con);
                SqlDataReader rd  = cmd.ExecuteReader();
                if (rd.Read())
                {
                    resp = rd.GetInt32(0);
                }
            }
            catch (Exception ex)
            {
            }
            resp++;
            return(resp);
        }