private void Form1_Load(object sender, EventArgs e) { cidades = new ArvoreBinaria <Cidade>(); // instancia a arvore dlgAbrir.Title = "Ler cidades de: "; // coloca um titulo no dialog LerDeArquivo(true); // chama o metodo de leitura de arquivo dlgAbrir.Title = "Ler caminhos de: "; // coloca outro titulo no mesmo dialog caminhos = new CaminhoEntreCidades[cidades.QuantosNos, cidades.QuantosNos]; //instancia a matriz com a quiantidade de elementos da arvore LerDeArquivo(false); //chama o metodo de leitura de arquivo calc = new CalculadoraDeRotas(cidades.QuantosNos, caminhos); //instancia a calculadora de rotas com os caminhos e a quantidade de elementos da arvore rotaSelecionada = new List <Cidade>(); // instancia a rota selecionada cidades.ExecutaEmTodos((Cidade c) => //chama o metodo da arvore que recebe uma funcao como parametro e excutara essa funcao em todos os nos da arvore { string mostrante = c.ToString(); // recebe o nome da cidade lsbOrigem.Items.Add(mostrante); // escrve no listBox de origem lsbDestino.Items.Add(mostrante); // escrve no listBox de destino }); // coloca os selecionados do ListBox em duas cidades diferentes lsbOrigem.SelectedIndex = 0; lsbDestino.SelectedIndex = 1; }
public Form1() { InitializeComponent(); if (openCidades.ShowDialog() == DialogResult.OK) { arvore = new ArvoreBinaria(openCidades.FileName); } }
public Form1() { InitializeComponent(); MessageBox.Show("Selecione o arquivo texto com as cidades de marte"); if (openCidades.ShowDialog() == DialogResult.OK) { arvore = new ArvoreBinaria(openCidades.FileName); } MessageBox.Show("Selecione o arquivo texto com os caminhos entre as cidades de marte"); if (openCaminhos.ShowDialog() == DialogResult.OK) { grafo = new Grafo(openCaminhos.FileName, arvore.Quantos); } }
private void Form1_Load(object sender, EventArgs e) { //Abertura do primeiro arquivo --> CidadesMarte.txt var arq = new StreamReader("CidadesMarte.txt"); arvore = new ArvoreBinaria <Cidade>(); string linha = null; while (!arq.EndOfStream) { linha = arq.ReadLine(); arvore.Incluir(new Cidade(linha)); qtdCidades++; } arq.Close(); //Abertura do segundo arquivo --> CaminhosEntreCidadesMarte.txt var arq2 = new StreamReader("CaminhosEntreCidadesMarte.txt"); matriz = new Caminho[qtdCidades, qtdCidades]; string linha2 = null; while (!arq2.EndOfStream) { linha2 = arq2.ReadLine(); matriz[int.Parse(linha2.Substring(0, 3)), int.Parse(linha2.Substring(3, 3))] = new Caminho(linha2); } arq2.Close(); //Abertura do terceiro arquivo --> CidadesMarteOrdenado.txt var arq3 = new StreamReader("CidadesMarteOrdenado.txt"); lsbOrigem.Items.Clear(); lsbDestino.Items.Clear(); string linha3 = null; while (!arq3.EndOfStream) { linha3 = arq3.ReadLine(); lsbOrigem.Items.Add(linha3.Substring(0, 3) + " - " + linha3.Substring(3, 15)); lsbDestino.Items.Add(linha3.Substring(0, 3) + " - " + linha3.Substring(3, 15)); } arq3.Close(); }
// Método que lê de um arquivo texto e constroe uma árvore a partir dele private void ConstruirArvore(string nomeArquivo) { if (nomeArquivo == null || nomeArquivo.Equals("")) { throw new Exception("Nome de arquivo invalido"); } var arquivo = new StreamReader(nomeArquivo); arvoreBinaria = new ArvoreBinaria <CidadeMarte>(); while (!arquivo.EndOfStream) { string linha = arquivo.ReadLine(); int id = int.Parse(linha.Substring(0, 3)); string nomeCidade = linha.Substring(3, 15); int x = int.Parse(linha.Substring(18, 5)); int y = int.Parse(linha.Substring(23, 5)); var cidadeMarte = new CidadeMarte(id, nomeCidade, x, y); arvoreBinaria.InserirInfo(cidadeMarte); } arquivo.Close(); }