Estadísticas de Tareas con Funciones
- Descripción del problema
-
- Queremos construir una aplicación básica que nos permita analizar el estado de tres tareas predefinidas.
- Cada tarea puede estar en estado "pendiente" o "completada".
- Utilizaremos una función para calcular estadísticas de estas tareas y mostrar los resultados en una página web.
Objetivos del ejercicio:
- Crear una página web en PHP que muestre tres tareas predefinidas con su estado.
- Implementar una función llamada contarTareas que reciba como parámetros los estados de las tres tareas.
- Usar la función para calcular y devolver:
- El número total de tareas.
- El número de tareas completadas.
- El número de tareas pendientes.
- Mostrar las estadísticas calculadas en la página web de forma clara y ordenada.
Requisitos específicos:
Las tareas deben ser representadas como variables simples, no arrays.
Ejemplo:
$tarea1_estado = 'pendiente';
$tarea2_estado = 'completada';
$tarea3_estado = 'pendiente';
- La función contarTareas debe:
- Calcular las estadísticas a partir de los estados proporcionados.
- Modificar directamente las variables total, completadas y pendientes usando parámetros por referencia.
- Ejemplo de firma de la función:
function contarTareas($t1, $t2, $t3, &$total, &$completadas, &$pendientes)
- Mostrar las estadísticas en una lista dentro de la página web:
- Ejemplo de salida:
* Total de tareas: 3
* Tareas completadas: 1
* Tareas pendientes: 2
Pautas para resolver el ejercicio:
- Crea las variables para almacenar los estados de las tres tareas.
- Escribe la función contarTareas siguiendo la estructura solicitada.
- Llama a la función desde tu código principal, pasando los estados de las tareas y las variables de estadísticas.
- Usa HTML con Bootstrap para estructurar la página:
[▼]platilla |
---|
<?php
function contarTareasCompletadas(string $t1, string $t2, string $t3): int
{
}
function crearTareas(&$tarea_1, &$tarea_2, &$tarea_3)
{
}
function asigarEstado(): string
{
}
function asigarEstilo($estado)
{
}
// Variables simples para las tareas
//Declaramos 3 tareas
crearTareas($tarea_1, $tarea_2, $tarea_3);
//Establecemso el estado de las tareas (de cada una)
$tarea_1_estado = asigarEstado();
$tarea_2_estado = asigarEstado();
$tarea_3_estado = asigarEstado();
//Contamos las tareas
$completadas = contarTareasCompletadas($tarea_1_estado, $tarea_2_estado, $tarea_3_estado);
$pendientes = $tareas_total - $completadas;
//Asignamos estilo a las tareas
$tarea_1_estilo = asigarEstilo($tarea_1_estado);
$tarea_2_estilo = asigarEstilo($tarea_2_estado);
$tarea_3_estilo = asigarEstilo($tarea_3_estado);
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Gestor de Tareas - Funciones</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body class="bg-light">
<div class="container py-5">
<h1 class="text-center mb-4">Gestor de Tareas</h1>
<!-- Introducción -->
<div class="mb-4">
<p>En esta página trabajaremos con funciones para calcular estadísticas de tareas.
Actualmente, hay tres tareas predefinidas.</p>
</div>
<!-- Tareas con variables simples -->
<div class="card mb-4">
<div class="card-body">
<h2 class="card-title">Tareas Iniciales</h2>
<ul class="list-group">
<li class="list-group-item "><span
class="fw-bold fs-4">Tarea 1:</span>
<span class="badge ">estado tarea 1</span>
</li>
<li class="list-group-item "><span
class="fw-bold fs-4">Tarea 2:</span>
<span class="badge ">estado tarea 2</span>
</li>
<li class="list-group-item "><span
class="fw-bold fs-4">Tarea 3:</span>
<span class="badge ">estado tarea 3</span>
</li>
</ul>
</div>
</div>
<!-- Estadísticas -->
<div class="card">
<div class="card-body">
<h2 class="card-title">Estadísticas de Tareas</h2>
<ul class="list-group">
<li class="list-group-item">Total de tareas:
<strong> Total de tareas</strong></li>
<li class="list-group-item">Tareas completadas:
<strong>total de tareas completadas</strong></li>
<li class="list-group-item">Tareas pendientes:
<strong>Total tareas pendientes</strong></li>
</ul>
</div>
<!-- Gráfica de estadísticas -->
<!-- podemosintentar meter un gráfico de js -->
</body>
</html>
|
- Una sección que liste las tareas y su estado.
- Una sección separada para mostrar las estadísticas calculadas.
- Prueba diferentes combinaciones de estados para verificar que las estadísticas se calculan correctamente.