TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Análise de Algoritmos

Por:   •  17/10/2015  •  Trabalho acadêmico  •  1.058 Palavras (5 Páginas)  •  331 Visualizações

Página 1 de 5

Pontifícia Universidade Católica de Goiás

Sistemas Computacionais Aplicados-CMP1125

Documento de Software

Nome: Melissa Magda França Garcia

Matrícula: 201210280325

Goiânia, março de 2015

Introdução

Neste documento irei detalhar as principais partes da arquitetura proposta para o desenvolvimento do sistema, o padrão de projeto utilizado, os métodos usados para leitura de arquivo e uma base teórica dos algoritmos de ordenação usados no programa para ordenar os dados lidos do arquivo de entrada.

O problema

        O problema proposto era desenvolver um programa que lesse de um determinado arquivo de entrada, no qual conteriam informações de alunos, no caso, nome e matrícula, e ordená-los, mostrando em uma saída os dados já ordenados conforme os parâmetros escolhidos pelo usuário. A ordenação deve ser implementada com 4 algoritmos diferentes. Quando o usuário executar o programa deve aparecer na interface os botões correspondentes aos métodos implementados, o que for escolhido será o responsável por ordenar.

        As matrículas de cada aluno estão separados no arquivo por ponto-e-vírgula, sendo que a matrícula é formada por:

        -ano que o aluno foi matriculado no curso;

        -semestre em que ele começou o curso;

        -código do curso;

        -código gerado para cada novo aluno;

        

        Dado que a matrícula é formada por esses itens, eles vieram separados por pontos no arquivo de entrada, para facilitar a visualização e uma posterior separação dos mesmos.

Construindo a interface do usuário

        Foi definido que a interface do programa poderia conter alguns itens principais dentre eles:

  • Botão para abrir o arquivo de onde os dados serão lidos
  • Ítem clicável de escolha do parâmetro de ordenação(nome, matrícula, outro...)
  • Botões que ativam o método de ordenação a ser utilizado para ordenar os dados.
  • Ítem de tabela que mostrará o resultado da ordenação.
  • Botão para limpar a tabela para uma nova ordenação(opcional).

Definindo o padrão de projeto

        Como as comparações dos parâmetros utilizados para a ordenação podem variar, implementar essa comparação na mesma classe que implementa os algoritmos pode não vantajosa e dificultar alterações futuras pois se um parâmetro mudar ou for alterado, isso implicará em mudanças no programa todo. Sendo assim, viu se a necessidade de utilizar um padrão de projeto, nesse caso o padrão Template Method, que consiste em definir os passos de um algoritmo e permitir que a implementação de um ou mais desses passos seja fornecida por subclasses. Assim, o Template Method protege o algoritmo e fornece métodos abstratos para que as subclasses possam implementá-los. Vejamos como ficou o digrama de classe do projeto:

[pic 1]

Ilustração : (Diagrama de Classe. As subclasses são responsáveis pela implementação do método responsável por fazer a comparação dos parâmetros de ordenação(Nome, Matrícula, Semestre)

Como ler os dados do arquivo?

        Para trabalhar com os dados contidos na tabela(.csv), é preciso ler e guardar os dados lidos em uma estrutura, para depois, separá-los nos atributos correspondentes na classe Aluno.

        Para obter os dados da tabela a interface bufferedReader do Java pode ser usada apesar de não ser a única forma de ler de um arquivo. Os dados podem ser colocados em um ArrayList(classe do Java correspondente à uma lista) do tipo Aluno  para depois serem ordenados.

Os algoritmos de ordenação

        Foram implementados quatro algoritmos de ordenação:

                 ->BubleSort

                 ->SelectionSort

                 ->InsertionSort

                ->QuickSort.

        BubleSort

 Neste algoritmo cada elemento da posição i será comparado com o elemento da posição i + 1, ou seja, um elemento da posição 2 será comparado com o elemento da posição 3. Caso o elemento da posição 2 for maior que o da posição 3, eles trocam de lugar e assim sucessivamente. Por causa dessa forma de execução, o vetor terá que ser percorrido quantas vezes que for necessária.

...

Baixar como (para membros premium)  txt (6.6 Kb)   pdf (164.2 Kb)   docx (46.8 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com