-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproyecto 1.py
1726 lines (1522 loc) · 66.7 KB
/
proyecto 1.py
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
"""
nombre:menu
entrada: no hay
salidad: ejecucion de la opcion selecionada
retrincciones: solo debe digitar las opciones presente y disponible
"""
def menu():
print("\n")
print("\t","\t","\t",">>>>>>>Menu principal<<<<<<<","\n")
print("1. opciones administrativas. ")
print("2. opciones de usuario normal. ")
print("3. salir. ")
print("\n")
op=input(" Digite la opcion que necesita: ")
print("\n")
if(op=="1"):
print("\t","\t","\t",">>>>>control de seguridad<<<<<","\n")
clave=input("Digite la clave de acceso: ")
print("\n")
contraseña=almacenarInformacion1("clave.txt")
if(clave in contraseña):
return admistrativas()
else:
print("\n","Error, la clave de acceso es incorrecto. ")
return menu()
elif(op=="2"):
return usuarioNormal()
elif(op=="3"):
return print("\t","\t","\t","fue un placer atenderlo ,vuelva pronto. ")
else:
print("\t","\t","\t","Error, dite una de las opciones disponible. ")
return menu()
#--------------------------------------------------------------------------------
"""
nombre:admistrativas
entrada: no hay
salidad: ejcucion de la opcion que digito
retrinccione: solo debe selecionar las opciones disponible
"""
def admistrativas():
print("\t","\t","\t",">>>>>>>menu Administrativo<<<<<<<","\n")
print("1. Gestión de empresas. ")
print("2. Gestión de transporte por empresa. ")
print("3. Gestion de viaje. ")
print("4. Consultar historial de reservaciones.")
print("5. Estadisticas de viaje. ")
print("9. Devolver al menu princinpal ")
print("\n")
op=input("Digite una de las opciones: ")
if(op=="1"):
return Gestion_de_empresas()
elif(op=="2"):
return Gestion_de_transporte()
elif(op=="3"):
return Gestion_de_viaje()
elif(op=="4"):
return Consultar_historial_de_reservaciones()
elif(op=="5"):
return Estadisticas_de_viaje()
elif(op=="9"):
return menu()
else:
print("Error,digite una de las opciones disponible.")
return admistrativas()
#-----------------------------------------------------------------------------
"""
nombre:usuarioNormal
entrada: no hay una difinida
salida: ejecucion de la opcion selecionada
retrincciones: solo debe ser las opciones disponible
"""
def usuarioNormal():
print("\n")
print("\t","\t","\t",">>>>>menu del usuario normal<<<<<","\n")
print("1. Consulta de viajes.")
print("2. Reservación de viaje")
print("3. Cancelación de reservación.")
print("9. Salir. ")
print("\n")
op=input("Digite una de las opciones disponible: ")
print("\n")
if(op=="1"):
return consulta_de_viajes()
elif(op=="2"):
return Reservacion_de_viaje()
elif(op=="3"):
return Cancelacion_de_reservacion()
elif(op=="9"):
return menu()
else:
print("Error, digite una de las opciones disponible.")
return usuarioNormal()
#---------------------------------------------------------------------
"""
nombre: Gestion_de_empresas
entrada: no hay una entrada definida
salida:ejecucion de la opcion seleccionada
retricciones: solo debe seleccionar las opciones disponible
"""
def Gestion_de_empresas():
print("\t","\t","\t",">>>>>mantenimiento a las empresas<<<<<","\n")
print("1. Incluir empresa. ")
print("2. Eliminar empresa. ")
print("3. Modificar empresa. ")
print("4. Mostrar Empresas")
print("5. Regresar. ")
print("\n")
op=input("digite una de las opciones: ")
print("\n")
if(op=="1"):
return incluir_empresa()
elif(op=="2"):
return eliminar_empresa()
elif(op=="3"):
return Modificar_empresa()
elif(op=="4"):
return mostrar_empresas()
elif(op=="5"):
return admistrativas()
else:
print("Error, digite una de las opciones disponible. ","\n")
return Gestion_de_empresas()
#----------------------------------------------------------------------
"""
nombre: incluir_empresa
entrada: cedula= numero de la cedula juridica
nombre=nombre de la empresa
ubicacion=ubicacion de la empresa
salida: return del menu de Gestion_de_empresas
retricciones: la cedula debe tener 10 digito y debe ser caracteres los datos ingresado.
"""
def incluir_empresa():
archivo="Gestion de empresa.txt"
verificar=almacenarInformacion1(archivo)
empresas=open(archivo,"a")
cedula=input("digite la cedula: ")
if(len(cedula)==10):
nombre=input("Digite el nombre de la empresa: ")
if(cedula+"\n" in verificar)==False:
ubicacion=input("Escriba la ubicacion de la empresa: ")
empresas.write(cedula+"\n")
empresas.write(nombre+"\n")
empresas.write(ubicacion+"\n")
empresas.write("---------------------------"+"\n")
empresas.close()
print("\t","\t","\t",">>>>empresa agragada exitosamente<<<<")
print("\n")
return Gestion_de_empresas()
else:
print("Error,la cedula de la empresa ya existen. ")
return incluir_empresa()
else:
print("Error,digite una cedula con 10 digitos")
return incluir_empresa()
#--------------------------------------------------------------------
"""
nombre: almacenarInformacion1
entrada:archivo=el nombre de un archivo ya existente
salida: los datos del archivo en lista
restrincciones: no hay restrincciones defenida
"""
def almacenarInformacion1(archivo):
informacion=open(archivo)
almacenar=informacion.readlines()
informacion.close()
return almacenar
#-----------------------------------------------------------------------
"""
nombre:eliminar_empresa
entrada:no posee entradas
salida: borrar la empresa seleccionada
retrincciones:debe ingresar una placa existente o guardada en el archivo .txt
"""
def eliminar_empresa():
cedula=input("Digite el numero de cedula de la empresa: ")
archivo=open("Gestion de empresa.txt")
empresas=archivo.readlines()
if((cedula+"\n") in empresas):
archivo1=open("Gestion de transporte.txt")
datos=archivo1.readlines()
linea = empresas.index(cedula+"\n")
verificar=verificar_aux(empresas,linea+1,0,[])
if(verificar+"\n") in datos:
print("\n")
print("Esa empresa esta asociada a un transporte. ")
print("\n")
return eliminar_empresa()
else:
eliminar=Eliminar_Empresa_aux(empresas,linea,0)
archivo.close()
archivo=open("Gestion de empresa.txt","w")
archivo.write(eliminar)
archivo.close()
print(f"La empresa con la cedula {cedula} a sido eliminado exitosamente ")
print("\n")
return Gestion_de_empresas()
else:
print(f"No se encontro ningúna empresa con la cedula {cedula} ,vuelva a intentarlo. ")
archivo.close()
op=input("desea repetir la opcion seleccione 1 de no ser asi ingrese cualquier otro dato: ")
if(op=="1"):
return eliminar_empresa()
else:
return Gestion_de_empresas()
#------------------------------------------------------------------------------------------------
"""
nombre: verificar_aux
entrada:listaDeEmpresa= la informacion de las empresas
linea= linea en que se encuentra la informacion buscada
cont= un contador para detener la funcion
datos =una lista lista vacia
salida: la linea buscada
retrincciones: debe ingresar dos numeros enteros y dos lista una vacia y la otra no.
"""
def verificar_aux(listaDeEmpresa,linea,cont,datos):
if cont ==1 :#Se hace la debida verificación de la restricción.
return Convertir_A_String(datos)
else:#Si la primera restricción no se cumple se retorna a esta.
datos+=[listaDeEmpresa[linea].rstrip()]
return verificar_aux(listaDeEmpresa, linea + 1, cont + 1,datos)
#---------------------------------------------------------------------------------------------------------
"""
nombre:Eliminar_Empresa_aux
entrada:empresas= la informacion de las empresas en lista
linea =posicion del dato que se desea eliminar
cont=condicion de parada
salida:las linea 0 indices eliminado y return de una funcion para transformar la nueva lista en caracteres
retrincciones:
"""
def Eliminar_Empresa_aux(empresas,linea,cont):
if (cont==4):
return Convertir_A_String(empresas)
else:
print(empresas[linea].rstrip())
empresas.pop(linea)
return Eliminar_Empresa_aux(empresas,linea,cont+1)
#-------------------------------------------------------------------------------------------------
#Función que convierte un dato en un string.
"""
Nombre: convertir_a_string(lista)
Entrada:
lista =lista del dato que se desea convertir.
Salidas:
Va a convertir el dato en un string.
Retricciones:
El parámetro debe de ser una lista.
"""
def Convertir_A_String(lista):
if isinstance(lista, list):#El parámetro de entrada debe de ser una lista(restricción).
string = ""
for linea in lista:
string += linea
return string
else:#Se imprime el error en el caso de que el parámetro de entrada no cumple con las restriciones predeterminadas.
print("Error: No se puede convertir a string, debido a que el tipo de dato de entrada no es una lista.")
#-------------------------------------------------------------------------------------------------------------------------------
"""
nombre:Modificar_empresa
entrada: no tiene definida
salida: un mensaje de que la empresa a sido modificada con exito
restricciones:la cedula debe existir en el archivo de empresas
"""
def Modificar_empresa():
cedula=input("ingrese la cedula de la empresa a modificar: ")
empresas = ListaDeEmpresas()
if ((cedula + "\n") in empresas):#Verificamos que el número de cédula se encuetre en el archivo.
linea = empresas.index(cedula + "\n")
Mostrar_Empresa(empresas, linea, 0)
empresa_Modificada = Modificar_Empresa_Aux(empresas, linea + 1, 0)#Se creo una variable para ingresar los nuevos datos.
Gestion = open("Gestion de empresa.txt", "w")#Se abre el archivo en el modo que deseamos.
"""
En la función *f. = open (nombreArchivo,'r')* donde f. corresponde a file que es un dato o información
que se guarda en el dispositivo de almacenamiento de la computadora. A nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
Gestion.write(Convertir_A_String(empresa_Modificada))#Se escribe la modificación de la empresa en el archivo.
Gestion.close()#Importante cerrar el archivo.
"""
En la función *f.close()* donde f. corresponde a file y a nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
print("\n", "\t", "\t", "\t","¡empresa modificado con éxito! ", "\n")
return Gestion_de_empresas()
else:
print(f"No tienes ningúna empresa con el número de cédula {cedula} vuelva a intentarlo de nuevo.")
return Gestion_de_empresas()#Retorna nuevamente a la función para que el usuario lo vuelva a intentar.
#---------------------------------------------------------------------------------------------------------------------------------
#funcion de lista de empresas
"""
Nombre: ListaDeEmpresas()
Entrada:
Va abrir el archivo.
Salidas:
Va a leer las líneas del archivo.
Restricciones:
Abrir el archivo correcto.
"""
def ListaDeEmpresas():
agenda = open("Gestion de empresa.txt")#Se abre el archivo en el modo que deseamos.
"""
En la función *f. = open (nombreArchivo,'r')* donde f. corresponde a file que es un dato o información
que se guarda en el dispositivo de almacenamiento de la computadora. A nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
listaDeEmpresas = agenda.readlines()#Lee el archivo.
agenda.close()#Importante cerrar el archivo.
"""
En la función *f.close()* donde f. corresponde a file y a nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
return listaDeEmpresas
#--------------------------------------------------------------------------------------------------------------------------
#Función que muestra la empresa a modificar.
"""
nombre: Mostrar_Empresa
entrada: listaDeEmpresa=datos de las empresas en lista
indice= indice de donde se ubica la imformacion de la empresa a mostrar
cont= el numero cero
salida: los datos de la empresa que se desea mostrar
restricciones: el cont (contador) debe ser mayor a 3
"""
def Mostrar_Empresa(listaDeEmpresa, indice, cont):
if cont > 3:#Se hace la debida verificación de la restricción.
print("\n")
else:#Si la primera restricción no se cumple se retorna a esta.
print(listaDeEmpresa[indice].rstrip())
return Mostrar_Empresa(listaDeEmpresa, indice + 1, cont + 1)#Muestra la empresa que el usuario desea eliminar.
#-----------------------------------------------------------------------------------------------------------------------------------------
#Función de modificar empresa
"""
Nombre: Modificar_Empresa_Aux(agenda, linea, contador)
Entradas: (agenda, linea, contador)
Salida:
Va a retornar la empresa modificado.
Restricciones:
Los parámetros de entrada deben de ser verificados.
"""
def Modificar_Empresa_Aux(agenda, linea, contador):
if contador == 2:
return agenda#Archivo al cual le se le dió ese nombre.
else:#Se hacen las modificaciones del contacto respectivamente.
if contador == 0:
Empresa_Modificado = input("Ingrese el nuevo nombre de la empresa: ")
agenda[linea] =Empresa_Modificado + "\n"
return Modificar_Empresa_Aux(agenda, linea+1, contador+1)
else:
Empresa_Modificado=input("Ingrese la ubicacion de la empresa: ")
agenda[linea]=Empresa_Modificado+"\n"
return Modificar_Empresa_Aux(agenda, linea+1, contador+1)
#---------------------------------------------------------------------------------------------------------------------------------------------
"""
Nombre: mostrar_empresas()
Entradas:
El archivo en modo de lectura.
Salida:
Va a dar una lista de todos lo contactos existentes en la agenda.
Restricciones:
Abrir el archivo de manera correcta.
"""
def mostrar_empresas():
archivo="Gestion de empresa.txt"
agenda= open (archivo,'r')#Se abre el archivo en el modo que deseamos.
"""
En la función *f. = open (nombreArchivo,'r')* donde f. corresponde a file que es un dato o información
que se guarda en el dispositivo de almacenamiento de la computadora. A nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
contador =1
for linea in agenda:
print("linea",contador,":",linea)#Imprimir todos los contactos existentes en la agenda.
contador+=1 #Agregamos un contador para que el usuario pueda ver en que linea corresponde a cada dato.
agenda.close()#Importante cerrar el archivo.
"""
En la función *f.close()* donde f. corresponde a file y a nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
return Gestion_de_empresas()
#-------------------------------------------------------------------------------------------------------------------------------------------
"""
nombre:Gestion_de_transporte()
entrada: no hay una definida
salida:un menu y la opcion solicitada del menu
retrincciones:debe selecionar una de las opciones existente
"""
def Gestion_de_transporte():
print("\t","\t","\t",">>>>>Mantenimiento de los transportes<<<<<")
print("\n","transportes: ","\n")
print("1. Incluir transporte")
print("2. Eliminar transporte")
print("3. Modificar transporte.")
print("4. Mostrar los transporte")
print("5. Regresar.")
print("\n")
op=input("digite una de las opciones disponible: ")
if(op=="1"):
return incluir()
elif(op=="2"):
return eliminar_transporte()
elif(op=="3"):
return Modificar_transporte()
elif(op=="4"):
return mostrar_Transporte()
elif(op=="5"):
return admistrativas()
else:
print("\n")
print(f"Digite una de las opciones disponibles, la opcion {op} no existe")
print("\n")
return Gestion_de_transporte()
#----------------------------------------------------------------------------------
#Función que agrega o incluye el transporte.
"""
nombre: incluir
entrada:pide la la matricula de la lista al usuario
salida: un mensaje de que la empresa a sido agregado existosamente.
restrinciones: la placa no debe existir en el archivo de transporte.
"""
def incluir():
archivo=open("Gestion de transporte.txt","a")
placa=input("Ingrese la matricula del transporte: ")
transporte=ListaDeTransporte()
if(placa in transporte)==False:
marca=input("Ingrese la marca del transporte: ")
modelo=input("Ingrese el modelo del transporte: ")
año=input("Ingrese el año del transporte: ")
lista=open("Gestion de empresa.txt")
lista=lista.read()
print(lista)
empresas=open("Gestion de empresa.txt")
empresas=empresas.readlines()
empresa=input("Ingrese el nombre de una de las empresas exitente: ")
if (empresa+"\n") in empresas:
claseVip=input("Ingrese la cantidad de asiento Vip: ")
claseNormal=input("Ingrese la catidad de asiento de clase normal: ")
claseEconomica=input("Ingrese la cantidad de asiento de clase economica: ")
archivo.write(placa+"\n")
archivo.write(marca+"\n")
archivo.write(modelo+"\n")
archivo.write(año+"\n")
archivo.write(empresa+"\n")
archivo.write(claseVip+"\n")
archivo.write(claseNormal+"\n")
archivo.write(claseEconomica+"\n")
archivo.write("--------------------------------------"+"\n")
archivo.close()
print(f"transporte agregado existosamente. ")
print("\n")
return Gestion_de_transporte()
else:
print("No ingresaste una empresa existente. ")
return Gestion_de_transporte()
else:
print("\n")
print("Error,Ingrese una matricula que no exista.")
print("\n")
return incluir()
#------------------------------------------------------------------------------------------
"""
Nombre: listaDeTranporte(listaContactos, indice, cont)
Entrada:
Va abrir el archivo.
Salidas:
Va a leer las líneas del archivo.
Restricciones:
Abrir el archivo correcto.
"""
def ListaDeTransporte():
agenda = open("Gestion de transporte.txt")#Se abre el archivo en el modo que deseamos.
"""
En la función *f. = open (nombreArchivo,'r')* donde f. corresponde a file que es un dato o información
que se guarda en el dispositivo de almacenamiento de la computadora. A nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
listaDeTransporte = agenda.readlines()#Lee el archivo.
agenda.close()#Importante cerrar el archivo.
"""
En la función *f.close()* donde f. corresponde a file y a nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
return listaDeTransporte
#---------------------------------------------------------------------------------------
"""
nombre: eliminar_transporte
entrada: caracteres ingresados por el usuario
salida: mensaje de que indique la eliminacion del transporte.
restricciones: la placa ingresado por el usuario debe existir en el archivo de transporte.
"""
def eliminar_transporte():
placa=input("Digite el numero de la matricula del transporte a eliminar: ")
archivo=open("Gestion de transporte.txt")
transportes=archivo.readlines()
if((placa+"\n") in transportes):
archivo1=open("Gestion de viaje.txt")
viaje=archivo1.readlines()
linea = transportes.index(placa+"\n")
print(transportes[linea] in viaje)
if((transportes[linea]) in viaje) ==False:
eliminar=Eliminar_transporte_aux(transportes,linea,0)
archivo.close()
archivo=open("Gestion de transporte.txt","w")
archivo.write(eliminar)
archivo.close()
print(f"El transporte con la matricula {placa} a sido eliminado exitosamente ")
print("\n")
return Gestion_de_transporte()
else:
print("Error, transporte asociado a un viaje.")
return eliminar_transporte()
else:
print(f"No se encontro el transporte con la matricula {placa} ,vuelva a intentarlo. ")
archivo.close()
return eliminar_transporte()
#----------------------------------------------------------------------------------------------
"""
nombre:Eliminar_transporte_aux
entrada: transporte=la informacion de los transporte en lista
linea= linea de la lista que se desea eliminar
cont=un numero cero que ira aumentado su valor por uno por cada recursion que se realice hasta que se cumpla la condición.
salida: la lineas o indice de la lista que fue eliminada de la lista.
restricciones: el cont(contador) debe tener el valor de 9 para terminar la recurción
"""
def Eliminar_transporte_aux(transporte,linea,cont):
if (cont==9):
return Convertir_A_String(transporte)
else:
print(transporte[linea].rstrip())
transporte.pop(linea)
return Eliminar_transporte_aux(transporte,linea,cont+1)
#----------------------------------------------------------------------------------------
"""
nombre: Modificar_transporte
entrada: la entrada no esta definida , ya que es ingresada por el usuario.
salida: mensaje que indica que el transporte a sido modificado exitosamente.
restricciones: la placa debe existir en el archivo de las empresas.
"""
def Modificar_transporte():
placa=input("Ingrese la placa del transporte a modificar: ")
transporte = ListaDeTransporte()
if ((placa + "\n") in transporte):#Verificamos que el dato de la placa se encuetre en el archivo.
linea = transporte.index(placa + "\n")
Mostrar_transporte(transporte, linea, 0)
transporte_Modificado = Modificar_transporte_Aux(transporte, linea, 0)#Se creo una variable para ingresar los nuevos datos.
Gestion = open("Gestion de transporte.txt", "w")#Se abre el archivo en el modo que deseamos.
"""
En la función *f. = open (nombreArchivo,'r')* donde f. corresponde a file que es un dato o información
que se guarda en el dispositivo de almacenamiento de la computadora. A nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
Gestion.write(Convertir_A_String(transporte_Modificado))#Se escribe la modificación de la empresa en el archivo.
Gestion.close()#Importante cerrar el archivo.
"""
En la función *f.close()* donde f. corresponde a file y a nuestra variable file le dimos el
nombre de Gestion para que fuera de mejor entendimiento.
"""
print("\n", "\t", "\t", "\t","¡Transporte modificado con éxito! ", "\n")
return Gestion_de_transporte()
else:
print(f"No tienes ningú transporte con la matricula {placa} vuelva a intentarlo de nuevo.")
return Gestion_de_transporte()#Retorna nuevamente a la función para que el usuario lo vuelva a intentar.
#--------------------------------------------------------------------------------------------------------------------
"""
nombre:Mostrar_transporte
entrada: listaDeTransporte= los datos del archivo de transporte pero en lista.
linea= linea que se desea mostrar
cont= el numero cero que aumentara por cada recursion hasta que se cumpla la condicion de parada.
restricciones: el cont(contador) debe ser mayor a 8
"""
def Mostrar_transporte(listaDeTransporte, linea, cont):
if cont > 8:#Se hace la debida verificación de la restricción.
print("\n")
else:#Si la primera restricción no se cumple se retorna a esta.
print(listaDeTransporte[linea].rstrip())
return Mostrar_transporte(listaDeTransporte, linea + 1, cont + 1)
#--------------------------------------------------------------------------------------------------
"""
nombre:Modificar_transporte_Aux
entrada: transporte=los datos de el archivo que contiene los transporte en lista
linea= linea o indice de donde se encuentra los datos a modificar de la lista.
cont=el numero cero.
salida:retorna el la varible que contiene los datos ya modificado
restricciones: el cont(contador) debe ser igual a 8
"""
def Modificar_transporte_Aux(transporte, linea , cont):
if cont == 8:
return transporte#Archivo al cual le se le dió ese nombre.
else:#Se hacen las modificaciones del contacto respectivamente.
if cont == 0:
transporte_Modificado = input("Ingrese la nueva matricula del transporte: ")
transporte[linea] =transporte_Modificado + "\n"
return Modificar_transporte_Aux(transporte, linea+1, cont+1)
elif(cont==1):
transporte_Modificado=input("Ingrese la nueva marca del transporte: ")
transporte[linea]=transporte_Modificado+"\n"
return Modificar_transporte_Aux(transporte, linea+1, cont+1)
elif(cont==2):
transporte_Modificado=input("Ingrese el nuevo modelo del transporte: ")
transporte[linea]=transporte_Modificado+"\n"
return Modificar_transporte_Aux(transporte, linea+1, cont+1)
elif(cont==3):
transporte_Modificado=input("Ingrese el nuevo año del transporte: ")
transporte[linea]=transporte_Modificado+"\n"
return Modificar_transporte_Aux(transporte, linea+1, cont+1)
elif(cont==4):
transporte_Modificado=input("Ingrese la nueva empresa del transporte: ")
transporte[linea]=transporte_Modificado+"\n"
return Modificar_transporte_Aux(transporte, linea+1, cont+1)
elif(cont==5):
transporte_Modificado=input("Ingrese la cantidad de asiento de clase Vip: ")
transporte[linea]=transporte_Modificado+"\n"
return Modificar_transporte_Aux(transporte, linea+1, cont+1)
elif(cont==6):
transporte_Modificado=input("Ingrese la cantidad de asiento de clase normal: ")
transporte[linea]=transporte_Modificado+"\n"
return Modificar_transporte_Aux(transporte, linea+1, cont+1)
else:
transporte_Modificado=input("Ingrese la cantidad de asiento de clase económica: ")
transporte[linea]=transporte_Modificado+"\n"
return Modificar_transporte_Aux(transporte, linea+1, cont+1)
#-------------------------------------------------------------------------------------------------
"""
Nombre: mostrar_Transporte()
Entradas:
El archivo en modo de lectura.
Salida:
Va a dar una lista de todos lo contactos existentes en la agenda.
Restricciones:
Abrir el archivo de manera correcta.
"""
def mostrar_Transporte():
archivo="Gestion de transporte.txt"
agenda= open (archivo,'r')#Se abre el archivo en el modo que deseamos.
"""
En la función *f. = open (nombreArchivo,'r')* donde f. corresponde a file que es un dato o información
que se guarda en el dispositivo de almacenamiento de la computadora. A nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
contador =1
for linea in agenda:
print("linea",contador,":",linea)#Imprimir todos los contactos existentes en la agenda.
contador+=1 #Agregamos un contador para que el usuario pueda ver en que linea corresponde a cada dato.
agenda.close()#Importante cerrar el archivo.
"""
En la función *f.close()* donde f. corresponde a file y a nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
return Gestion_de_transporte()
#-----------------------------------------------------------------------------------------------------------------------
"""
nombre:Gestion_de_viaje
entrada: un caracter ingresado por el usuario
salida: imprime un menor y despues se ejecuta la opcion que solicito.
restricciones: debe ingresar el usuario unas de las opciones disponible.
"""
def Gestion_de_viaje():
print("\t","\t","\t",">>>>>Gestion de viaje<<<<<")
print("1. registrar viajes")
print("2. eliminar viajes")
print("3. Modificar viajes ")
print("4. mostrar viajes")
print("5. regresar")
print("\n")
op=input("Digite una de las opciones disponible: ")
if(op=="1"):
return registrar_viajes()
elif(op=="2"):
return eliminar_viajes()
elif(op=="3"):
return modificar_viaje()
elif(op=="4"):
return mostrar_viajes()
elif(op=="5"):
return admistrativas()
else:
print("\n")
print("Ingrese una de las opciones disponible,la opcion {op} no existe o no esta disponible")
print("\n")
return Gestion_de_viaje()
#-----------------------------------------------------------------------------------------------
"""
nombre:registrar_viajes
entrada:diferentes datos ingresados por el usuario
salida:un mensaje de que ek viaje se realizo con existo
restricciones:debe ingresar una placa que exista en el archivo que se almacena las empresas.
"""
def registrar_viajes():
archivo="Gestion de viaje.txt "
archivo=open(archivo,"a")
numero_de_viaje=numero_de_viaje_aux()
ciudad_de_salida=input("Ingrese la ciudad de salida: ")
fecha=input("Ingrese la fecha de salida: ")
hora_de_salida=input("Ingrese la hora de salida del viaje: ")
ciudad_de_llegada=input("Ingrese la ciudad de llegada: ")
fecha_de_llegada=input("Ingrese la fecha de la llegada: ")
hora_de_llegada=input("Ingrese la hora de la llegada: ")
transporte=ListaDeTransporte()
lista=open("Gestion de transporte.txt")
lista=lista.read()
print(lista)
empresa=input("Digite el nombre la empresa de viaje: ")
placa=input("Digite la placa del transporte de la empresa: ")
if(empresa+"\n")in transporte:
monto1=input("Ingrese el valor de la clase VIP: ")
monto2=input("Ingrese el valor de la clase normal: ")
monto3=input("INgrese el valor de la clase economica: ")
numero_de_viaje=str(numero_de_viaje)
archivo.write("numero de viaje: "+numero_de_viaje+"\n")
archivo.write(ciudad_de_salida+"\n")
archivo.write(fecha+"\n")
archivo.write(hora_de_salida+"\n")
archivo.write(ciudad_de_llegada+"\n")
archivo.write(fecha_de_llegada+"\n")
archivo.write(hora_de_llegada+"\n")
archivo.write(empresa+"\n")
archivo.write(placa+"\n")
archivo.write("clase VIP:"+monto1+"\n")
archivo.write("clase normal:"+monto2+"\n")
archivo.write("clase economica:"+monto3+"\n")
archivo.write("--------------------------------"+"\n")
archivo.close()
print("\t","\t","\t",">>>>>viaje registado exitosamento<<<<<")
print("\n")
return Gestion_de_viaje()
else:
print("\n")
print("Ingrese una empresa existente. ")
print("\n")
return registrar_viajes()
#-----------------------------------------------------------------------------
"""
nombre: numero_de_viaje_aux
entrada: no hay una definida
salida: un numero segun la cantida de linea que tenga el archivo de viaje.
restricciones: no hay una definida.
"""
def numero_de_viaje_aux():
archivo="Gestion de viaje.txt"
agenda= open (archivo,'r')#Se abre el archivo en el modo que deseamos.
"""
En la función *f. = open (nombreArchivo,'r')* donde f. corresponde a file que es un dato o información
que se guarda en el dispositivo de almacenamiento de la computadora. A nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
contador=0
for linea in agenda:
contador+=1
agenda.close()
return contador//11+1
#----------------------------------------------------------------------------------------------------------------------------
"""
nombre:eliminar_viajes
entrada: numero del viaje.
salida: mensaje indicando que el viaje fue eliminado.
restricciones:el numero del viaje debe existir.
"""
def eliminar_viajes():
numero_de_viaje=input("Ingrese el numero de su viaje: ")
numero_de_viaje=str(numero_de_viaje)
archivo=open("Gestion de viaje.txt")
datos=archivo.readlines()
if("numero de viaje: "+numero_de_viaje+"\n")in datos:
linea = datos.index("numero de viaje: "+numero_de_viaje+"\n")
eliminar=Eliminar_viaje_aux(datos,linea,0)
archivo.close()
archivo=open("Gestion de viaje.txt","w")
archivo.write(eliminar)
archivo.close()
print(f"El voleto con el numero de viaje {numero_de_viaje} a sido eliminado exitosamente. ")
print("\n")
return Gestion_de_viaje()
else:
print("\n")
print("el numero de viaje {numero_de_viaje} no existe,ingrese otro numero de viaje. ")
print("\n")
return Gestion_de_viaje()
#------------------------------------------------------------------------------------------------------------------------------
"""
nombre: Eliminar_viaje_aux
entrada: viaje= la informacion de la los viajes en lista
linea= linea o indice de la linea que se desea eliminar.
cont= un contador que inicia desde 0.
salida: las linea o indice de las lista que se eliminaron.
restricciones: el cont(contador) debe tener ser igual a 13
"""
def Eliminar_viaje_aux(viajes,linea,cont):
if (cont==13):
return Convertir_A_String(viajes)
else:
print(viajes[linea].rstrip())
viajes.pop(linea)
return Eliminar_viaje_aux(viajes,linea,cont+1)
#-----------------------------------------------------------------------------------------------------------------------------
"""
nombre:modificar_viaje
entrada: dato ingresado por el usuario
salida: mensaje indicando que el viaje fue eliminado
restricciones: el usuario debe ingresar un numero de viaje que existan en el archivo de viajes.
"""
def modificar_viaje():
numero=input("Ingrese el numero de viaje,del viaje a modificar: ")
archivo=open("Gestion de viaje.txt")
datos=archivo.readlines()
if (("numero de viaje: "+numero + "\n") in datos):#Verificamos que el número de cédula se encuetre en el archivo.
linea = datos.index("numero de viaje: "+numero+ "\n")
Mostrar_viaje(datos, linea, 0)
viaje_Modificado = Modificar_viaje_Aux(datos, linea, 0)#Se creo una variable para ingresar los nuevos datos.
Gestion = open("Gestion de viaje.txt", "w")#Se abre el archivo en el modo que deseamos.
"""
En la función *f. = open (nombreArchivo,'r')* donde f. corresponde a file que es un dato o información
que se guarda en el dispositivo de almacenamiento de la computadora. A nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
Gestion.write(Convertir_A_String(viaje_Modificado))#Se escribe la modificación de la empresa en el archivo.
Gestion.close()#Importante cerrar el archivo.
"""
En la función *f.close()* donde f. corresponde a file y a nuestra variable file le dimos el
nombre de agenda para que fuera de mejor entendimiento.
"""
print("\n", "\t", "\t", "\t","¡Viaje modificado con éxito! ")
print("\n")
return Gestion_de_viaje()
else:
print(f"No tienes ningú transporte con la matricula {numero} vuelva a intentarlo de nuevo.")
return modificar_viaje()#Retorna nuevamente a la función para que el usuario lo vuelva a intentar.
#_-------------------------------------------------------------------------------------------------------------------------------------
"""
nombre: Mostrar_viaje
entrada: listaDeViaje= informacion de los viaje sen lista.
linea= indice que se desea imprimir
cont=un contador que inicia desde cero
salida: la informacion del viaje que se desea mostrar
restricciones: el contador debe ser mayor a 12 para que termine la recursion
"""
def Mostrar_viaje(listaDeViaje, linea, cont):
if cont > 12:#Se hace la debida verificación de la restricción.
print("\n")
else:#Si la primera restricción no se cumple se retorna a esta.
print(listaDeViaje[linea].rstrip())
return Mostrar_viaje(listaDeViaje, linea + 1, cont + 1)
#-------------------------------------------------------------------------------------------
"""
nombre: Modificar_viaje_Aux
entrada: viaje=informacion de los viajes en listas.
linea= indice que se desea modificar
cont=un contador que inicia desde cero
salida: la informacion de los viajes ya editados.
restricciones: el contador debe ser igual a 10 para que termine la recursion
"""
def Modificar_viaje_Aux(viaje, linea , cont):
if cont == 10:
return viaje#Archivo al cual le se le dió ese nombre.
else:#Se hacen las modificaciones del contacto respectivamente.
if cont == 0:
viaje_Modificado = input("Ingrese la ciudad de salida: ")
viaje[linea] =viaje_Modificado + "\n"
return Modificar_viaje_Aux(viaje, linea+1, cont+1)
elif(cont==1):
viaje_Modificado=input("Ingrese la fecha: ")
viaje[linea]=viaje_Modificado+"\n"
return Modificar_viaje_Aux(viaje, linea+1, cont+1)
elif(cont==2):
viaje_Modificado=input("Ingrese la nueva hora de salida: ")
viaje[linea]=viaje_Modificado+"\n"
return Modificar_viaje_Aux(viaje, linea+1, cont+1)
elif(cont==3):
viaje_Modificado=input("Ingrese la nueva ciudad de llegada: ")
viaje[linea]=viaje_Modificado+"\n"
return Modificar_viaje_Aux(viaje, linea+2, cont+1)
elif(cont==4):
viaje_Modificado=input("Ingrese la fecha de llegada nueva: ")
viaje[linea]=viaje_Modificado+"\n"
return Modificar_viaje_Aux(viaje, linea+1, cont+1)
elif(cont==5):
viaje_Modificado=input("Ingrese la nueva hora de llegada: ")
viaje[linea]=viaje_Modificado+"\n"
return Modificar_viaje_Aux(viaje, linea+1, cont+1)
elif(cont==6):
lista=open("Gestion de transporte.txt")
lista=lista.read()
print(lista)
empresas=open("Gestion de empresa.txt")
empresas=empresas.readlines()
viaje_Modificado=input("Ingrese la empresa de transporte: ")
if(viaje_Modificado+"\n")in empresas:
viaje[linea]=viaje_Modificado+"\n"
return Modificar_viaje_Aux(viaje, linea+1, cont+1)
else:
print("\n")
print("Error, Ingrese una de las empresas disponibles")
print("\n")
return Modificar_viaje_Aux(viaje, linea, cont)
elif(cont==7):
placa:input("Digite la placa del transporte: ")
viaje[linea]=placa+"\n"
return Modificar_viaje_Aux(viaje, linea+1, cont+1)
return
elif(cont==8):
montos=input("Ingrese el valor de la clase VIP: ")
viaje[linea]="Clase VIP:"+montos+"\n"
return Modificar_viaje_Aux(viaje, linea+1, cont+1)
elif(cont==9):
montos=input("Ingrese el valor de la clase normal: ")
viaje[linea]="Clase Normal:"+montos+"\n"
return Modificar_viaje_Aux(viaje, linea+1, cont+1)