FPY-1101  ·  Taller de Fundamentos de Programación

Reserva de una Habitación
de Hotel Simplificada

Actividad de programación — aplicación de estructuras básicas en Python

Ing. en Informática · Analista en Programación
|
Python — Consola
|
Entrega: archivo .py
|
Trabajo individual
Objetivo

Desarrollar un programa en Python que simule la gestión básica de una reserva de hotel simplificada, aplicando los contenidos trabajados previamente en PSeInt y llevándolos a código real. El programa considerará dos etapas: inicialización de la información de operación y funcionamiento del sistema de reservas del hotel.

Contexto del Problema
Un hotel pequeño desea probar un sistema muy simple de reservas. El sistema trabajará únicamente con 2 pasajeros y 1 habitación. La habitación solo puede estar reservada por uno de los dos pasajeros a la vez.
Pasajero 1

Nombre + RUT registrados al inicio

Pasajero 2

Nombre + RUT registrados al inicio

Habitación única

Solo puede tener un dueño de reserva a la vez

Paso 1 — Inicializar Información de Operación
Datos de los Pasajeros

Para cada uno de los 2 pasajeros, registrar:

  • Nombre del pasajero (texto)
  • RUT del pasajero (texto)

Solo existen dos pasajeros en el sistema — no más, no menos.

Habitación Inicial

Registrar la información inicial de la habitación:

  • Número o identificador de la habitación
  • Estado inicial: libre (sin reserva)

Al finalizar el registro, se debe seleccionar cuál pasajero comenzará operando el menú.

Paso 2 — Sistema de Reservas del Hotel
Regla Principal del Sistema
Estado LIBRE
Cualquiera de los dos pasajeros puede reservarla.
Estado RESERVADA
Queda asociada al pasajero que la reservó. El otro no puede tomarla hasta que sea liberada.

Opciones del menú

Opción 1
Ver Estado de la Habitación
  • Número o nombre de la habitación.
  • Si está libre o reservada.
  • Si está reservada, indicar qué pasajero la tiene.
  • Qué pasajero está operando el menú actualmente.
Opción 2
Reservar Habitación
  • Si está libre: la reserva se realiza correctamente.
  • Si ya la tiene el mismo pasajero: informar que ya la tiene reservada.
  • Si la tiene el otro pasajero: no se puede reservar, mensaje claro.
Opción 3
Liberar Habitación
  • Si está libre: informar que no hay reserva activa.
  • Si la tiene el pasajero actual: se libera correctamente.
  • Si la tiene el otro pasajero: no se permite liberarla.
Opción 4
Cambiar Pasajero que Opera
  • Si opera el Pasajero 1, cambia al Pasajero 2.
  • Si opera el Pasajero 2, cambia al Pasajero 1.
  • El cambio debe verse reflejado claramente en pantalla.
Opción 5
Salir
  • El usuario puede cerrar el sistema desde el menú.
  • Se recomienda pedir confirmación antes de salir.
Ejemplo Conceptual de Comportamiento
1
Se registran los datos de los dos pasajeros. La habitación comienza libre.
2
El Pasajero 1 entra al menú y reserva la habitación exitosamente.
3
El sistema cambia al Pasajero 2.
4
El Pasajero 2 intenta reservar la habitación → el sistema lo impide con mensaje claro.
5
El Pasajero 2 intenta liberar la habitación → el sistema lo impide porque no es su reserva.
6
Se vuelve al Pasajero 1, quien libera la habitación exitosamente.
7
Con la habitación libre, el Pasajero 2 ahora sí puede reservarla.
Validaciones Mínimas Esperadas
  • Solo un pasajero puede tener la habitación reservada a la vez.
  • No reservar una habitación ya ocupada por otro.
  • No liberar una habitación que pertenece a otro pasajero.
  • Validar que la opción del menú sea válida.
  • Mensajes claros y comprensibles en todo momento.
Restricciones de Implementación
Deben usar
variables input() int() str() if / elif / else while for asignación op. aritméticos op. lógicos op. de comparación
No deben usar
funciones propias listas tuplas diccionarios sets colecciones POO / clases
Sin colecciones: variables separadas
Como no pueden usar listas ni diccionarios, deben manejar la información con variables individuales: datos del pasajero 1, datos del pasajero 2, estado de la habitación, pasajero que opera el menú, y pasajero que tiene la reserva (si existe).
Entregable
  • Archivo .py con la solución completa.
  • Código que se ejecute sin errores desde consola.
  • Cumplimiento del enunciado y respeto por las restricciones dadas.
Criterios de Evaluación
Criterio Relevancia
Correcta inicialización de los 2 pasajeros Medio
Manejo correcto de una sola habitación con sus estados Alto
Validación de reserva exclusiva (un solo dueño) Alto
Cambio correcto del pasajero que opera el menú Medio
Claridad y orden de los mensajes al usuario Medio
Uso correcto de estructuras básicas Alto
Respeto por la restricción de no usar funciones ni colecciones Alto