private void button1_Click(object sender, EventArgs e) { string origen = textBox1.Text; string destino = textBox2.Text; string rute = "SK1" + textBox1.Text + textBox2.Text; int costo = Int32.Parse(textBox3.Text); int tiempo = Int32.Parse(textBox5.Text); int asientos = 18; bool[] numAsientos = new bool[18]; bool rutaValida = true; for (int i = 0; i < listaVuelos.Count; i++) { if (textBox1.Text == textBox2.Text) { MessageBox.Show("El origen y el destino son iguales", "vuelo no valido", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk); rutaValida = false; break; } if (rute == listaVuelos[i].getRuta()) { MessageBox.Show("La ruta seleccionada ya existe", " Elige una ruta nueva", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk); rutaValida = false; break; } else { rutaValida = true; } } if (rutaValida == true) { for (int k = 0; k < 18; k++) { numAsientos[k] = true; } DateTime fecha = Convert.ToDateTime(dateTimePicker1.Text + " " + dateTimePicker2.Text); Vuelocs vuelo = new Vuelocs(rute, origen, destino, asientos, costo, tiempo, fecha, numAsientos); listaVuelos.Add(vuelo); this.Close(); } }
public void QuickSortTiempo(ref ListaVuelos listaVuelos, int posicionInicialLista, int posicionFinalLista) { int i = posicionInicialLista; int j = posicionFinalLista; int central; int pivote; central = (posicionInicialLista + posicionFinalLista) / 2; pivote = listaVuelos[central].tiempo; while (i <= j) { while (listaVuelos[i].tiempo < pivote) { i++; } while (listaVuelos[j].tiempo > pivote) { j--; } if (i <= j) { Vuelocs temp = listaVuelos[i]; listaVuelos[i] = listaVuelos[j]; listaVuelos[j] = temp; i++; j--; } } if (posicionInicialLista < j) { QuickSortTiempo(ref listaVuelos, posicionInicialLista, j); } if (i < posicionFinalLista) { QuickSortTiempo(ref listaVuelos, i, posicionFinalLista); } }
private void grafoRecorridoT() { Pen arista = new Pen(Color.Blue, 3); SolidBrush colorLetras = new SolidBrush(Color.Black); ListaVuelos listaRecorrido = new ListaVuelos(); int origen = 0; for (int i = 0; i < grafito.Count; i++) { if (destinoBox.Text == grafito[i].origen) { origen = i; } } int destino = 0; for (int i = 0; i < grafito.Count; i++) { if (origenBox.Text == grafito[i].origen) { destino = i; } } int[] listaDij = Dijkstra; int[] ind = new int[grafito.Count]; for (int i = 0; i < grafito.Count; i++) { ind[i] = 100; } int h = 0; bool exist = false; for (int i = 0; i < listaV.Count; i++) { if (grafito[origen].origen == listaV[i].o && grafito[destino].origen == listaV[i].d) { for (int j = 0; j < grafito.Count; j++) { if (ind[j] != 100) { ind[j] = i; listaRecorrido.Add(listaV[i]); h++; break; } } exist = true; } else if (grafito[origen].origen == listaV[i].d && grafito[destino].origen == listaV[i].o) { exist = true; string route = "SK1" + grafito[origen].origen + grafito[destino].origen; Vuelocs v = new Vuelocs(route, listaV[i].o, listaV[i].d, listaV[i].fecha, listaV[i].tiempo, listaV[i].costo); listaV.Add(v); for (int j = 0; j < grafito.Count; j++) { if (ind[j] != 100) { ind[j] = listaV.Count - 1; listaRecorrido.Add(v); h++; break; } } break; } } if (!exist) { int nodoActual = destino; while (nodoActual != origen) { int indice = 0; bool existioDerecho = false; for (int i = 0; i < listaV.Count; i++) { if (grafito[nodoActual].origen == listaV[i].o && grafito[listaDij[nodoActual + grafito.Count * 2]].origen == listaV[i].d) { for (int j = 0; j < grafito.Count; j++) { if (ind[j] == 100) { existioDerecho = true; ind[j] = i; listaRecorrido.Add(listaV[i]); h++; break; } } } else if (grafito[nodoActual].origen == listaV[i].d && grafito[listaDij[nodoActual + grafito.Count * 2]].origen == listaV[i].o && !existioDerecho) { existioDerecho = false; indice = i; } if (i == listaV.Count - 1 && !existioDerecho) { string route = "SK1" + grafito[nodoActual].origen + grafito[listaDij[nodoActual + grafito.Count * 2]].origen; Vuelocs vuelo = new Vuelocs(route, listaV[indice].d, listaV[indice].o, listaV[indice].fecha, listaV[indice].tiempo, listaV[indice].costo); listaV.Add(vuelo); for (int j = 0; j < grafito.Count; j++) { if (ind[j] == 100) { ind[j] = listaV.Count - 1; listaRecorrido.Add(vuelo); h++; break; } } break; } } nodoActual = listaDij[nodoActual + grafito.Count * 2]; } } this.Refresh(); Grafo graphDijs = new Grafo(); for (int i = 0; i < listaRecorrido.Count; i++) { for (int j = 0; j < grafito.Count; j++) { if (listaRecorrido[i].o == grafito[j].origen) { graphDijs.Add(grafito[j]); } if (listaRecorrido[i].d == grafito[j].origen) { graphDijs.Add(grafito[j]); } } } int x1 = 0, x2 = 0, y1 = 0, y2 = 0; for (int i = 0; i < listaRecorrido.Count; i++) { for (int j = 0; j < graphDijs.Count; j++) { if (listaRecorrido[i].o == graphDijs[j].origen) { x1 = graphDijs[j].x; y1 = graphDijs[j].y; } for (int y = 0; y < graphDijs[j].listaAristas.Count; y++) { if (listaRecorrido[i].d == graphDijs[j].listaAristas[y].destino) { x2 = graphDijs[j].listaAristas[y].x; y2 = graphDijs[j].listaAristas[y].y; } } } dikstra.CreateGraphics().DrawLine(arista, x1, y1, x2, y2); dikstra.CreateGraphics().DrawString(listaRecorrido[i].costo.ToString(), DefaultFont, colorLetras, (x1 + x2) / 2, (y1 + y2) / 2); } }
static void Main() { ListaVuelos listaVuelos = new ListaVuelos(); ListaCiudades listaCity = new ListaCiudades(); string[] arreglo = new string[3]; /*Vuelocs v1; * Vuelocs v2; * Vuelocs v3; * Vuelocs v4; * Vuelocs v5; * Vuelocs v6; * Vuelocs v7; * Vuelocs v8; * Vuelocs v9; * Vuelocs v10; * Vuelocs v11; * Vuelocs v12; * Vuelocs v13; * Vuelocs v14; * Vuelocs v15; * Vuelocs v16; * Vuelocs v17; * Vuelocs v18; * Vuelocs v19; * Vuelocs v20; * Vuelocs v21; * Vuelocs v22; * Vuelocs v23; * Vuelocs v24; * Vuelocs v25; * Vuelocs v26; * Vuelocs v27; * Vuelocs v28; * Vuelocs v29; * Vuelocs v30; * Vuelocs v31; * Vuelocs v32; * Vuelocs v33; * Vuelocs v34; * * * * v1 = new Vuelocs("SK1AB", 18, Convert.ToDateTime("12/12/2016 15:24:16 ")); * v2 = new Vuelocs("SK1AF", 18, Convert.ToDateTime("09/11/2016 12:30:20 ")); * v3 = new Vuelocs("SK1AG", 18, Convert.ToDateTime("1/10/2015 04:34:22 ")); * v4 = new Vuelocs("SK1BA", 18, Convert.ToDateTime("21/01/2008 08:28:28 ")); * v5 = new Vuelocs("SK1BC", 18, Convert.ToDateTime("28/04/2004 13:24:17 ")); * v6 = new Vuelocs("SK1BD", 18, Convert.ToDateTime("12/12/2005 18:48:18 ")); * v7 = new Vuelocs("SK1BD", 18, Convert.ToDateTime("11/09/2013 16:49:19 ")); * v8 = new Vuelocs("SKICD", 18, Convert.ToDateTime("21/12/2006 17:22:20 ")); * v9 = new Vuelocs("SK1CE", 18, Convert.ToDateTime("12/12/2007 19:36:21 ")); * v10 = new Vuelocs("SK1EC", 18, Convert.ToDateTime("31/12/1996 12:14:22 ")); * v11 = new Vuelocs("SK1EG", 18, Convert.ToDateTime("02/02/2015 23:48:23 ")); * v12 = new Vuelocs("SK1EL", 18, Convert.ToDateTime("17/12/1996 12:59:24 ")); * v13 = new Vuelocs("SK1ED", 18, Convert.ToDateTime("05/11/1991 11:00:25 ")); * v14 = new Vuelocs("SK1DE", 18, Convert.ToDateTime("01/05/1992 11:21:26 ")); * v15 = new Vuelocs("SK1DB", 18, Convert.ToDateTime("15/06/2003 13:27:27 ")); * v16 = new Vuelocs("SK1FB", 18, Convert.ToDateTime("02/12/2015 10:29:28 ")); * v17 = new Vuelocs("SK1FL", 18, Convert.ToDateTime("09/12/2008 09:41:29 ")); * v18 = new Vuelocs("SK1GA", 18, Convert.ToDateTime("11/04/1999 03:34:30 ")); * v19 = new Vuelocs("SK1GE", 18, Convert.ToDateTime("23/10/2000 04:24:31 ")); * v20 = new Vuelocs("SK1GL", 18, Convert.ToDateTime("22/02/2002 11:27:32 ")); * v21 = new Vuelocs("SK1GJ", 18, Convert.ToDateTime("13/07/2014 13:35:33 ")); * v22 = new Vuelocs("SK1GH", 18, Convert.ToDateTime("23/08/2012 14:24:34 ")); * v23 = new Vuelocs("SK1HG", 18, Convert.ToDateTime("13/05/2013 12:23:35 ")); * v24 = new Vuelocs("SK1HI", 18, Convert.ToDateTime("19/09/1995 12:12:36 ")); * v25 = new Vuelocs("SK1IH", 18, Convert.ToDateTime("05/03/1993 20:10:37 ")); * v26 = new Vuelocs("SK1IK", 18, Convert.ToDateTime("15/03/1998 22:16:38 ")); * v27 = new Vuelocs("SK1KI", 18, Convert.ToDateTime("21/11/1999 20:45:39 ")); * v28 = new Vuelocs("SK1KJ", 18, Convert.ToDateTime("11/09/2013 10:35:54 ")); * v29 = new Vuelocs("SK1JL", 18, Convert.ToDateTime("02/08/1993 15:30:18 ")); * v30 = new Vuelocs("SK1JM", 18, Convert.ToDateTime("21/09/2008 23:27:05 ")); * v31 = new Vuelocs("SK1LM", 18, Convert.ToDateTime("11/04/1997 21:09:15 ")); * v32 = new Vuelocs("SK1LK", 18, Convert.ToDateTime("16/11/2014 17:04:19 ")); * v33 = new Vuelocs("SK1LE", 18, Convert.ToDateTime("07/02/1991 18:02:10 ")); * v34 = new Vuelocs("SK1ML", 18, Convert.ToDateTime("23/02/1992 16:22:05 ")); * * listaVuelos.Add(v1); * listaVuelos.Add(v2); * listaVuelos.Add(v3); * listaVuelos.Add(v4); * listaVuelos.Add(v5); * listaVuelos.Add(v6); * listaVuelos.Add(v7); * listaVuelos.Add(v8); * listaVuelos.Add(v9); * listaVuelos.Add(v10); * listaVuelos.Add(v11); * listaVuelos.Add(v12); * listaVuelos.Add(v13); * listaVuelos.Add(v14); * listaVuelos.Add(v15); * listaVuelos.Add(v16); * listaVuelos.Add(v17); * listaVuelos.Add(v18); * listaVuelos.Add(v19); * listaVuelos.Add(v20); * listaVuelos.Add(v21); * listaVuelos.Add(v22); * listaVuelos.Add(v23); * listaVuelos.Add(v24); * listaVuelos.Add(v25); * listaVuelos.Add(v26); * listaVuelos.Add(v27); * listaVuelos.Add(v28); * listaVuelos.Add(v29); * listaVuelos.Add(v30); * listaVuelos.Add(v31); * listaVuelos.Add(v32); * listaVuelos.Add(v33); * listaVuelos.Add(v34);*/ if (File.Exists("Vuelos.txt")) { StreamReader reader = new StreamReader("Vuelos.txt"); string ruta; string origen; string destino; int asiento; DateTime fecha; int costo; int tiempo; string leer = reader.ReadLine(); bool[] asientosD = new bool[18]; string [] formato; int o; while (leer != null) { for (int i = 0; i < 18; i++) { asientosD[i] = true; } formato = leer.Split('|'); ruta = formato[0]; origen = formato[1]; destino = formato[2]; asiento = Int32.Parse(formato[3]); costo = Int32.Parse(formato[4]); tiempo = Int32.Parse(formato[5]); fecha = Convert.ToDateTime(formato[6]); o = 7; while (formato[o] != ".") { int jg = Int32.Parse(formato[o]); asientosD[jg] = false; o++; } Vuelocs vuelos = new Vuelocs(ruta, origen, destino, asiento, costo, tiempo, fecha, asientosD); listaVuelos.Add(vuelos); leer = reader.ReadLine(); } reader.Close(); } if (File.Exists("Pasajero.txt")) { StreamReader lectura = new StreamReader("Pasajero.txt"); string nombre, apellido, vuelo; string asiento, edad; string [] formatoo; string leer = lectura.ReadLine(); while (leer != null) { formatoo = leer.Split('|'); nombre = formatoo[0]; apellido = formatoo[1]; asiento = formatoo[2]; edad = formatoo[3]; vuelo = formatoo[4]; Pasajero pass = new Pasajero(nombre, apellido, edad, asiento, vuelo); for (int i = 0; i < listaVuelos.Count; i++) { if (vuelo == listaVuelos[i].ruta) { listaVuelos[i].setPasajero(pass); listaVuelos[i].asientos[Int32.Parse(asiento) - 1] = false; break; } } leer = lectura.ReadLine(); } lectura.Close(); } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); VentanaPrincipal ventanaPrincipal = new VentanaPrincipal(ref listaVuelos, listaCity, ref arreglo); ventanaPrincipal.ShowDialog(); //Application.Run(new Form1()); }