Ejercicio para selección de zona turística con PHP

PHP: ejercicio para selección de hotel

En este post de programación en PHP te mostraré la solución a un ejercicio. Se trata de solicitar al usuario la región turística, cantidad de noches a reservar, cantidad de personas y edades de las personas.

Según los datos solicitados deberán indicarle al turista en qué hotel se hará su reservación y cuánto es el costo total de su hospedaje.

Descripción del ejercicio

Ustedes deberán crear un programa que solicite la siguiente información:

  1. Región turística que desean visitar
  2. Cantidad de noches a reservar
  3. Cantidad de personas
  4. Edades de las personas

Con esta información ustedes deberán indicarle al turista en qué hotel se hará su reservación y cuánto es el costo total de su hospedaje. Debe utilizar el siguiente cuadro para realizar la selección del hotel:

Número,Región turística,Paquete,Lugar recomendado
1,Panamá Centro, Familiar, Gamboa Rainforest Resort
1,Panamá Centro, Pareja, Hotel El Panamá
2,Panamá Oeste, Familiar, Royal Decameron
2,Panamá Oeste, Pareja, RIU Playa Blanca
3,Zona Atlántica, Familiar, Hotel Cocotal
3,Zona Atlántica, Pareja, Radisson Colon 2000
4,Tierras Altas, Familiar, Boquete Garden Inn
4,Tierras Altas, Pareja, Valle Escondido Resort

Y para el cálculo del costo debe utilizar el siguiente cuadro de tarifas por edades:

Huéspedes,Precio por noche
Adultos,47.00
Menores (12 a 17),15.00
Menores de 12 años,Gratis

Tome en consideración que cuando el turista indique la cantidad de personas que vendrán a Panamá, en ese momento ustedes sabrán qué tipo de paquete puede aplicar.

Si sólo son 2 personas el paquete seleccionado será Pareja, si son más de 2 personas el Paquete debe ser Familiar.

La carga de las edades de los huéspedes se debe ingresar en una array para que posteriormente se recorra y así se obtenga el costo del hospedaje.

Veamos entonces cómo resolver este ejercicio en PHP. Por cierto, el mismo está pensado para ser ejecutado en la consola, pero puedes hacerle las adaptaciones necesarias.

Código de PHP

El código queda como se ve a continuación:

<?php
/*
  ____          _____               _ _           _       
 |  _ \        |  __ \             (_) |         | |      
 | |_) |_   _  | |__) |_ _ _ __ _____| |__  _   _| |_ ___ 
 |  _ <| | | | |  ___/ _` | '__|_  / | '_ \| | | | __/ _ \
 | |_) | |_| | | |  | (_| | |   / /| | |_) | |_| | ||  __/
 |____/ \__, | |_|   \__,_|_|  /___|_|_.__/ \__, |\__\___|
         __/ |                               __/ |        
        |___/                               |___/         
    
____________________________________
/ Si necesitas ayuda, contáctame en \
\ https://parzibyte.me               /
 ------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
Creado por Parzibyte (https://parzibyte.me).
------------------------------------------------------------------------------------------------
            | IMPORTANTE |
Si vas a borrar este encabezado, considera:
Seguirme: https://parzibyte.me/blog/sigueme/
Y compartir mi blog con tus amigos
También tengo canal de YouTube: https://www.youtube.com/channel/UCroP4BTWjfM0CkGB6AFUoBg?sub_confirmation=1
Twitter: https://twitter.com/parzibyte
Facebook: https://facebook.com/parzibyte.fanpage
Instagram: https://instagram.com/parzibyte
Hacer una donación vía PayPal: https://paypal.me/LuisCabreraBenito
------------------------------------------------------------------------------------------------
*/
echo "1. Panamá Centro\n2. Panamá Oeste\n3. Zona Atlántica\n4.Tierras altas\nSeleccione la zona [1-4]: ";
fscanf(STDIN, "%d", $zona);
if ($zona < 1 || $zona > 4) {
    exit("Zona no válida");
}
echo "Ingrese la cantidad de noches a reservar:";
fscanf(STDIN, "%d", $noches);
if ($noches < 0) {
    exit("Las noches deben ser un número positivo");
}
echo "Ingrese la cantidad de personas: ";
fscanf(STDIN, "%d", $personas);
if ($personas < 2) {
    exit("Solo puede asistir en pareja o en familia");
}
$edades = [];
for ($i = 0; $i < $personas; $i++) {
    echo "Ingrese la edad de la persona #" . ($i + 1) . ": ";
    fscanf(STDIN, "%d", $edad);
    $edades[] = $edad;
}

// Seleccionar hotel
$hotel = "";
if ($personas === 2) {
    switch ($zona) {
        case 1:
            $hotel = "Hotel El Panamá";
            break;

        case 2:
            $hotel = "RIU Playa Blanca";
            break;
        case 3:
            $hotel = "Radisson Colon 2000";
            break;
        case 4:
            $hotel = "Valle Escondido Resort";
            break;
    }
} else {
    switch ($zona) {
        case 1:
            $hotel = "Gamboa Rainforest Resort";
            break;

        case 2:
            $hotel = "Royal Decameron";
            break;
        case 3:
            $hotel = "Hotel Cocotal";
            break;
        case 4:
            $hotel = "Boquete Garden Inn";
            break;
    }
}

// Recorremos para calcular costo
$costo = 0;
foreach ($edades as $edad) {
    if ($edad >= 12 && $edad <= 17) {
        $costo += 15;
    } else if ($edad >= 18) {
        $costo += 47;
    }
}
// Y lo multiplicamos por las noches
$costo *= $noches;

echo "Su reserva es en el hotel " . $hotel . "\n";
echo "El costo total es: " . $costo;

Al ejecutarlo, el funcionamiento es correcto:

Ejercicio para selección de zona turística con PHP
Ejercicio para selección de zona turística con PHP

Si quieres puedes aprender más sobre PHP en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *