Resumen de programacion
Descripción
El proyecto consiste en implementar un prototipo de una aplicación para detectar conflictos
entre planes de vuelo.
El proyecto debe trabajar con una lista de planes de vuelos. Los datos de estos planes estarán
inicialmente en un fichero de texto llamado “planes.txt”. Un plan de vuelo se caracteriza por los siguientes atributos:
Identificador: una cadena de caracteres que identifica el vuelo (ej: IBE102).
Nombre de la compañía aérea: una cadena de caracteres (ej: Iberia).
Origen: posición inicial del avión (dos números enteros) que indican la posición inicial
del avión en un espacio bidimensional en el que cada unidad se corresponde con una milla náutica (nm). Una milla náutica se corresponde con 1,852 Km. La coordenada 0,0
de ese espacio corresponde a la esquina Nord‐Oeste. Aumentar la coordenada X
implica moverse hacia el Este e incrementar la Y implica moverse hacia el Sur.
Destino: posición final del avión (dos números enteros).
Velocidad: velocidad del avión en nudos (millas náuticas por hora).
En la primera línea del fichero “planes.txt” hay un número entero que indica el número de
planes de vuelo y en las líneas siguientes aparecen los datos de cada uno de esos planes. Todos
los datos de un plan están en la misma línea, separados por un carácter en blanco.
De forma genérica, la aplicación debe simular el movimiento de los vuelos paso a paso,
mostrar la distancia entre los vuelos indicados por el usuario y determinar si existe conflicto
entre esos dos vuelos. Dos planes de vuelo entran en conflicto si en algún momento las dos
aeronaves implicadas se encuentran a una distancia inferior a una distancia de seguridad que
llamaremos D.
De forma más específica, la aplicación debe mostrar al usuario las opciones siguientes:
0‐
1‐
2‐
3‐
4‐
5‐
6‐
7‐Salir de la aplicación.
Cargar los planes de vuelo del fichero “planes.txt”.
Mostrar en pantalla los planes de vuelo.
Introducir la distancia de seguridad (el valor de D, tal y como se ha explicado antes)
y el tiempo de ciclo para la simulación.
Mover la posición de los vuelos tras el tiempo de vuelo correspondiente al ciclo de
simulación. Mostrar en pantalla la distancia entre los dos vuelos identificados por el usuario,
con una indicación de si existe conflicto entre ambas aeronaves en ese momento.
Reiniciar la simulación de manera que todos los vuelos se coloquen en el origen del
plan de vuelo correspondiente.
Salvar los planes de vuelo de tal manera que pueda reiniciarse la simulación más
tarde, exactamente en el punto en el que se dejó de simular.
Aclaraciones
La figura ilustra los conceptos que aparecen en el enunciado del proyecto. Se muestra el
espacio aéreo en forma de espacio bidimensional XY. Notad que ambas coordenadas X e Y
toman valores positivos que aumentan de Oeste a Este y de Norte a Sur. La figura muestra un avión cuya posición inicial en ese espacio es (50,300). Ese avión vuela a 900 nudos en dirección
al punto (500,150).
X
Norte
IBE301
900 nudos
(500,150)
ángulo
(50,300)
Sur
Y
La cuestión básica es calcular la posición en la que estará la aeronave al cabo de un cierto
tiempo t. Las componentes X e Y de la nueva posición dependerán de la posición inicial (X0, Y0), de la velocidad (V) y del ángulo que forma la trayectoria con el eje horizontal. Si denotamos el
coseno de ese ángulo con C y el seno con S, entonces:
X(t) = X0 + V ∙ t ∙ C = X0 + V ∙ t ∙ (Xd – Xo) / ((Xd – Xo)2 + (Yd – Yo)2)
Y(t) = Y0 + V ∙ t ∙ S = Y0 + V ∙ t ∙ (Yd – Yo) / ((Xd – Xo)2 + (Yd – Yo)2)
En nuestro ejemplo, al cabo de 10 minutos el avión habrá recorrido:
L = V ∙ t = (900 nm / 60 min) x 10 min = 150 nm ...
Regístrate para leer el documento completo.