Está en la página 1de 3

Práctica 1: Sistema de Reservas Aeropuerto

Programación Sistema Aeroportuarios

En esta práctica tendrás que desarrollar en Python un sistema de gestión de reservas de


vuelos. Esta aplicación debe ser capaz de mostrar la información de un vuelo, sus pasajeros,
asientos ocupados/libres y gestionar su información.

1. Mostrar Información Reservas

Empezarás leyendo la información de los ficheros booked_business.csv y booked_regular.csv


(que encontrarás en el aula virtual) que contiene únicamente la información de los asientos de
business y turista que están reservados. Los ficheros de reserva CSV tienen el siguiente
formato.
DNI, Nombre, Apellidos, Asiento, Edad, Facturacion

DNI: Alfanumérico, máximo 9 caracteres.


Nombre: String, máximo 20 caracteres.
Apellidos: String, máximo 30 caracteres.
Asiento: Alfanumérico, 2 caracteres número, y 1 para letra.
Edad: Numérico [0-150]
Facturación: Si / No

El avión dispone de 20 filas, y cada fila 6 asientos (A,B,C,D,E,F). A y F corresponden a


ventanilla, C y D a pasillo. Las primeras 8 filas siempre corresponden a business y el resto a
turista. Lo primero que debe hacer tu aplicación es mostrar la información de los asientos (R:
reservado, L: libre) de la siguiente manera

A B C D E F
==============================================

1 R L R L L L
2 L R L L L L

8 L L L L L L
---------------------------------------------------------------------------------

20 R L L R L R
Además debes mostrar el siguiente resumen:

El vuelo está un XX% ocupado.


YY pasajeros alojados en business y ZZ pasajeros alojados en turista.
NN pasajeros facturan maleta.

Por último, si encuentras algún conflicto en los datos leídos:


● Una línea leída con campos incompletos
● Un mismo asiento asignado a 2 o más pasajeros

ATENCIÓN: El asiento XX está asignado a N pasajeros:

- NombreApellidos Pasajero 1
- NombreApellidos Pasajero 2

- NombreApellidos Pasajero N

2. Menu

Genera el siguiente menú interactivo para tu aplicación:

1. Mostrar Información Reservas


2. Mostrar Pasajeros
3. Añadir Reserva
4. Modificar Reserva
5. Eliminar Reserva

Introduce una opción:

El punto 2 debe preguntar si se desea mostrar la información ordenada por número de asiento
o por orden alfabético (apellido) de los asientos ocupados. En cualquier caso, la salida
esperada es la siguiente (campos separados por tabulador)

Asiento Apellidos Nombre


3. Sistema de Reservas

Debes permitir añadir, modificar o eliminar reservas de un vuelo. Implementa un menú de texto
donde permita realizar este tipo de operaciones.
● Añadir: Debe preguntar por todos los datos y guardarlos correctamente.
○ Se debe preguntar si se quiere reservar en business o turista.
○ Se debe preguntar si quiere Ventanilla/Pasillo/Indiferente
○ Con estos datos, la asignación del asiento se debe hacer de manera automática,
asignando el primer asiento libre con las características anteriormente descritas.
● Modificar: Debe preguntar por el DNI, comprobar que ya existe esa reserva, y deberá
permitir modificar únicamente el asiento asignado. La asignación del asiento se realizará
directamente especificando el asiento. Si éste está libre, se re-asignará. Si no hay
reserva con ese DNI, debe notificarlo.
● Eliminar: Debe preguntar por el DNI, comprobar que existe la reserva y eliminarla.

Con cada operación que cambie el estado de las reservas se debe realizar 2 acciones:

● Mostrar la información únicamente de la fila del avión donde se ha añadido o eliminado


la reserva. En el caso de modificado, se mostrarán las 2 filas (donde estaba la reserva,
y donde se ha reasignado). Si la fila fuera la misma, solo se mostrará una vez.
● Además se debe persistir/guardar la información en los ficheros booked_business.csv y
booked_regular.csv. Sólo se debe guardar los asientos que están reservados.

Consideraciones
● Implementa la aplicación en python usando los notebooks de Jupyter.
● Usa correctamente la separación de bloques de código.
● Utiliza funciones correctamente para descomponer la aplicación y reutilizar código.
● Utilizar correctamente los tipos de datos vistos en clase (listas, tuplas, diccionarios)
● Sigue el estilo de código definido en los notebooks.
● Controla todas las posibles excepciones de tu código.

La entrega se realizará mediante el aula virtual siguiendo los comentarios allí descritos.

También podría gustarte