/* * Metodo criar um grafo */ static void criarGrafo(bool dirigido, string[] Arquivo, ref Grafo_nao_dirigido grafo, ref Grafo_dirigido digrafo) { arquivo = new Arquivo(Arq); Arquivo = arquivo.LeituraAquivo(); dirigido = IsDirecionado(Arquivo[1]); if (dirigido) { digrafo = new Grafo_dirigido(Arquivo); } else { grafo = new Grafo_nao_dirigido(Arquivo); } }
/* * Método principal(main) do programa */ static void Main(string[] args) { int Menu; string resposta; Grafo_nao_dirigido grafo = null; Grafo_dirigido digrafo = null; Vertice v1, v2; string[] Arquivo; Console.WriteLine("\nArquivos disponiveis para leitura: Grafo_dirigido ou Grafo_nao_dirigido"); Console.WriteLine("\nInforme o nome do arquivo: "); Arq = Console.ReadLine(); arquivo = new Arquivo(Arq); Arquivo = arquivo.LeituraAquivo(); dirigido = IsDirecionado(Arquivo[1]); criarGrafo(dirigido, Arquivo, ref grafo, ref digrafo); if (dirigido) { string vertice; int grauVertice; do { Console.Clear(); Console.WriteLine("Escolha uma opção:\n"); menu(dirigido); Console.WriteLine(); Menu = int.Parse(Console.ReadLine()); Console.WriteLine(); switch (Menu) { case 1: PrintGrafo(digrafo); break; case 2: Console.WriteLine("Informe o nome do vértice:"); vertice = Console.ReadLine(); v1 = new Vertice(vertice); grauVertice = digrafo.get_GrauEntrada(v1); resposta = (grauVertice == -1) ? "Vértice Inexistente" : "O grau de entrada do vértice é " + grauVertice + "."; Resposta(resposta); break; case 3: Console.WriteLine("Informe o nome do vértice:"); vertice = Console.ReadLine(); v1 = new Vertice(vertice); grauVertice = digrafo.get_GrauSaida(v1); resposta = (grauVertice == -1) ? "Vértice Inexistente" : "O grau de saída do vértice é " + grauVertice + "."; Resposta(resposta); break; default: if (Menu != 0) { Console.WriteLine("\nA Opção escolhida é inválida. Pressione qualquer tecla."); } break; } if (Menu != 0) { Console.WriteLine("\nPressione qualquer tecla para voltar ao menu principal."); Console.ReadKey(); } } while (Menu != 0); } else { string vertice; do { Console.Clear(); Console.WriteLine("Escolha uma opção:\n"); menu(dirigido); Console.WriteLine(); Menu = int.Parse(Console.ReadLine()); Console.WriteLine(); switch (Menu) { case 1: PrintGrafo(grafo); break; case 2: string nomeVert1, nomeVert2; Console.WriteLine("Informe o nome do vértice 1:"); nomeVert1 = Console.ReadLine(); Console.WriteLine("\nInforme o nome do vértice 2:"); nomeVert2 = Console.ReadLine(); v1 = new Vertice(nomeVert1); v2 = new Vertice(nomeVert2); resposta = (grafo.IsAdjacente(v1, v2)) ? "Os vértices são adjacentes!" : "Os vértices não são adjacentes."; Resposta(resposta); break; case 3: int grauVertice; Console.WriteLine("Informe o nome do vértice:"); vertice = Console.ReadLine(); v1 = new Vertice(vertice); grauVertice = grafo.GetGrau(v1); resposta = (grauVertice == -1) ? "Vértice Inexistente" : "O grau do vértice é " + grauVertice + "."; Resposta(resposta); break; case 4: Console.WriteLine("Informe o nome do vértice:"); vertice = Console.ReadLine(); v1 = new Vertice(vertice); resposta = (grafo.IsPendente(v1)) ? "O vértice é pendente!" : "O vértice não é pendente."; Resposta(resposta); break; case 5: resposta = (grafo.IsRegular()) ? "O grafo é regular!" : "O grafo não é regular."; Resposta(resposta); break; case 6: resposta = (grafo.IsNulo()) ? "O grafo é nulo!" : "O grafo não é nulo."; Resposta(resposta); break; case 7: resposta = (grafo.IsCompleto()) ? "O grafo é completo!" : "O grafo não é completo."; Resposta(resposta); break; case 8: resposta = (grafo.IsUnicursal()) ? "O grafo é Unicursal!" : "O grafo não é Unicursal."; Resposta(resposta); break; case 9: resposta = (grafo.IsEuleriano()) ? "O grafo é Euleriano!" : "O grafo não é Euleriano."; Resposta(resposta); break; case 10: resposta = (grafo.IsConexo()) ? "O grafo é conexo!" : "O grafo não é conexo."; Resposta(resposta); break; default: if (Menu != 0) { Console.WriteLine("\nA opção escolhida é inválida. Pressione qualquer tecla e tente novamente."); Console.ResetColor(); } break; } if (Menu != 0) { Console.WriteLine("\nPressione qualquer tecla para voltar ao menu principal."); Console.ReadKey(); } } while (Menu != 0); } }