Example #1
0
 public Cidade(string localidade, string uf, DadosOcorrencia dados_ocorrencia)
 {
     this.lista_ocorrencias = new List <DadosOcorrencia>();
     this.lista_ocorrencias.Add(dados_ocorrencia);
     this.localidade = localidade;
     this.uf         = uf;
 }
Example #2
0
        /// <summary>
        /// Randomiza o pivô para posterior partição da lista.
        /// </summary>
        /// <param name="input">A lista desordenada.</param>
        /// <param name="left">Pivô esquerdo.</param>
        /// <param name="right">Pivô direito.</param>
        /// <param name="crescente">Se <c>true</c> [crescente].</param>
        /// <returns>Retorna um inteiro a ser utilizado como pivô nas chamadas recursivas.</returns>
        private static int RandomizedPartitionLocalizacao(List <DadosOcorrencia> input, int left, int right, bool crescente)
        {
            Random random = new Random();
            int    i      = random.Next(left, right);

            DadosOcorrencia pivot = input[i];

            input[i]     = input[right];
            input[right] = pivot;

            return(PartitionLocalizacao(input, left, right, crescente));
        }
Example #3
0
        /// <summary>
        /// Utiliza Bubble Sort.
        /// A chave é a localidade
        /// </summary>
        /// <param name="lista_desordenada">A lista desordenada.</param>
        /// <param name="crescente">Se <c>true</c> [crescente].</param>
        /// <returns>Retorna a lista devidamente ordenada.</returns>
        public static List <DadosOcorrencia> bubbleSort_localidade(List <DadosOcorrencia> lista_desordenada, bool crescente)
        {
            List <DadosOcorrencia> lista_ordenada = new List <DadosOcorrencia>();

            foreach (DadosOcorrencia dados_ocorrencia in lista_desordenada)
            {
                lista_ordenada.Add(dados_ocorrencia);
            }
            bool exchanges;

            do
            {
                exchanges = false;
                for (int i = 0; i < lista_ordenada.Count - 1; i++)
                {
                    if (lista_ordenada[i].ocorrencia != null)
                    {
                        if (crescente)
                        {
                            if (lista_ordenada[i + 1].ocorrencia.localidade.CompareTo(lista_ordenada[i].ocorrencia.localidade) < 0)
                            {
                                // Exchange elements
                                DadosOcorrencia temp = lista_ordenada[i];
                                lista_ordenada[i]     = lista_ordenada[i + 1];
                                lista_ordenada[i + 1] = temp;
                                exchanges             = true;
                            }
                        }
                        else
                        {
                            if (lista_ordenada[i].ocorrencia.localidade.CompareTo(lista_ordenada[i + 1].ocorrencia.localidade) < 0)
                            {
                                // Exchange elements
                                DadosOcorrencia temp = lista_ordenada[i];
                                lista_ordenada[i]     = lista_ordenada[i + 1];
                                lista_ordenada[i + 1] = temp;
                                exchanges             = true;
                            }
                        }
                    } //if
                }     //for
            } while (exchanges);

            return(lista_ordenada);
        }
Example #4
0
        /// <summary>
        /// Efetivamente particiona a lista, para que o algoritmo funcione.
        /// Utiliza como chave a localização
        /// </summary>
        /// <param name="input">A lista desordenada.</param>
        /// <param name="left">Pivô esquerdo.</param>
        /// <param name="right">Pivô direito.</param>
        /// <param name="crescente">Se <c>true</c> [crescente].</param>
        /// <returns>Retorna um inteiro a ser utilizado como pivô nas chamadas recursivas.</returns>
        private static int PartitionLocalizacao(List <DadosOcorrencia> input, int left, int right, bool crescente)
        {
            DadosOcorrencia pivot = input[right];
            DadosOcorrencia temp;

            int i = left;

            for (int j = left; j < right; j++)
            {
                if (crescente)
                {
                    if (pivot.ocorrencia.localidade.CompareTo(input[j].ocorrencia.localidade) >= 0)
                    {
                        temp     = input[j];
                        input[j] = input[i];
                        input[i] = temp;
                        i++;
                    }
                }
                else
                {
                    if (input[j].ocorrencia.localidade.CompareTo(pivot.ocorrencia.localidade) >= 0)
                    {
                        temp     = input[j];
                        input[j] = input[i];
                        input[i] = temp;
                        i++;
                    }
                }
            }

            input[right] = input[i];
            input[i]     = pivot;

            return(i);
        }
