public Principal(ref listaVuelos refListaVuelos, ref listaPasajeros listaPasajeros, ref listaCiudades listaCiudades)
        {
            InitializeComponent();

            this.listaVuelos    = refListaVuelos;
            this.listaPasajeros = listaPasajeros;
            this.listaCiudades  = listaCiudades;
        }
        public Grafo(ref listaCiudades refListaCiudades, ref listaVuelos refListaVuelos, ref listaPasajeros refListaPasajeros)
        {
            InitializeComponent();

            this.listaCiudades  = refListaCiudades;
            this.listaVuelos    = refListaVuelos;
            this.listaPasajeros = refListaPasajeros;

            eliminarCiudadButton.Enabled = false;
            dijkstraButton.Enabled       = false;
            propuestaButton.Enabled      = false;
            barataButton.Enabled         = false;
            cortaButton.Enabled          = false;
        }
        public registroVuelo(ref listaVuelos refListaVuelos, ref listaCiudades refListaCiudades)
        {
            InitializeComponent();

            this.listaVuelos   = refListaVuelos;
            this.listaCiudades = refListaCiudades;

            registroButton.Enabled  = false;
            destinoTextBox.Enabled  = false;
            precioTextBox.Enabled   = false;
            tiempoTextBox.Enabled   = false;
            dateTimePicker1.Enabled = false;

            if (refListaVuelos.Count() == 0)
            {
                indiceVuelo = -1;
            }
            else
            {
                indiceVuelo = refListaVuelos[refListaVuelos.Count - 1].indiceVuelo;
            }
        }
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);


            listaVuelos    listaVuelos    = new listaVuelos();
            listaPasajeros listaPasajeros = new listaPasajeros();
            listaCiudades  listaCiudades  = new listaCiudades();


            // Leer Vuelos
            StreamReader Leer;

            Leer = new StreamReader("Vuelos.txt");

            while (!Leer.EndOfStream)
            {
                string   lineas      = Leer.ReadLine();
                char     delimitador = ('|');
                string[] palabras    = lineas.Split(delimitador);

                Vuelo vueloN = new Vuelo(palabras[0], palabras[1], int.Parse(palabras[3]), int.Parse(palabras[2]), palabras[4], Int32.Parse(palabras[5]), Int32.Parse(palabras[6]));
                listaVuelos.Add(vueloN);
            }
            Leer.Close();



            // Leer Pasajeros
            StreamReader LeerPasajeros;

            LeerPasajeros = new StreamReader("Pasajeros.txt");

            while (!LeerPasajeros.EndOfStream)
            {
                string   lineas      = LeerPasajeros.ReadLine();
                char     delimitador = ('|');
                string[] palabras    = lineas.Split(delimitador);

                Pasajero pasajeroN = new Pasajero(palabras[0], palabras[1], palabras[2], Int32.Parse(palabras[3]), Int32.Parse(palabras[4]));
                listaPasajeros.Add(pasajeroN);
            }
            LeerPasajeros.Close();

            for (int i = 0; i < listaPasajeros.Count(); i++)
            {
                for (int j = 0; j < listaVuelos.Count(); j++)
                {
                    if (listaPasajeros[i].indiceVuelo == listaVuelos[j].contadorAsientos)
                    {
                        listaVuelos[j].indice[listaPasajeros[i].numeroAsiento - 1] = false;
                    }
                }
            }


            //Leer Ciudades
            StreamReader LeerCiudades;

            LeerCiudades = new StreamReader("Ciudades.txt");

            while (!LeerCiudades.EndOfStream)
            {
                string   lineas      = LeerCiudades.ReadLine();
                char     delimitador = ('|');
                string[] palabras    = lineas.Split(delimitador);

                Ciudad ciudadN = new Ciudad(palabras[0], Int32.Parse(palabras[1]), Int32.Parse(palabras[2]));
                listaCiudades.Add(ciudadN);
            }
            LeerCiudades.Close();


            // Insertar aristas
            foreach (Ciudad myCiudad in listaCiudades)
            {
                foreach (Vuelo myVuelo in listaVuelos)
                {
                    if (myCiudad.nombre == myVuelo.origen)
                    {
                        int cont = 0;

                        Arista nuevaArista = new Arista();

                        nuevaArista.origen  = myVuelo.origen;
                        nuevaArista.destino = myVuelo.destino;
                        nuevaArista.costo   = myVuelo.costo;

                        foreach (Ciudad otherCiudad in listaCiudades)
                        {
                            if (otherCiudad.nombre == myVuelo.destino)
                            {
                                nuevaArista.indice = cont;
                                break;
                            }
                            cont++;
                        }

                        myCiudad.myListaAristas.Add(nuevaArista);
                    }
                }
            }



            Application.Run(new Principal(ref listaVuelos, ref listaPasajeros, ref listaCiudades));



            //Escribir Vuelos
            StreamWriter Escribir = new StreamWriter("Vuelos.txt");

            foreach (Vuelo objeto in listaVuelos)
            {
                Escribir.WriteLine(objeto.origen.ToString() + '|' + objeto.destino.ToString() + '|' + objeto.costo + '|' + objeto.tiempo + '|' + objeto.fecha + '|' + objeto.indiceVuelo + '|' + objeto.contadorAsientos);
            }
            Escribir.Close();


            //Escribir Pasajeros
            StreamWriter EscribirPasajero = new StreamWriter("Pasajeros.txt");

            foreach (Pasajero objeto in listaPasajeros)
            {
                EscribirPasajero.WriteLine(objeto.nombre + "|" + objeto.apellido + "|" + objeto.edad + "|" + objeto.numeroAsiento + "|" + objeto.indiceVuelo);
            }
            EscribirPasajero.Close();


            //Escribir Ciudades
            StreamWriter EscribirCiudades = new StreamWriter("Ciudades.txt");

            foreach (Ciudad myCiudad in listaCiudades)
            {
                EscribirCiudades.WriteLine(myCiudad.nombre + '|' + myCiudad.x + '|' + myCiudad.y);
            }
            EscribirCiudades.Close();
        }