Exemplo n.º 1
0
        /*
         *
         * Métodos de pesquisa e controle dos elementos visuais
         *
         */

        /// <summary>
        /// Pesquisa (na árvore que está no disco) o que está na caixa de pesquisa.
        /// </summary>
        private void pesquisar()  //pesquisa o que está escrito na caixa de pesquisa
        {
            /* obtem o nome da cidade a ser pesquisada */
            string localidade  = textPesquisar.Text;
            string nome_cidade = localidade;

            if (localidade.Contains(" -"))
            {
                nome_cidade = localidade.Substring(0, localidade.IndexOf(" -")); //pega apenas o nome da cidade
            }

            bool encontrou_cidade = false;

            List <DadosOcorrencia> resultados = Controlador.pesquisaCidade(nome_cidade);

            //limpa o textbox que tem os dados da ocorrencia
            limparDadosOcorrencia();

            if (resultados.Count > 0) //retornou mais que 1 cidade
            {
                encontrou_cidade = true;
                resultados       = OrdenaDados.insertionSort_localidade(resultados, true);// INSERTION SORT ??

                //formata o nome para CIDADE - ESTADO
                string cidade_selecionada = resultados[0].ocorrencia.localidade + " - " +
                                            resultados[0].ocorrencia.uf;

                //busca no mapa
                gmapControl.SetPositionByKeywords(cidade_selecionada);

                textPesquisar.Text = cidade_selecionada;
            }
            else  // == 0
            {
                //filtro para mostrar todas
                localidade = "";

                //busca todas
                resultados = Controlador.pesquisaCidade(localidade);
                resultados = OrdenaDados.insertionSort_localidade(resultados, true); // INSERTION SORT ??
            }

            /* cria uma lista de cidades sem repetição, e adiciona as ocorrências de cada cidade na devida cidade */
            List <Cidade> lista_cidades = new List <Cidade>();

            foreach (DadosOcorrencia dados_ocorrencia in resultados)
            {
                bool existe_na_lista = false;
                for (int i = 0; i < lista_cidades.Count; i++)
                {
                    if (lista_cidades.ElementAt(i).localidade == dados_ocorrencia.ocorrencia.localidade)
                    {
                        if (lista_cidades.ElementAt(i).uf == dados_ocorrencia.ocorrencia.uf)
                        {
                            existe_na_lista = true;
                            lista_cidades.ElementAt(i).lista_ocorrencias.Add(dados_ocorrencia);
                            break;
                        } //if
                    }     //if
                }         //for
                if (!existe_na_lista)
                {
                    lista_cidades.Add(new Cidade(dados_ocorrencia.ocorrencia.localidade, dados_ocorrencia.ocorrencia.uf, dados_ocorrencia));
                } //if
            }     //foreach

            /* preenche combobox de cidades, e ordena (ordem crescente) a lista de ocorrencias de cada cidade */
            List <string> lista_cidades_combobox = new List <string>();

            foreach (Cidade cidade in lista_cidades)
            {
                lista_cidades_combobox.Add(cidade.localidade + " - " + cidade.uf);
                cidade.lista_ocorrencias = OrdenaDados.insertionSort_codigo_ocorrencia(cidade.lista_ocorrencias, true); // INSERTION SORT ??
            } //foreach

            //preenche os dados no textbox
            preencherDadosOcorrencia(lista_cidades[0].lista_ocorrencias[0]);

            comboSelecioneCidade.DataSource = lista_cidades_combobox;

            /* preenche combobox de ocorrencias da cidade na posição 0*/
            List <int> lista_codigo_ocorrencias = new List <int>();

            foreach (DadosOcorrencia dados_ocorrencia in lista_cidades[0].lista_ocorrencias)
            {
                lista_codigo_ocorrencias.Add(dados_ocorrencia.codigo_ocorrencia);
            }
            comboOcorrencias.DataSource = lista_codigo_ocorrencias;

            resultados_pesquisa = lista_cidades;

            if (encontrou_cidade)
            {
                labelCidadesEncontradas.Text = lista_cidades.Count + " cidade(s) encontrada(s).";
                labelSelecioneCidade.Text    = "Resultados da busca (\'" + nome_cidade + "\'):";
            }
            else
            {
                //atualiza labels
                labelCidadesEncontradas.Text = "\'" + nome_cidade + "\' não foi encontrada.";
                labelSelecioneCidade.Text    = "Lista de todas as cidades (" + resultados.Count + "):";
            }

            this.lista_dados_ocorrencia_resultados_pesquisa = resultados;

            //ativa o menu hamburger
            checkHamburger.Checked = true;
        } //pesquisar()