Example #5
0
        /// <summary>
        /// Efetivamente particiona a lista, para que o algoritmo funcione.
        /// Utiliza como chave o código de ocorrência
        /// </summary>
        /// <param name="input">A lista desordenada.</param>
        /// <param name="left">Pivô esquerdo.</param>
        /// <param name="right">Pivô direito.</param>
        /// <param name="crescente">Se <c>true</c> [crescente].</param>
        /// <returns>Retorna um inteiro a ser utilizado como pivô nas chamadas recursivas.</returns>
        private static int PartitionOcorrencia(List <DadosOcorrencia> input, int left, int right, bool crescente)
        {
            DadosOcorrencia pivot = input[right];
            DadosOcorrencia temp;

            int i = left;

            for (int j = left; j < right; j++)
            {
                if (crescente)
                {
                    if (input[j].codigo_ocorrencia <= pivot.codigo_ocorrencia)
                    {
                        temp     = input[j];
                        input[j] = input[i];
                        input[i] = temp;
                        i++;
                    }
                }
                else
                {
                    if (input[j].codigo_ocorrencia >= pivot.codigo_ocorrencia)
                    {
                        temp     = input[j];
                        input[j] = input[i];
                        input[i] = temp;
                        i++;
                    }
                }
            }

            input[right] = input[i];
            input[i]     = pivot;

            return(i);
        }
