Esempio n. 1
0
        static void Main(string[] args)
        {
            //Vertice[] vert =
            //{
            //    "POA",
            //    "FLO",
            //    "BLU",
            //    "CUR",
            //    "LON",
            //    "SPO",
            //    "SJC",
            //    "RJO",
            //    "BHO",
            //    "CAM",
            //    "RBP",
            //    "BAU",
            //    "CPG",
            //    "CUI",
            //    "MAN",
            //    "BEL",
            //    "BSB",
            //    "NTL",
            //    "REC",
            //    "SLV"
            //};

            //ADICIONANDO VÉRTICES AO GRAFO
            grafo.AdicionaVertice(new Vertice("POA"));
            grafo.AdicionaVertice(new Vertice("FLO"));
            grafo.AdicionaVertice(new Vertice("BLU"));
            grafo.AdicionaVertice(new Vertice("CUR"));
            grafo.AdicionaVertice(new Vertice("LON"));
            grafo.AdicionaVertice(new Vertice("SPO"));
            grafo.AdicionaVertice(new Vertice("SJC"));
            grafo.AdicionaVertice(new Vertice("RJO"));
            grafo.AdicionaVertice(new Vertice("BHO"));
            grafo.AdicionaVertice(new Vertice("CAM"));
            grafo.AdicionaVertice(new Vertice("RBP"));
            grafo.AdicionaVertice(new Vertice("BAU"));
            grafo.AdicionaVertice(new Vertice("CPG"));
            grafo.AdicionaVertice(new Vertice("CUI"));
            grafo.AdicionaVertice(new Vertice("MAN"));
            grafo.AdicionaVertice(new Vertice("BEL"));
            grafo.AdicionaVertice(new Vertice("BSB"));
            grafo.AdicionaVertice(new Vertice("NTL"));
            grafo.AdicionaVertice(new Vertice("REC"));
            grafo.AdicionaVertice(new Vertice("SLV"));


            for (int i = 0; i < metrica_A.Length; i++)
            {
                metrica_A[i] = 1;
            }


            try
            {
                GeraTitlo();

                List <string> menu_options = new List <string>()
                {
                    "Calcular o caminho mínimo utilizando o Algoritmo de Dijkstra",
                    "Gerar Falha em um nó",
                    "Gerar Falha em uma aresta",
                    "Redefinir Grafo",
                    "Fechar a aplicação"
                };

                Console.CursorVisible = false;

                while (true)
                {
                    string opcao_selecionada = DrawMenu(menu_options);

                    if (opcao_selecionada == "Calcular o caminho mínimo utilizando o Algoritmo de Dijkstra")
                    {
                        CalculaCaminhoMinimo();
                        GeraTitlo();
                    }
                    if (opcao_selecionada == "Gerar Falha em um nó")
                    {
                        GeraFalhaVertice();
                        GeraTitlo();
                    }
                    if (opcao_selecionada == "Gerar Falha em uma aresta")
                    {
                        GeraFalhaAresta();
                        GeraTitlo();
                    }
                    if (opcao_selecionada == "Fechar a aplicação")
                    {
                        Environment.Exit(1);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
            }
        }