Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/02/2010, 05:27
leolamela
 
Fecha de Ingreso: febrero-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema Correcion de un examen en php

Asi estan todas programadas de estos php van a desglose_resultado.php que es la que recoje los resultados y llama a su vez por correcion_examen.php que es el que muestra los resultado.
<?php
include_once "db_handling.php";
include_once 'examen.preguntas.vof.php';
include_once 'examen.preguntas.test.php';
include_once 'examen.preguntas.SA.php';
include_once 'examen.preguntas.marcar.php';
include_once 'examen.preguntas.completa.php';
include_once 'examen.preguntas.composicion.php';
$db=new DB();
$correcion_examen=new Correcion_Examen();
$time = $correcion_examen->getmicrotime();
$correcion_examen->detalle_examenes($_POST['mostrar_modelo_examen'],$_POST['fecha_examen'],$_POST['identificador_unico']);
class Correcion_Examen
{
private static $db,$vof,$test,$soa,$completa,$marcar,$desglose;
function __construct()
{
$this->desglose=array();
$this->vof=new VoF();
$this->test=new Test();
$this->soa=new SinonimosOAntonimos();
$this->completa=new Completa();
$this->marcar=new Marcar();
$this->db=new DB();
$this->redaccion=new Composicion();
}
function desgloseTodo($modelo,$fecha,$usuario)
{
$output1="<table border='1' cellspacing='0'><col/><col width='100'/><col/><col width='100'/><col/><col width='100'/><col/>";
$output2.='<tr style="background-color:#28438C;color:white"><th>Examen</th><th colwidth="100">Fecha</th><th>Ejercicio</th><th>Tipo</th><th>Puntuación</th><th>Respuestas</th><th>Total preguntas</th></tr>';
foreach($this->desglose as $desglose_individual)
{

foreach($desglose_individual as $individual)
{
if($individual[0]==$modelo & $fecha==$individual[8] & $individual[9]==$usuario)
{
if($individual[2]!='Redacción')
{

$output2.=sprintf('<tr><td>'.$individual[0].'</td><td>'.$individual[8].'</td><td>'.$individual[2].'</td><td>'.$individual[3].' de '.$individual[4].'</td><td>'.$individual[5].' de '.$individual[6].'</td><td>'.$individual[7].'</td></tr>');
}
else
{
foreach($individual[10] as $respuestas_redaccion)
{
$output1.=sprintf('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td>
<td>
<input type="hidden" id="modelo_examen" name="modelo_examen" value="%d"/>
<input type="hidden" id="id_resultado" name="id_resultado" value="%d"/>
<input name="fecha_examen" id="fecha_examen" type="hidden" value="%s"/> <br/>
<input type="button" class="poner_cali" value="Poner Calificación"/>
</td>
<td colspan="2">
<input name="puntuacion" id="puntuacion" type="hidden" value="%s"/>
<input name="modelo_examen" id="modelo_examen" type="hidden" value="%s"/>
<input name="id_resultado" id="id_resultado" type="hidden" value="%s"/>
<div style="width:300px;"><b>Texto:</b><br/>%s</div>
</td>
</tr>',$individual[0],$individual[8],$individual[2],$individual[0],$respuestas_redaccion[2],$respuestas_redaccion[3],$individual[4],$respuestas_redaccion[1]);
}
}
}
}
}
$output1.="</table>";
return $output2;
}
function getmicrotime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}

function detalle_examenes($id_examen,$fecha_examen)
{
$sentencia=sprintf("select usuario.email as alumno from resultado,nivel,modelo_examen,usuario where modelo_examen.id=resultado.id_examen and modelo_examen.nivel=nivel.id and resultado.id_usuario=usuario.id and fecha_examen like '%s' and resultado.id_examen='%s' group by alumno",strftime('%Y-%m-%d',strtotime($fecha_examen)).'%',$id_examen);
$examenes_por_usuario=$this->db->execute($sentencia);
$output="";
$output.="<td colspan='4'>
<table style='font-size:1em;border:solid 1px black;'>
<tr>
<th><b>Usuario</b></th>
<th><b>Correctas por </br>autocorrección</b></th>
<th><b>Acciones</b></th>
<th><b>Estado</b></th>
</tr>";
$tipo_examen=$this->db->execute(sprintf("select id_tipo_examen from modelo_examen where id='%s';",$id_examen));
$tipo_examen=$tipo_examen[0][0];
include_once 'procedimientos_fidescu.php';
$procedimientos=new Procedimiento();
$veces_usuario=0;

foreach($examenes_por_usuario as $usuario)
{
$veces_usuario++;
print $veces_usuario;
$autocorreccion=$procedimientos->getCorreccionPreguntasTipo1($id_examen,$usuario[0],$fecha_examen);
$resultado=$autocorreccion[0][0];
$autocorreccion=$procedimientos->getCorreccionPreguntasTipo2($id_examen,$usuario[0],$fecha_examen);
$resultado+=$autocorreccion[0][0];
$autocorreccion=$procedimientos->getCorreccionPreguntasTipo3($id_examen,$usuario[0],$fecha_examen);
$resultado+=$autocorreccion[0][0];
$sentencia_corregido=sprintf("select corregido from agenda_examenes,usuario where usuario.id=id_usuario and usuario.email='%s' and agenda_examenes.id_examen=%d and agenda_examenes.fecha_activacion=SUBSTRING('%s',1, 10) limit 1",$usuario[0],$id_examen,$fecha_examen);
$corregido_=$this->db->execute($sentencia_corregido);
$time = $this->getmicrotime();
$puntuacion_total=$this->vof->determinarPuntuacion($id_examen,$usuario[0],$fecha_examen,$tipo_examen);
$puntuacion_buenas=$puntuacion_total[0];
$puntuacion_total_buenas=$puntuacion_total[2];
array_push($this->desglose,$puntuacion_total[1]);
$time = $this->getmicrotime();
$puntuacion_total_test=$this->test->determinarPuntuacion($id_examen,$usuario[0],$fecha_examen,$tipo_examen);
$puntuacion_buenas+=$puntuacion_total_test[0];
$puntuacion_total_buenas+=$puntuacion_total_test[2];
array_push($this->desglose,$puntuacion_total_test[1]);
$time = $this->getmicrotime();
$puntuacion_total_SA=$this->soa->determinarPuntuacion($id_examen,$usuario[0],$fecha_examen,$tipo_examen);
$puntuacion_buenas+=$puntuacion_total_SA[0];
$puntuacion_total_buenas+=$puntuacion_total_SA[2];
array_push($this->desglose,$puntuacion_total_SA[1]);
$time = $this->getmicrotime();
$puntuacion_total_Marcar=$this->marcar->determinarPuntuacion($id_examen,$usuario[0],$fecha_examen,$tipo_examen);
$puntuacion_buenas+=$puntuacion_total_Marcar[0];
$puntuacion_total_buenas+=$puntuacion_total_Marcar[2];
array_push($this->desglose,$puntuacion_total_Marcar[1]);
$time = $this->getmicrotime();
$puntuacion_total_Completa=$this->completa->determinarPuntuacion($id_examen,$usuario[0],$fecha_examen,$tipo_examen);
$puntuacion_buenas+=$puntuacion_total_Completa[0];
$puntuacion_total_buenas+=$puntuacion_total_Comple ta[2];
array_push($this->desglose,$puntuacion_total_Completa[1]);
$time = $this->getmicrotime();
$puntuacion_total_Redaccion=$this->redaccion->determinarPuntuacion($id_examen,$usuario[0],$fecha_examen,$tipo_examen);
$puntuacion_buenas+=$puntuacion_total_Redaccion[0];
$puntuacion_total_buenas+=$puntuacion_total_Redacc ion[2];
array_push($this->desglose,$puntuacion_total_Redaccion[1]);
if($tipo_examen==0)
{
$total=$this->db->execute(sprintf('select count(preguntas.id) from preguntas,ejercicio,enunciados,composicion_examen, composicion_enunciado where preguntas.id_ejercicio=ejercicio.id and composicion_enunciado.id_enunciado=enunciados.id and composicion_enunciado.id_ejercicio=ejercicio.id and composicion_examen.id_enunciado=enunciados.id and composicion_examen.id_examen=%s ;',$id_examen));
}
else
{
$total=$this->db->execute(sprintf('select count(distinct substring(id_pregunta,1,4)) from resultado where id_examen=%s ;',$id_examen));
}
$buenas_auto_corr=0;
$total=0;

foreach($this->desglose as $des)
{
foreach($des as $d)
{
$puntuacion_buenas+=$d[3];
$buenas_auto_corr+=$d[5];
$total+=$d[6];
}
}
$time = $this->getmicrotime();
$corregido=($corregido_[0][0]==0 or count($corregido_)==0)? "no corregido":"corregido";
$output.=sprintf('<tr >
<td class="usuario_correcion">%s</td>
<td>%s de %s</td>
<td>
<div id="puntuacion_examen">
<div>Puntuacion Total:
</br>%s/%s</div>
<div><a href="javascript:void(0);" class="marcar_aprobado">Marcar como aprobado</a></div><br>
<div><a href="javascript:void(0);" class="marcar_borrado">Borrar Examen</a></div>
</div>
</td>
<td>
<div class="%s">%s</div></a>
</td>
</tr>
<tr>
<td colspan="4">',$usuario[0],$buenas_auto_corr,$total,$puntuacion_buenas,$punt uacion_total_buenas,str_replace(" ","_",$corregido),$corregido);
$output.=$this->desgloseTodo($id_examen,$fecha_examen,$usuario[0]);
}
$output.="</td></tr></table></td>";
return $output;
}
}
?>