Está en la página 1de 10

Index.php.

<?php

session_start();

if (!isset($_SESSION['estudiantes'])) {

$_SESSION['estudiantes'] = [];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

$matricula = $_POST['matricula'];

$asistencia = $_POST['asistencia'];

$primer_parcial = $_POST['primer_parcial'];

$practicas = $_POST['practicas'];

$examen_final = $_POST['examen_final'];

$nota_final = $asistencia + $primer_parcial + $practicas + $examen_final;

if ($nota_final >= 90) {

$nota_literal = 'A';

} elseif ($nota_final >= 80) {

$nota_literal = 'B';

} elseif ($nota_final >= 75) {

$nota_literal = 'C';

} elseif ($nota_final >= 70) {

$nota_literal = 'D';

} else {

$nota_literal = 'F';

$estudiante = array(
'matricula' => $matricula,

'asistencia' => $asistencia,

'primer_parcial' => $primer_parcial,

'practicas' => $practicas,

'examen_final' => $examen_final,

'nota_final' => $nota_final,

'nota_literal' => $nota_literal,

);

$_SESSION['estudiantes'][] = $estudiante;

header('Location: ' . $_SERVER['PHP_SELF'] . '?mensaje=Estudiante registrado con éxito');

exit();

?>

<!DOCTYPE html>

<html lang="es">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Formulario de Calificaciones</title>

<style>

body {

text-align: center;

font-family: Arial, sans-serif;

background-color: #f4f4f4;

h2 {

font-weight: bold;
color: #333;

form {

display: inline-block;

text-align: left;

background-color: #fff;

padding: 20px;

border-radius: 8px;

box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);

margin: 20px;

label {

display: block;

margin: 10px 0;

color: #333;

input {

width: 100%;

padding: 8px;

margin-bottom: 10px;

box-sizing: border-box;

input[type="submit"] {

background-color: #3EC4F6;

color: #black;

cursor: pointer;

}
input[type="submit"]:hover {

background-color: #6AF08F;

a{

text-decoration: none;

color: #4caf50;

margin-top: 10px;

display: inline-block;

button {

background-color: #3EC4F6;

color: #black;

padding: 10px;

border: none;

cursor: pointer;

button:hover {

background-color: #6AF08F;

</style>

</head>

<body>

<h2>Formulario de Calificaciones</h2>

<?php

if (isset($_GET['mensaje'])) {

echo '<p style="color: green;">' . $_GET['mensaje'] . '</p>';

}
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

<label for="matricula">Matrícula:</label>

<input type="text" name="matricula" required>

<br>

<label for="asistencia">Asistencia:</label>

<input type="number" name="asistencia" min="1" max="10" required>

<br>

<label for="primer_parcial">Primer Parcial:</label>

<input type="number" name="primer_parcial" min="1" max="20" required>

<br>

<label for="practicas">Prácticas:</label>

<input type="number" name="practicas" min="1" max="20" required>

<br>

<label for="examen_final">Examen Final:</label>

<input type="number" name="examen_final" min="1" max="50" required>

<br>

<br>

<input type="submit" value="Registrar">

</form>

<a href="reporte.php"><button type="button">Ver Reporte</button></a>

</body>

</html>

Reporte.php

<?php

session_start();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

$_SESSION['estudiantes'] = [];
header('Location: ' . $_SERVER['PHP_SELF'] . '?mensaje=Reporte reiniciado con éxito');

exit();

$lista_estudiantes = isset($_SESSION['estudiantes']) ? $_SESSION['estudiantes'] : [];

$cantidad_estudiantes = count($lista_estudiantes);

$nota_mayor = 0;

$nota_menor = PHP_INT_MAX;

$suma_notas = 0;

foreach ($lista_estudiantes as $estudiante) {

$suma_notas += $estudiante['nota_final'];

$nota_mayor = max($nota_mayor, $estudiante['nota_final']);

$nota_menor = min($nota_menor, $estudiante['nota_final']);

$nota_promedio = $cantidad_estudiantes > 0 ? $suma_notas / $cantidad_estudiantes : 0;

unset($_SESSION['estudiantes']);

?>

<!DOCTYPE html>

<html lang="es">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Reporte de Calificaciones</title>

<style>

body {

text-align: center;
font-family: Arial, sans-serif;

h2, p {

font-weight: bold;

table {

margin: auto;

width: 80%;

border-collapse: collapse;

border-spacing: 0;

margin-top: 20px;

overflow: hidden;

box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);

border-radius: 10px;

th, td {

border: 1px solid #ddd;

padding: 12px;

text-align: center;

th {

background-color: #4CAF50;

color: Black;

td:first-child, th:first-child {

text-align: center;
}

tr:nth-child(even) {

background-color: #f2f2f2;

.report-info {

margin-top: 20px;

</style>

</head>

<body>

<h2>Universidad Dominicana O&M</h2>

<p>Departamento de Registro Académico</p>

<p>Reporte de Calificaciones</p>

<p>Periodo Académico 23-24</p>

<hr>

<div style="text-align: left; margin-left: 20px;">

<p>Asignatura: Programación Aplicada</p>

<p>Carrera: Ingeniería Electrónica</p>

<p>Sección: 0833</p>

<p>Profesor: José R. Rojas</p>

</div>

<hr>

<hr>

<?php

if (isset($_GET['mensaje'])) {

echo '<p style="color: green;">' . $_GET['mensaje'] . '</p>';

}
?>

<?php if ($cantidad_estudiantes > 0): ?>

<table>

<thead>

<tr>

<th>Matrícula</th>

<th>Asistencia</th>

<th>Primer Parcial</th>

<th>Prácticas</th>

<th>Examen Final</th>

<th>Nota Final</th>

<th>Nota Literal</th>

</tr>

</thead>

<tbody>

<?php foreach ($lista_estudiantes as $estudiante): ?>

<tr>

<td><?php echo $estudiante['matricula']; ?></td>

<td><?php echo $estudiante['asistencia']; ?></td>

<td><?php echo $estudiante['primer_parcial']; ?></td>

<td><?php echo $estudiante['practicas']; ?></td>

<td><?php echo $estudiante['examen_final']; ?></td>

<td><?php echo $estudiante['nota_final']; ?></td>

<td><?php echo $estudiante['nota_literal']; ?></td>

</tr>

<?php endforeach; ?>

</tbody>

</table>

<br>
<hr>

<hr>

<div class="report-info">

<p>Cantidad de estudiantes: <?php echo $cantidad_estudiantes; ?></p>

<p>Nota mayor: <?php echo $nota_mayor; ?></p>

<p>Nota menor: <?php echo $nota_menor; ?></p>

<p>Nota promedio: <?php echo $nota_promedio; ?></p>

</div>

<?php else: ?>

<p>No hay estudiantes registrados.</p>

<?php endif; ?>

</body>

</html>

También podría gustarte