Exemplo n.º 2
0
        /*
         *
         * Métodos de ordenação e controle dos elementos visuais.
         *
         *  */

        private void ordenar()
        {
            if (comboAlgoritmo.Text.Equals("Bubble Sort (BBST)")) //Bubble Sort
            {
                if (comboCampo.Text.Equals("código da ocorrência"))
                {
                    Stopwatch sw = new Stopwatch();

                    List <DadosOcorrencia> lista_ordenada;

                    sw.Start();
                    lista_ordenada = OrdenaDados.bubbleSort_codigo_ocorrencia(this.lista_dados_ocorrencias, (!checkDecrescente.Checked));
                    sw.Stop();

                    this.lista_ordenada = lista_ordenada;

                    Console.WriteLine("time: " + sw.Elapsed);

                    preencherTempoExecucao("Bubble Sort (BBST)", lista_ordenada.Count, "código da ocorrência", checkDecrescente.Checked, sw.ElapsedMilliseconds);
                    preencherGridListaOcorrencias(lista_ordenada);
                }//if
                if (comboCampo.Text.Equals("localidade"))
                {
                    Stopwatch sw = new Stopwatch();

                    List <DadosOcorrencia> lista_ordenada;

                    sw.Start();
                    lista_ordenada = OrdenaDados.bubbleSort_localidade(this.lista_dados_ocorrencias, (!checkDecrescente.Checked));
                    sw.Stop();

                    this.lista_ordenada = lista_ordenada;

                    Console.WriteLine("time: " + sw.Elapsed);

                    preencherTempoExecucao("Bubble Sort (BBST)", lista_ordenada.Count, "localidade", checkDecrescente.Checked, sw.ElapsedMilliseconds);
                    preencherGridListaOcorrencias(lista_ordenada);
                }
            }//if
            if (comboAlgoritmo.Text.Equals("Insertion Sort com Busca Linear (ISBL)")) //Insertion Sort
            {
                if (comboCampo.Text.Equals("código da ocorrência"))
                {
                    Stopwatch sw = new Stopwatch();

                    sw.Start();
                    List <DadosOcorrencia> lista_ordenada = OrdenaDados.insertionSort_codigo_ocorrencia(this.lista_dados_ocorrencias, (!checkDecrescente.Checked));
                    sw.Stop();

                    this.lista_ordenada = lista_ordenada;

                    Console.WriteLine("time: " + sw.Elapsed);

                    preencherTempoExecucao("Insertion Sort com Busca Linear (ISBL)", lista_ordenada.Count, "código da ocorrência", checkDecrescente.Checked, sw.ElapsedMilliseconds);
                    preencherGridListaOcorrencias(lista_ordenada);
                }
                if (comboCampo.Text.Equals("localidade"))
                {
                    Stopwatch sw = new Stopwatch();

                    sw.Start();
                    List <DadosOcorrencia> lista_ordenada = OrdenaDados.insertionSort_localidade(this.lista_dados_ocorrencias, (!checkDecrescente.Checked));
                    sw.Stop();

                    this.lista_ordenada = lista_ordenada;

                    Console.WriteLine("time: " + sw.Elapsed);

                    preencherTempoExecucao("Insertion Sort com Busca Linear (ISBL)", lista_ordenada.Count, "localidade", checkDecrescente.Checked, sw.ElapsedMilliseconds);
                    preencherGridListaOcorrencias(lista_ordenada);
                }
            } //if
            if (comboAlgoritmo.Text.Equals("Quick Sort Randomizado (QSRM)")) //Quick Sort
            {
                if (comboCampo.Text.Equals("código da ocorrência"))
                {
                    Stopwatch sw = new Stopwatch();

                    sw.Start();
                    List <DadosOcorrencia> lista_ordenada = OrdenaDados.QSRM_Ocorrencia(this.lista_dados_ocorrencias, (!checkDecrescente.Checked));
                    sw.Stop();

                    this.lista_ordenada = lista_ordenada;

                    Console.WriteLine("time: " + sw.Elapsed);

                    preencherTempoExecucao("Quick Sort Randomizado (QSRM)", lista_ordenada.Count, "código da ocorrência", checkDecrescente.Checked, sw.ElapsedMilliseconds);
                    preencherGridListaOcorrencias(lista_ordenada);
                }
                if (comboCampo.Text.Equals("localidade"))
                {
                    Stopwatch sw = new Stopwatch();

                    sw.Start();
                    List <DadosOcorrencia> lista_ordenada = OrdenaDados.QSRM_Localizacao(this.lista_dados_ocorrencias, (!checkDecrescente.Checked));
                    sw.Stop();

                    this.lista_ordenada = lista_ordenada;

                    Console.WriteLine("time: " + sw.Elapsed);

                    preencherTempoExecucao("Quick Sort Randomizado (QSRM)", lista_ordenada.Count, "localidade", checkDecrescente.Checked, sw.ElapsedMilliseconds);
                    preencherGridListaOcorrencias(lista_ordenada);
                } //if
            }     //if
            if (comboAlgoritmo.Text.Equals("Shell Sort (SHST)")) //Shell sort (apenas decrescente)
            {
                if (comboCampo.Text.Equals("código da ocorrência"))
                {
                    Stopwatch sw = new Stopwatch();

                    sw.Start();
                    List <DadosOcorrencia> lista_ordenada = OrdenaDados.ShellSort_codigo_ocorrencia(this.lista_dados_ocorrencias);
                    sw.Stop();

                    this.lista_ordenada = lista_ordenada;

                    Console.WriteLine("time: " + sw.Elapsed);

                    preencherTempoExecucao("Shell Sort (SHST)", lista_ordenada.Count, "código da ocorrência", checkDecrescente.Checked, sw.ElapsedMilliseconds);
                    preencherGridListaOcorrencias(lista_ordenada);
                }
                if (comboCampo.Text.Equals("localidade"))
                {
                    Stopwatch sw = new Stopwatch();

                    sw.Start();
                    List <DadosOcorrencia> lista_ordenada = OrdenaDados.ShellSort_localidade(this.lista_dados_ocorrencias);
                    sw.Stop();

                    this.lista_ordenada = lista_ordenada;

                    Console.WriteLine("time: " + sw.Elapsed);

                    preencherTempoExecucao("Shell Sort (SHST)", lista_ordenada.Count, "localidade", checkDecrescente.Checked, sw.ElapsedMilliseconds);
                    preencherGridListaOcorrencias(lista_ordenada);
                } //if
            }
            if (comboAlgoritmo.Text.Equals("Heap Sort (HPST)")) //Heap Sort (apenas decrescente)
            {
                if (comboCampo.Text.Equals("código da ocorrência"))
                {
                    Stopwatch sw = new Stopwatch();

                    sw.Start();
                    List <DadosOcorrencia> lista_ordenada = OrdenaDados.HeapsortOcorrencia(this.lista_dados_ocorrencias);
                    sw.Stop();

                    this.lista_ordenada = lista_ordenada;

                    Console.WriteLine("time: " + sw.Elapsed);

                    preencherTempoExecucao("Heap Sort (HPST)", lista_ordenada.Count, "código da ocorrência", checkDecrescente.Checked, sw.ElapsedMilliseconds);
                    preencherGridListaOcorrencias(lista_ordenada);
                }
                if (comboCampo.Text.Equals("localidade"))
                {
                    Stopwatch sw = new Stopwatch();

                    sw.Start();
                    List <DadosOcorrencia> lista_ordenada = OrdenaDados.HeapsortLocalizacao(this.lista_dados_ocorrencias);
                    sw.Stop();

                    this.lista_ordenada = lista_ordenada;

                    Console.WriteLine("time: " + sw.Elapsed);

                    preencherTempoExecucao("Heap Sort (HPST)", lista_ordenada.Count, "localidade", checkDecrescente.Checked, sw.ElapsedMilliseconds);
                    preencherGridListaOcorrencias(lista_ordenada);
                } //if
            }     //if
        }         //ordenar()