static void Main(string[] args) { string linha; string nomeDaDiciplina; bool continua = true; Arvore arvoreAlunos = new Arvore(); Console.WriteLine("ÁRVORE BINÁRIA DE PESQUISA"); OpenFileDialog dialogo = new OpenFileDialog(); do { Console.WriteLine("\n Digite a tecla de entrada"); Console.WriteLine("--------------------------------------------------------------"); Console.WriteLine("| Tecla | COMANDO "); Console.WriteLine("--------------------------------------------------------------"); Console.WriteLine("| 1 |Informar arquivo"); Console.WriteLine("--------------------------------------------------------------"); Console.WriteLine("| 2 |Imprimir disciplinas em ordem crescente"); Console.WriteLine("--------------------------------------------------------------"); Console.WriteLine("| 3 |Imprimir disciplinas em pré - ordem"); Console.WriteLine("--------------------------------------------------------------"); Console.WriteLine("| 4 |Imprimir disciplinas em pós - ordem"); Console.WriteLine("--------------------------------------------------------------"); Console.WriteLine("| 5 |Listar Turma"); Console.WriteLine("--------------------------------------------------------------"); Console.WriteLine("| 6 |Sair"); Console.WriteLine("--------------------------------------------------------------"); ConsoleKeyInfo tecla; tecla = Console.ReadKey(); switch (tecla.Key) { case ConsoleKey.D1: Console.Clear(); dialogo.Title = "Abrir arquivo..."; dialogo.Filter = "Arquivos texto|*.txt"; dialogo.InitialDirectory = @"c:\"; string[] vetorlinha; if (dialogo.ShowDialog() == DialogResult.OK) { System.IO.StreamReader arquivo = new System.IO.StreamReader(dialogo.FileName.ToString()); while ((linha = arquivo.ReadLine()) != null) { //Console.WriteLine(linha); vetorlinha = linha.Split(';'); NoArvore temp, temp2; for (int i = 2; i < vetorlinha.Length; i++) { temp = arvoreAlunos.pesquisar(vetorlinha[i].ToUpper(), arvoreAlunos.raiz); if (temp == null) { arvoreAlunos.inserir(vetorlinha[i].ToUpper()); temp2 = arvoreAlunos.pesquisar(vetorlinha[i].ToUpper(), arvoreAlunos.raiz); temp2.Alunos = new List <DadosPessoas>(); temp2.Alunos.Add(new DadosPessoas(vetorlinha[1], vetorlinha[0])); } else { temp.Alunos.Add(new DadosPessoas(vetorlinha[1], vetorlinha[0])); } } } arquivo.Close(); } Console.ReadKey(); break; case ConsoleKey.D2: Console.Clear(); if (arvoreAlunos.raiz == null) { Console.WriteLine("Informe um arquivo antes da impressão"); break; } arvoreAlunos.emOrdem(arvoreAlunos.raiz); break; case ConsoleKey.D3: Console.Clear(); if (arvoreAlunos.raiz == null) { Console.WriteLine("Informe um arquivo antes da impressão"); break; } arvoreAlunos.preOrdem(arvoreAlunos.raiz); break; case ConsoleKey.D4: Console.Clear(); if (arvoreAlunos.raiz == null) { Console.WriteLine("Informe um arquivo antes da impressão"); break; } arvoreAlunos.posOrdem(arvoreAlunos.raiz); break; case ConsoleKey.D5: Console.Clear(); if (arvoreAlunos.raiz == null) { Console.WriteLine("Não há turmas registradas"); break; } NoArvore aux; Console.WriteLine("Informe o nome da diciplina"); nomeDaDiciplina = Console.ReadLine().ToUpper(); aux = arvoreAlunos.pesquisar(nomeDaDiciplina, arvoreAlunos.raiz); if (aux == null) { Console.WriteLine("Essa diciplina não existe. Refaça a operação com uma diciplina válida"); } else { aux.Alunos.Sort((pessoa1, pessoa2) => pessoa1.matricula.CompareTo(pessoa2.matricula)); foreach (DadosPessoas elemento in aux.Alunos) { Console.WriteLine(elemento.matricula + "-" + elemento.nomePessoa); } } break; case ConsoleKey.D6: continua = false; break; default: Console.WriteLine("Informe uma tecla válida"); break; } } while (continua); }
static void Main(string[] args) { bool active = true; string line; Arvore arvore = new Arvore(); OpenFileDialog theDialog = new OpenFileDialog(); theDialog.Title = "Open Text File"; theDialog.Filter = "TXT files|*.txt"; theDialog.InitialDirectory = Directory.GetCurrentDirectory(); while (active) { Console.Clear(); Console.WriteLine("\n\n1 - Informar arquivo" + "\n2 - Imprimir disciplinas em ordem crescente" + "\n3 - Imprimir disciplinas em 'pré-ordem'" + "\n4 - Imprimir disciplinas em 'pós - ordem'" + "\n5 - Listar Turma" + "\n6 - Sair"); Console.Write("Digite a tecla correspondente a opção desejada: "); switch (Console.ReadKey().Key) { case ConsoleKey.NumPad1: case ConsoleKey.D1: if (theDialog.ShowDialog() == DialogResult.OK) { string[] materias = null; List <Aluno> alunos = new List <Aluno>(); StreamReader file = new StreamReader(theDialog.FileName.ToString()); while ((line = file.ReadLine()) != null) { string[] linhas = line.Split(';'); // Divide conteúda das linhas Aluno aluno = new Aluno(); aluno.matricula = linhas[0]; aluno.nome = linhas[1]; var lista = linhas.ToList <string>(); lista.RemoveRange(0, 2); materias = lista.ToArray(); materias = OrdernaMaterias(materias); aluno.disciplinas = materias; } materias = OrdernaMaterias(materias); arvore.inserir(materias[0]); for (int i = 0; i < materias.Length; i++) { arvore.inserir(materias[i]); arvore.raiz.alunos = alunos; foreach (Aluno aluno in alunos) { foreach (string disciplina in aluno.disciplinas) { if (disciplina == materias[i]) { arvore.raiz.alunos.Add(aluno); } } } } } Console.ReadKey(); break; case ConsoleKey.NumPad5: case ConsoleKey.D5: foreach (Aluno aluno in arvore.raiz.alunos) { Console.WriteLine(aluno.nome); } Console.ReadKey(); break; default: Console.WriteLine("fafa"); break; } } Console.ReadLine(); }