private void button_accept_Click(object sender, EventArgs e) { string datestring = dateTimePicker1.Value.ToShortDateString() +' '+ dateTimePicker2.Value.ToShortTimeString(); DateTime date=DateTime.Parse(datestring); string rutadata = textBox1.Text.ToUpper(); string od; if (rutadata.Length == 5) { od = rutadata.Substring(rutadata.Length - 2); if (isValidOD(od)) { if (CiudadExiste(od[0])==-1){ MessageBox.Show("Haga click en la imagen para seleccionar la ubicacion de la ciudad origen", "Ayuda", MessageBoxButtons.OK, MessageBoxIcon.Question); GrafoVisual selecCity = new GrafoVisual(ref listaciudades,od[0].ToString()); selecCity.ShowDialog(); } int indexO = CiudadExiste(od[0]); if (CiudadExiste(od[1])==-1) { MessageBox.Show("Haga click en la imagen para seleccionar la ubicacion de la ciudad destino", "Ayuda", MessageBoxButtons.OK, MessageBoxIcon.Question); GrafoVisual selecCity = new GrafoVisual(ref listaciudades,od[1].ToString()); selecCity.ShowDialog(); AristaCiudad arista = new AristaCiudad(listaciudades[listaciudades.Count - 1].X, listaciudades[listaciudades.Count - 1].Y, od[0].ToString(), od[1].ToString(), int.Parse(numericUpDown2.Value.ToString()), int.Parse(numericUpDown1.Value.ToString())); listaciudades[indexO].Aristas.Add(arista); } else { int ExisteCiudad = CiudadExiste(od[1]); AristaCiudad arista = new AristaCiudad(listaciudades[ExisteCiudad].X, listaciudades[ExisteCiudad].Y, od[0].ToString(), od[1].ToString(), int.Parse(numericUpDown2.Value.ToString()), int.Parse(numericUpDown1.Value.ToString())); listaciudades[indexO].Aristas.Add(arista); } Vuelo vuelo = new Vuelo(30, od, rutadata, int.Parse(numericUpDown2.Value.ToString()), int.Parse(numericUpDown1.Value.ToString()), date); listavuelos.Add(vuelo); this.Close(); } else { MessageBox.Show("LA RUTA YA EXISTE", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("EL FORMATO ES INVALIDO", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
// // PRIM-----ARM MENOR COSTO List <AristaCiudad> prim() { List <AristaCiudad> Arm = new List <AristaCiudad>(); List <CiudadNodo> Nododisp = new List <CiudadNodo>(); List <AristaCiudad> aristasposibles = new List <AristaCiudad>(); List <CiudadNodo> nodosTemp = new List <CiudadNodo>(listaciudades); ///Temporal Fix List <AristaCiudad> aristas = new List <AristaCiudad>(); foreach (CiudadNodo c in listaciudades) { foreach (AristaCiudad a in c.Aristas) { aristas.Add(a); } } /// //Revisar a partir de Nododisp //Haciendolo no dirigido foreach (CiudadNodo c in nodosTemp) { int x = c.Aristas.Count; for (int y = 0; y < x; y++) { AristaCiudad a = c.Aristas[y]; AristaCiudad atemp = new AristaCiudad(a.X, a.Y, a.getDest(), a.getOrigen(), a.getCosto(), a.getTiempo()); foreach (CiudadNodo c1 in nodosTemp) { if (atemp.getOrigen() == c1.getName()) { c1.Aristas.Add(atemp); } } } } // //Empiezo con el primer nodo Nododisp.Add(nodosTemp[0]); string compConexos = Nododisp[0].getName().ToString(); // int nArista = 0; while (nArista < listaciudades.Count - 1) { foreach (CiudadNodo c in Nododisp) { foreach (AristaCiudad a in c.Aristas) { if (!compConexos.Contains(a.getDest())) { aristasposibles.Add(a); } } //for aristas } //for ciudades // Console.WriteLine(aristasposibles[0].getDest().ToString() + aristasposibles[0].getCosto().ToString()); //*******En caso de ser no conexo if (aristasposibles.Count == 0) { if (compConexos.Length < listaciudades.Count) { foreach (CiudadNodo c in listaciudades) { if (!compConexos.Contains(c.getName())) { Nododisp.Add(c); break; } } //fin foreach para buscar nuevo nodo foreach (CiudadNodo c in Nododisp) { foreach (AristaCiudad a in c.Aristas) { if (!compConexos.Contains(a.getDest())) { aristasposibles.Add(a); } } //for aristas } //for ciudades } else { foreach (CiudadNodo c in nodosTemp) { c.Aristas.Clear(); } foreach (AristaCiudad a in aristas) { foreach (CiudadNodo c in listaciudades) { if (a.getOrigen() == c.getName()) { c.Aristas.Add(a); } } } return(Arm); }//fin else } // if (checkBoxCosto.Checked == true) { aristasposibles.Sort((x, y) => x.getCosto().CompareTo(y.getCosto())); } else { aristasposibles.Sort((x, y) => x.getTiempo().CompareTo(y.getTiempo())); } compConexos = compConexos + aristasposibles[0].getDest().ToString(); foreach (CiudadNodo c in listaciudades) { if (aristasposibles[0].getDest() == c.getName()) { Nododisp.Add(c); } } nArista++; Arm.Add(aristasposibles[0]); aristasposibles.Clear(); } Nododisp.Clear(); //nodosTemp.Clear(); //Rehaciendo Dirigido foreach (CiudadNodo c in nodosTemp) { c.Aristas.Clear(); } foreach (AristaCiudad a in aristas) { foreach (CiudadNodo c in listaciudades) { if (a.getOrigen() == c.getName()) { c.Aristas.Add(a); } } } //fin de rehaciendo dirigido return(Arm); }
private void button_accept_Click(object sender, EventArgs e) { string datestring = dateTimePicker1.Value.ToShortDateString() + ' ' + dateTimePicker2.Value.ToShortTimeString(); DateTime date = DateTime.Parse(datestring); string rutadata = textBox1.Text.ToUpper(); string od; if (rutadata.Length == 5) { od = rutadata.Substring(rutadata.Length - 2); if (isValidOD(od)) { if (CiudadExiste(od[0]) == -1) { MessageBox.Show("Haga click en la imagen para seleccionar la ubicacion de la ciudad origen", "Ayuda", MessageBoxButtons.OK, MessageBoxIcon.Question); GrafoVisual selecCity = new GrafoVisual(ref listaciudades, od[0].ToString()); selecCity.ShowDialog(); } int indexO = CiudadExiste(od[0]); if (CiudadExiste(od[1]) == -1) { MessageBox.Show("Haga click en la imagen para seleccionar la ubicacion de la ciudad destino", "Ayuda", MessageBoxButtons.OK, MessageBoxIcon.Question); GrafoVisual selecCity = new GrafoVisual(ref listaciudades, od[1].ToString()); selecCity.ShowDialog(); AristaCiudad arista = new AristaCiudad(listaciudades[listaciudades.Count - 1].X, listaciudades[listaciudades.Count - 1].Y, od[0].ToString(), od[1].ToString(), int.Parse(numericUpDown2.Value.ToString()), int.Parse(numericUpDown1.Value.ToString())); listaciudades[indexO].Aristas.Add(arista); } else { int ExisteCiudad = CiudadExiste(od[1]); AristaCiudad arista = new AristaCiudad(listaciudades[ExisteCiudad].X, listaciudades[ExisteCiudad].Y, od[0].ToString(), od[1].ToString(), int.Parse(numericUpDown2.Value.ToString()), int.Parse(numericUpDown1.Value.ToString())); listaciudades[indexO].Aristas.Add(arista); } Vuelo vuelo = new Vuelo(30, od, rutadata, int.Parse(numericUpDown2.Value.ToString()), int.Parse(numericUpDown1.Value.ToString()), date); listavuelos.Add(vuelo); this.Close(); } else { MessageBox.Show("LA RUTA YA EXISTE", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("EL FORMATO ES INVALIDO", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new Principal()); ListaVuelos listaVuelos = new ListaVuelos(); ListaCiudades listaciudades = new ListaCiudades(); try { // Open the text file using a stream reader. using (StreamReader sr = new StreamReader("infoVuelos.txt")) { // Read the stream to a string, and write the string to the console. while (!sr.EndOfStream) { String line = sr.ReadLine(); string[] datavuelo = line.Split('|'); Console.WriteLine(datavuelo[5]); DateTime date = DateTime.Parse(datavuelo[5]); Vuelo vuelo = new Vuelo(int.Parse(datavuelo[0]),datavuelo[1], datavuelo[2], int.Parse(datavuelo[4]), int.Parse(datavuelo[3]),date); listaVuelos.Add(vuelo); } } } catch (Exception e) { Console.WriteLine("The file Info vueloes could not be read:"); Console.WriteLine(e.Message); return; } //Leyendo usuarios try { using (StreamReader ifile = new StreamReader("usuarios.txt")) { while(!ifile.EndOfStream) { string uline = ifile.ReadLine(); string[] du = uline.Split('|'); int indexV = int.Parse(du[0]); //indice es igual a al primer campo de du Usuario user = new Usuario(du[1], du[2], du[4], int.Parse(du[3])); listaVuelos[indexV].userlist.Add(user); listaVuelos[indexV].setAsientoTomado(int.Parse(du[3])); } } } catch(Exception e) { Console.WriteLine("The file could not be read:"); Console.WriteLine(e.Message); } //Leyendo Ciudades try { using (StreamReader ifile = new StreamReader("Ciudades.txt")) { while (!ifile.EndOfStream) { string cline = ifile.ReadLine(); string[] cu = cline.Split('|'); List<AristaCiudad> aristas = new List<AristaCiudad>(); CiudadNodo city = new CiudadNodo(float.Parse(cu[0]), float.Parse(cu[1]), cu[2],aristas); listaciudades.Add(city); } } } catch (Exception e) { Console.WriteLine("The file could not be read:"); Console.WriteLine(e.Message); } //Leyendo Aristas try { using (StreamReader ifile = new StreamReader("Aristas.txt")) { while (!ifile.EndOfStream) { string aline = ifile.ReadLine(); string[] au = aline.Split('|'); AristaCiudad arista = new AristaCiudad(float.Parse(au[1]), float.Parse(au[2]),au[0], au[3], int.Parse(au[4]),int.Parse(au[5])); int ind = listaciudades.getcityIndex(au[0]); listaciudades[ind].Aristas.Add(arista); } } } catch (Exception e) { Console.WriteLine("The file could not be read:"); Console.WriteLine(e.Message); } Principal ventanaPrincipal = new Principal(ref listaVuelos,ref listaciudades); ventanaPrincipal.ShowDialog(); //codigo para escribir //string lines = "First line.\r\nSecond line.\r\nThird line."; StreamWriter file = new StreamWriter("infoVuelos.txt"); StreamWriter file2 = new StreamWriter("usuarios.txt"); int vindex=0; foreach (Vuelo v in listaVuelos) { file.WriteLine(v.ToString('|')); foreach(Usuario u in v.userlist) { file2.WriteLine(vindex.ToString()+'|'+u.ToString()); } vindex++; } file.Close(); file2.Close(); StreamWriter filecity = new StreamWriter("Ciudades.txt"); StreamWriter fileari = new StreamWriter("Aristas.txt"); foreach(CiudadNodo c in listaciudades) { filecity.WriteLine(c.X.ToString() + '|' + c.Y.ToString() + '|' + c.getName()); foreach (AristaCiudad a in c.Aristas) { fileari.WriteLine(c.getName() + '|' + a.ToString()); } } filecity.Close(); fileari.Close(); Console.WriteLine("fin del programa"); }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new Principal()); ListaVuelos listaVuelos = new ListaVuelos(); ListaCiudades listaciudades = new ListaCiudades(); try { // Open the text file using a stream reader. using (StreamReader sr = new StreamReader("infoVuelos.txt")) { // Read the stream to a string, and write the string to the console. while (!sr.EndOfStream) { String line = sr.ReadLine(); string[] datavuelo = line.Split('|'); Console.WriteLine(datavuelo[5]); DateTime date = DateTime.Parse(datavuelo[5]); Vuelo vuelo = new Vuelo(int.Parse(datavuelo[0]), datavuelo[1], datavuelo[2], int.Parse(datavuelo[4]), int.Parse(datavuelo[3]), date); listaVuelos.Add(vuelo); } } } catch (Exception e) { Console.WriteLine("The file Info vueloes could not be read:"); Console.WriteLine(e.Message); return; } //Leyendo usuarios try { using (StreamReader ifile = new StreamReader("usuarios.txt")) { while (!ifile.EndOfStream) { string uline = ifile.ReadLine(); string[] du = uline.Split('|'); int indexV = int.Parse(du[0]); //indice es igual a al primer campo de du Usuario user = new Usuario(du[1], du[2], du[4], int.Parse(du[3])); listaVuelos[indexV].userlist.Add(user); listaVuelos[indexV].setAsientoTomado(int.Parse(du[3])); } } } catch (Exception e) { Console.WriteLine("The file could not be read:"); Console.WriteLine(e.Message); } //Leyendo Ciudades try { using (StreamReader ifile = new StreamReader("Ciudades.txt")) { while (!ifile.EndOfStream) { string cline = ifile.ReadLine(); string[] cu = cline.Split('|'); List <AristaCiudad> aristas = new List <AristaCiudad>(); CiudadNodo city = new CiudadNodo(float.Parse(cu[0]), float.Parse(cu[1]), cu[2], aristas); listaciudades.Add(city); } } } catch (Exception e) { Console.WriteLine("The file could not be read:"); Console.WriteLine(e.Message); } //Leyendo Aristas try { using (StreamReader ifile = new StreamReader("Aristas.txt")) { while (!ifile.EndOfStream) { string aline = ifile.ReadLine(); string[] au = aline.Split('|'); AristaCiudad arista = new AristaCiudad(float.Parse(au[1]), float.Parse(au[2]), au[0], au[3], int.Parse(au[4]), int.Parse(au[5])); int ind = listaciudades.getcityIndex(au[0]); listaciudades[ind].Aristas.Add(arista); } } } catch (Exception e) { Console.WriteLine("The file could not be read:"); Console.WriteLine(e.Message); } Principal ventanaPrincipal = new Principal(ref listaVuelos, ref listaciudades); ventanaPrincipal.ShowDialog(); //codigo para escribir //string lines = "First line.\r\nSecond line.\r\nThird line."; StreamWriter file = new StreamWriter("infoVuelos.txt"); StreamWriter file2 = new StreamWriter("usuarios.txt"); int vindex = 0; foreach (Vuelo v in listaVuelos) { file.WriteLine(v.ToString('|')); foreach (Usuario u in v.userlist) { file2.WriteLine(vindex.ToString() + '|' + u.ToString()); } vindex++; } file.Close(); file2.Close(); StreamWriter filecity = new StreamWriter("Ciudades.txt"); StreamWriter fileari = new StreamWriter("Aristas.txt"); foreach (CiudadNodo c in listaciudades) { filecity.WriteLine(c.X.ToString() + '|' + c.Y.ToString() + '|' + c.getName()); foreach (AristaCiudad a in c.Aristas) { fileari.WriteLine(c.getName() + '|' + a.ToString()); } } filecity.Close(); fileari.Close(); Console.WriteLine("fin del programa"); }
// // PRIM-----ARM MENOR COSTO List<AristaCiudad> prim() { List<AristaCiudad> Arm=new List<AristaCiudad>(); List<CiudadNodo> Nododisp = new List<CiudadNodo>(); List<AristaCiudad> aristasposibles = new List<AristaCiudad>(); List<CiudadNodo> nodosTemp = new List<CiudadNodo>(listaciudades); ///Temporal Fix List<AristaCiudad> aristas = new List<AristaCiudad>(); foreach (CiudadNodo c in listaciudades) { foreach (AristaCiudad a in c.Aristas) { aristas.Add(a); } } /// //Revisar a partir de Nododisp //Haciendolo no dirigido foreach (CiudadNodo c in nodosTemp) { int x = c.Aristas.Count; for (int y = 0; y < x; y++) { AristaCiudad a = c.Aristas[y]; AristaCiudad atemp = new AristaCiudad(a.X, a.Y, a.getDest(), a.getOrigen(), a.getCosto(), a.getTiempo()); foreach(CiudadNodo c1 in nodosTemp) {if (atemp.getOrigen() == c1.getName()) { c1.Aristas.Add(atemp); } } } } // //Empiezo con el primer nodo Nododisp.Add(nodosTemp[0]); string compConexos = Nododisp[0].getName().ToString(); // int nArista = 0; while (nArista < listaciudades.Count - 1) { foreach(CiudadNodo c in Nododisp) { foreach(AristaCiudad a in c.Aristas) { if (!compConexos.Contains(a.getDest())) { aristasposibles.Add(a); } }//for aristas }//for ciudades // Console.WriteLine(aristasposibles[0].getDest().ToString() + aristasposibles[0].getCosto().ToString()); //*******En caso de ser no conexo if (aristasposibles.Count == 0) { if (compConexos.Length < listaciudades.Count) { foreach (CiudadNodo c in listaciudades) { if (!compConexos.Contains(c.getName())) { Nododisp.Add(c);break; } }//fin foreach para buscar nuevo nodo foreach (CiudadNodo c in Nododisp) { foreach (AristaCiudad a in c.Aristas) { if (!compConexos.Contains(a.getDest())) { aristasposibles.Add(a); } }//for aristas }//for ciudades } else { foreach (CiudadNodo c in nodosTemp) { c.Aristas.Clear(); } foreach (AristaCiudad a in aristas) { foreach (CiudadNodo c in listaciudades) { if (a.getOrigen() == c.getName()) { c.Aristas.Add(a); } } } return Arm; }//fin else } // if (checkBoxCosto.Checked == true) { aristasposibles.Sort((x, y) => x.getCosto().CompareTo(y.getCosto())); } else { aristasposibles.Sort((x, y) => x.getTiempo().CompareTo(y.getTiempo())); } compConexos = compConexos + aristasposibles[0].getDest().ToString(); foreach (CiudadNodo c in listaciudades) { if (aristasposibles[0].getDest() == c.getName()) { Nododisp.Add(c); } } nArista++; Arm.Add(aristasposibles[0]); aristasposibles.Clear(); } Nododisp.Clear(); //nodosTemp.Clear(); //Rehaciendo Dirigido foreach(CiudadNodo c in nodosTemp){c.Aristas.Clear();} foreach(AristaCiudad a in aristas) {foreach(CiudadNodo c in listaciudades) { if (a.getOrigen() == c.getName()) { c.Aristas.Add(a); } } } //fin de rehaciendo dirigido return Arm; }