Example #6
0
        } //limparDadosOcorrencia()

        /// <summary>
        /// Preenche o texto com as informações da ocorrência selecionada.
        /// </summary>
        /// <param name="dado_selecionado">A ocorrencia selecionada.</param>
        private void preencherDadosOcorrencia(DadosOcorrencia dado_selecionado) //preenche os dados da ocorrência
        {
            textDadosOcorrencia.Text = "";
            if (dado_selecionado.ocorrencia != null)
            {
                textDadosOcorrencia.Text  = "Ocorrência:\r\n\r\n";
                textDadosOcorrencia.Text +=
                    "  Código: " + dado_selecionado.codigo_ocorrencia + "\r\n" +
                    "  Classificação: " + dado_selecionado.ocorrencia.classificacao + "\r\n" +
                    "  Tipo: " + dado_selecionado.ocorrencia.tipo + "\r\n" +
                    "  Localidade: " + dado_selecionado.ocorrencia.localidade + "\r\n" +
                    "  UF: " + dado_selecionado.ocorrencia.uf + "\r\n" +
                    "  País: " + dado_selecionado.ocorrencia.pais + "\r\n" +
                    "  Aerodromo: " + dado_selecionado.ocorrencia.aerodromo + "\r\n" +
                    "  Dia ocorrência: " + dado_selecionado.ocorrencia.dia_ocorrencia + "\r\n" +
                    "  Horário UTC: " + dado_selecionado.ocorrencia.horario + "\r\n" +
                    "  Será investigada: " + dado_selecionado.ocorrencia.sera_investigada + "\r\n" +
                    "  Comando investigador: " + dado_selecionado.ocorrencia.comando_investigador + "\r\n" +
                    "  Status investigação: " + dado_selecionado.ocorrencia.status_investigacao + "\r\n" +
                    "  Número relatório: " + dado_selecionado.ocorrencia.numero_relatorio + "\r\n" +
                    "  Relatório publicado: " + dado_selecionado.ocorrencia.relatorio_publicado + "\r\n" +
                    "  Dia publicação: " + dado_selecionado.ocorrencia.dia_publicacao + "\r\n" +
                    "  Quantidade de recomendações: " + dado_selecionado.ocorrencia.quantidade_recomendacoes + "\r\n" +
                    "  Aeronaves envolvidas: " + dado_selecionado.ocorrencia.aeronaves_envolvidas + "\r\n" +
                    "  Saída pista: " + dado_selecionado.ocorrencia.saida_pista + "\r\n" +
                    "  Dia extração: " + dado_selecionado.ocorrencia.dia_extracao + "\r\n";
            } //if
            if (dado_selecionado.aeronave != null)
            {
                textDadosOcorrencia.Text += "\r\n\r\n";
                textDadosOcorrencia.Text += "Aeronave:\r\n\r\n";
                textDadosOcorrencia.Text +=
                    "  Código da aeronave: " + dado_selecionado.aeronave.codigo_aeronave + "\r\n" +
                    "  Matrícula: " + dado_selecionado.aeronave.matricula + "\r\n" +
                    "  Código do operador: " + dado_selecionado.aeronave.codigo_operador + "\r\n" +
                    "  Equipamento: " + dado_selecionado.aeronave.equipamento + "\r\n" +
                    "  Fabricante: " + dado_selecionado.aeronave.fabricante + "\r\n" +
                    "  Modelo: " + dado_selecionado.aeronave.modelo + "\r\n" +
                    "  Tipo motor: " + dado_selecionado.aeronave.tipo_motor + "\r\n" +
                    "  Quantidade motores: " + dado_selecionado.aeronave.quantidade_motores + "\r\n" +
                    "  Peso máximo decolagem: " + dado_selecionado.aeronave.peso_maximo_decolagem + "\r\n" +
                    "  Quantidade de assentos: " + dado_selecionado.aeronave.quantidade_assentos + "\r\n" +
                    "  Ano de fabricação: " + dado_selecionado.aeronave.ano_fabricacao + "\r\n" +
                    "  País de registro: " + dado_selecionado.aeronave.pais_registro + "\r\n" +
                    "  Categoria registro: " + dado_selecionado.aeronave.categoria_registro + "\r\n" +
                    "  Categoria aviação: " + dado_selecionado.aeronave.categoria_aviacao + "\r\n" +
                    "  Origem voo: " + dado_selecionado.aeronave.origem_voo + "\r\n" +
                    "  Destino voo: " + dado_selecionado.aeronave.destino_voo + "\r\n" +
                    "  Fase operação: " + dado_selecionado.aeronave.fase_operacao + "\r\n" +
                    "  Tipo operação: " + dado_selecionado.aeronave.tipo_operacao + "\r\n" +
                    "  Nível de dano: " + dado_selecionado.aeronave.nivel_dano + "\r\n" +
                    "  Quantidade de fatalidades: " + dado_selecionado.aeronave.quantidade_fatalidades + "\r\n" +
                    "  Dia de extração: " + dado_selecionado.aeronave.dia_extracao + "\r\n";
            } //if
            if (dado_selecionado.fator != null)
            {
                textDadosOcorrencia.Text += "\r\n\r\n";
                textDadosOcorrencia.Text += "Fator contribuinte: \r\n\r\n";
                textDadosOcorrencia.Text +=
                    "  Código do fator: " + dado_selecionado.fator.codigo_fator + "\r\n" +
                    "  Aspecto: " + dado_selecionado.fator.aspecto + "\r\n" +
                    "  Condicionante: " + dado_selecionado.fator.condicionante + "\r\n" +
                    "  Área: " + dado_selecionado.fator.area + "\r\n" +
                    //" Nível de contribuição: " + dado_selecionado.fator. + "\r\n" +
                    "  Detalhe fator: " + dado_selecionado.fator.detalhe_fator + "\r\n" +
                    "  Dia extração: " + dado_selecionado.fator.dia_extracao;
            } //if
        }     // preencherDadosOcorrencia()
Example #7
0
        } //pesquisar()

        /// <summary>
        /// Mostra os dados da ocorrência selecionada da lista de ocorrências da cidade.
        /// </summary>
        /// <param name="ocorrencia_selecionada">A ocorrencia selecionada.</param>
        private void ocorrenciaSelecionada(DadosOcorrencia ocorrencia_selecionada) //mostra a ocorrência selecionada no comboBox
        {
            //preenche o textbox com os dados da ocorrencia selecionada
            preencherDadosOcorrencia(ocorrencia_selecionada);
        } // pesquisar(DadosOcorrencia dado_selecionado)