//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(); } }
//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(); } }
//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); }
//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); } }
//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); } }
//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); }