pcodigo2web/workspace/avaliador/criarscriptpontuar.php

208 lines
4.6 KiB
PHP
Executable File

<?php
// Diretorio de predicao
$diretorio = "arquivospredicao/";
// Carregar listaavaliacao.txt
$jobs = file($diretorio."listaavaliacao.txt");
// Arquivo do script que contera comandos para pontuar
$fp = fopen("avaliarbases.sh",'w');
// Para cada job
foreach ($jobs as $v)
{
$jb= trim($v);
$end1 = "../submissoes/".$jb."/intervalonotas.csv";
$end2 = "../submissoes/".$jb."/notastreino.csv";
$endpred = $diretorio.$jb."/";
$endind= "indexados/".$jb."/";
// Copia arquivos intervalo.csv e notastreino.csv para arquivospredicao e guarda informacao se copiou ou nao
if (!(file_exists($endpred)))
{
mkdir($endpred);
}
if ((file_exists($end1)) && (file_exists($end2)))
{
if (copy($end1, $endpred."intervalonotas.csv")) {
$copiaarq1 = 1;
}
else
{
$copiaarq1 = 0;
}
if (copy($end2, $endpred."notastreino.csv"))
{
$copiaarq2 = 1;
}
else
{
$copiaarq2 = 0;
}
}
else
{
$copiaarq1=0;
$copiaarq2=0;
}
if ($copiaarq1==1 && $copiaarq2==1) // Se copiou intervalo.csv e notastreino.csv
{
$arqparacorrigir= $endind."professordevepontuar.csv";
if (file_exists($arqparacorrigir))
{
// Carrega notastreino.csv e ltreino.csv de cada base a ser pontuada para verificar se todas as amostras socicitadas
// foram pontuadas.
$notastreino = file($endpred."notastreino.csv");
$ltreino = file($arqparacorrigir);
$impedido = 0;
// Copiar $ltreino sem quebras de linha para um vetor
$i=0;
$v1=array();
$n=count($ltreino);
for($i=0;$i<$n;$i++)
{
$v1[$i]=trim($ltreino[$i]);
}
unset($ltreino);
// As notas de treino que não estão na lista que o professor deve pontuar ou são -1 (não
// pontuadas) devem ser removidas
$tam=count($v1);
$tam2=count($notastreino);
$m=0;
$lista1=array();
$lista2=array();
//-------------------------------------------------------------------------------------------------------
for ($j=0; $j<$tam && $impedido==0; $j=$j+1)
{
$h=0;
$achou=0;
while ($h<$tam2 && $achou==0 )
{
$linha = explode(";",$notastreino[$h]);
if (strcmp($linha[0],$v1[$j])==0)
{
# Se a nota for -1, não pode realizar predicao
$linha[1]=trim($linha[1]);
if ($linha[1]==-1)
{
$impedido=1;
}
else
{
$lista1[$m]=$linha[0];
$lista2[$m]=$linha[1];
}
$achou=1;
$m=$m+1;
}
unset($linha);
$h=$h+1;
}
}
//-----------------------------------------------------------------------------------------------
$tam3= count($lista1);
if (!($tam==$tam3))
{
$impedido = 1;
}
unset($v1);
//----------------------------------------------------------------------------------------------
if ($impedido==0)
{
fwrite($fp, "./pontuar.sh $jb \n");
// Gravar o treino do modelo
$ftm = fopen($endpred."treinomodelo.csv",'w');
for($k=0;$k<$tam3;$k++)
{
fwrite($ftm, $lista1[$k].";".$lista2[$k]."\n");
}
fclose($ftm);
}
else
{
fwrite($fp, "echo ".'"'."$jb não pode ser pontuada. Notas do professor incompletas!".'"'."\n");
}
unset($notastreino);
unset($lista1);
unset($lista2);
} // Fim do IF que verifica se existe arquivo para professor pontuar
}
} // Fim do FOR
fclose($fp);
unset($jobs);
?>