sin imagen

Ejercicio Básico 15 PHP: Media de las notas de una clase

En este ejercicio hay que crear un script que acepte un array de valores que contendrá las notas de una clase con valores entre 1 y 10 y que calcule la media e indique el número de estudiantes suspensos y con sobresaliente. En el formulario, la lista de nombres se introducirá en un campo de texto, con las notas separadas por espacios en blanco. Consultar el uso de las funciones floatval y isset. El ejercicio ha de realizarse en el mismo archivo (index.php)

<?php
if (isset($_POST['Enviar'])){
  if(empty($_POST['notas'])){
     echo "El campo notas est&aacute; vac&iacute;o. <a href='index.php' title='Volver'>Volver</a>";
  }else{
     $datos = $_POST['notas'];
     $arrayDatos = split(" ", $datos);
     //reemplazamos las , por .
     $arrayDatos= str_replace(",",".",$arrayDatos,$longitud);       
     $longitud = count($arrayDatos);
     $suspensos=0;
     $aprobados=0;
     $sobresalientes=0;
     $Media=0; $errores=0;
           
//*******************************
//comprobamos que los numeros introducidos sean entre 1 y 10
//comprobación de aprobados y suspensos
//*******************************
//Mostramos todas las notas del array
     for ($i=0; $i<=$longitud-1; $i++){
        if ($arrayDatos[$i]>=1 && $arrayDatos[$i]<=10){
            echo "Nota ".($i+1).": ".floatval($arrayDatos[$i])."<br>";
            if ($arrayDatos[$i]>=9){
               $sobresalientes++;
            }else{
               if ($arrayDatos[$i]>=5){
                 $aprobados++;
               }else{
                 $suspensos++;
               }
               }
       }else{
         echo "ERROR en la nota con valor ".$arrayDatos[$i].". Los valores tienen que estar entre 1 y 10. <br>";
         $errores++;

       }
                 
    }
echo "<hr>";
echo "Hay ".intval($sobresalientes)." sobresalientes.<br>";
echo "Hay ".intval($aprobados)." aprobados.<br>";
echo "Hay ".intval($suspensos)." suspensos.<br>";  

echo $errores.” notas no v&aacute;lidas”;
          
//*******************************
//se calcula la media
   for ($i=0; $i<=$longitud-1; $i++){
       if ($arrayDatos[$i]>=1 && $arrayDatos[$i]<=10){
          $Media=$Media+$arrayDatos[$i];
       }
   }
   $logintudmedia=intval($sobresalientes+$aprobados+$suspensos);
   $mediatotal=  $Media/$logintudmedia;  
   echo "<hr>";
   echo "La media de todas las notas es: ".floatval(number_format($mediatotal,2))."<br>";
//*******************************
//botón volver
   echo "<a href='index.php' title='Volver'>Volver</a>";
           
  }                
}else{
?>    
<form action="index.php" method="post" name="form" id="form"><!--Inicio formulario-->
<table align="center" border="1" >  <!--Tabla-->
                        
 <tr><!--línea título-->
     <td align="center" colspan="2" bgcolor="#f0f0f0">
     <h2>
     Escribe un conjunto de notas separadas por espacios
     </h2>
     </td>
 </tr><!--Fin de la línea título-->
            
 <tr><!--Línea notas-->
     <td bgcolor="#f0f0f0">Notas: </td>
     <td><input type="text" name="notas" size="70" maxlenght="40" title="Notas"/></td>
 </tr><!--Fin de la línea notas-->
            
 <tr><!--línea botones-->
     <td align="center" bgcolor="#f0f0f0" colspan="2">
     <input type="submit" value="enviar" name="Enviar" title="Enviar" />
     &nbsp;||&nbsp;
     <input type="reset" value="borrar" name="borrar" title="borrar" />
     </td>< /code>
 </tr><!--Fin línea botones-->
            
</table><!--FIN de la tabla-->
</form><!--Fin del formulario-->
<?php
   }
?>

Deja un comentario