-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVuelo.py
More file actions
147 lines (84 loc) · 5.48 KB
/
Vuelo.py
File metadata and controls
147 lines (84 loc) · 5.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# Importamos funciones las cuales nos sirven para hacer verificacion de errores al ingreso de datos
import funciones
#Importamos la funcion datetime para el uso de horas y fechas
from datetime import datetime
class Vuelo:
"""
Esta clase almacena la informacion de un vuelo que es:
Numero de vuelo
Ciudad de origen
Ciudad de destino
Costo del vuelo
Hora de salida
Capacidad maxima del vuelo
Nombre del piloto
Fecha de salida del vuelo
Cupos del vuelo
ATRIBUTOS
numero_vuelo: Es el numero del vuelo, asignado de acuerdo al orden de registro, iniciando en 0
ciudad_origen: Es la ciudad de origen del vuelo
ciudad_destino: Es la ciudad de destino del vuelo
costo_vuelo: Es el costo del vuelo
hora_salida: Es la hora de salida del vuelo de su ciudad de origen a la ciudad de destino
capacidad_maxima_vuelo: Es el numero maximo de cupos que tiene el vuelo
nombre_piloto: Es el nombre del piloto del vuelo correspondiente
fecha_salida_vuelo: Es la fecha de salida del vuelo de su ciudad de origen a su ciudad de destino
cupos_vuelo: Hace referencia a los cupos disponibles que aun tiene el vuelo
"""
# Atributos
numero_vuelo = int
ciudad_origen = str
ciudad_destino = str
costo_vuelo = float
capacidad_maxima_vuelo = int
nombre_piloto = str
fecha_salida_vuelo = datetime
cupos_vuelo = int
#Constantes
ARCHIVO_VUELOS = "datos_vuelo.npy"
# Metodo constructor de la clase
def __init__(self, numero_vuelo =0, ciudad_origen = "", ciudad_destino = "", costo_vuelo = 0.0, capacidad_maxima_vuelo = 0, nombre_piloto = ""):
self.numero_vuelo = numero_vuelo
self.ciudad_origen = ciudad_origen
self.ciudad_destino = ciudad_destino
self.costo_vuelo = costo_vuelo
self.capacidad_maxima_vuelo = capacidad_maxima_vuelo
self.nombre_piloto = nombre_piloto
# Este metodo pide por consola los datos para el registro del vuelo
def pedir_datos_vuelo(self):
# Se pide la ciudad de origen del vuelo
self.ciudad_origen = input("\nIngrese la ciudad de origen del vuelo: ")
while (funciones.validar_cadena_caracteres(self.ciudad_origen)): # Se valida la ciudad de origen del vuelo y se pide hasta que se ingrese bien
self.ciudad_origen = input("\nIngrese la ciudad de origen del vuelo: ")
# Se pide la ciudad de destino del vuelo
self.ciudad_destino = input("\nIngrese la ciudad de destino del vuelo: ")
while (funciones.validar_cadena_caracteres(self.ciudad_destino)): # Se valida la ciudad de destino del vuelo y se pide hasta que se ingrese bien
self.ciudad_destino = input("\nIngrese la ciudad de destino del vuelo: ")
# Se pide la fecha de salida del vuelo
self.fecha_salida_vuelo = input("\nIngrese la fecha de salida del vuelo (formato AÑO-MES-DIA): ")
while(True):
while (funciones.validar_fecha(self.fecha_salida_vuelo)):
self.fecha_salida_vuelo = input("\nIngrese la fecha de salida del vuelo (formato AÑO-MES-DIA): ")
self.fecha_salida_vuelo = datetime.strptime(self.fecha_salida_vuelo, "%Y-%m-%d").date()
fecha_actual = datetime.now()
if (self.fecha_salida_vuelo <= fecha_actual.date()):
print("\nIngresaste una fecha de salida anterior o igual a hoy. Vuelve a intentarlo")
self.fecha_salida = input("\nIngrese la fecha de salida del vuelo (formato AÑO-MES-DIA): ")
else:
break
# Se pide el costo del vuelo
self.costo_vuelo = input("\nIngrese el costo del vuelo (SOLO ingrese punto en caso de ser decimal. No ingrese puntos de 1000 ni comas.): ")
while (funciones.validar_real_mayorigual_0(self.costo_vuelo)):# Se valida el costo del vuelo y se pide hasta que se ingrese bien
self.costo_vuelo = input("\nIngrese el costo del vuelo(SOLO ingrese punto en caso de ser decimal. No ingrese puntos de 1000 ni comas.): ")
self.costo_vuelo = float(self.costo_vuelo) # Se deja el costo del vuelo convertido en tipo de dato real
# Se pide la capacidad maxima del vuelo
self.capacidad_maxima_vuelo = input("\nIngrese la capacidad máxima de pasajeros que puede tener el vuelo: ")
while(funciones.validar_entero_mayor_0(self.capacidad_maxima_vuelo)): # Se valida la capacidad maxima del vuelo y se pide hasta que se ingrese bien
self.capacidad_maxima_vuelo = input("\nIngrese la capacidad máxima de pasajeros que puede tener el vuelo: ")
self.capacidad_maxima_vuelo = int(self.capacidad_maxima_vuelo) # Se deja la capacidad maxima del vuelo convertida en tipo de dato entero
# Se pide el nombre del piloto del vuelo
self.nombre_piloto = input("\nIngrese el nombre del piloto: ")
while (funciones.validar_cadena_caracteres(self.nombre_piloto)): # Se valida el nombre del piloto y se pide hasta que se ingrese bien
self.nombre_piloto = input("\nIngrese el nombre del piloto: ")
# Inicialmente los cupos del vuelo es igual a la capacidad maxima del vuelo
self.cupos_vuelo = self.capacidad_maxima_vuelo