·

Engenharia de Software ·

Estrutura de Dados

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Trabalho Final EDA Upload via Moodle Entrevista conforme divulgado no Moodle EM DUPLAS NÃO SERÃO ACEITOS TRABALHOS COM GRUPOS COM MAIS DE 2 MEMBROS TODOS OS ARQUIVOS DEVERÃO SE ENTREGUES H C PRJ EXE ETC BEM COMO UM PEQUENO RELATÓRIO IDENTIFICANDO OS AUTORES A FUNCIONALIDADE DO SISTEMA COMANDOS DE COMPILAÇÃO DE BIBLIOTECAS UTILIZADAS E COMENTÁRIOS SOBRE OS EXPERIMENTOS OS TRABALHOS ENTREGUES FORA DO PRAZO TERÃO NOTA ZERO OS CÓDIGOS DEVEM SER COMENTADOS Tarefa construção de um programa de aplicação que lê um arquivo no modo texto sem formatação e grava as palavras em uma ABBAVL A ABBAVL servirá como estrutura de índice para a pesquisa de palavras 1 Descrição da ABB Pode ser usada uma ABB sem balanceamento porém preferencialmente utilize uma ABBAVL Cada nó da árvore armazena um descritor para uma lista de palavras A lista conterá uma palavra ou todas as ocorrências da mesma palavra em locais distintos do texto Figura 1 Figura 1 Nó da ABBAVL e lista associada 11 Ordenação da ABBAVL O valor da chave uma cadeia de caracteres representando uma palavra que ordena a árvore é calculada da seguinte forma Considere a string abcd cada caractere ocupa uma posição str0a str1b etc Calcule o valor da chave somando os produtos entre cada código ascii do caractere e seu respectivo índice na string mais um chave intstr01 intstr12 intstr23 intstr34 Palavras iguais fornecem o mesmo valor para a chave 12 Funções de callback i comparaNaArvore auxilia na determinação da relação entre um nó visitado na ABB e um nome a ser inserido buscado ou removido ii comparaNaLista verifica se determinado nó da lista faz referência a linha e coluna que correspondem a determinado elemento do texto iii printpalavra executa printf da palavra linha coluna em um nó da LDDE 2 Funcionalidade do Sistema 21 carga da ABBListas a partir do arquivotxt 22 destruição da ABBListas 22 A buscaexibição das ocorrências de determinada palavra o usuário fornece a palavra e o sistema informa as linhas e colunas das ocorrências do primeiro caractere da palavra no texto A busca é realizada na ABB 23 OPCIONAL Remoção das ocorrências de determinada palavra O usuário informa a tupla palavra linha coluna e o TDA utiliza o devido callback na ABB para detectar a posição da palavra procurada Caso seja encontrada a ABB a mesma é removida desta e da tabela Caso haja uma única palavra também removese o respectivo nó da ABB e da lista 24 OPCIONAL Atualização em disco a remoção busca alteração ou inserção ocorrem na memória principal portanto não estão sendo efetivadas no arquivo Para tanto o usuário precisará acionar a opção de atualização do arquivo txt fonteoriginal Cada palavra lida no arquivo é procurada na ABB se existir tal palavra na árvore a mesma é copiada do arquivo original para um arqTemptxt Ao final usando a função rename renomeie o arquivotxt como arquivoOLDtxt e após isso renomeie arqTemptxt como arquivotxt 25 OPCIONAL Alteração e inserção de nova palavra O usuário informa a tupla palavra linha coluna e esta é procurada na ABB Caso a posição já está ocupada por outra palavra o usuário recebe msg e opta entre substituir a palavra existente pela nova palavra alteração inserir a nova palavra na posição da atual sem removêla ou nada fazer 3 Recomendações finais 1 Mantenha o encapsulamento entre aplicação e estrutura de dados ABBLDDE 2 No material disponível no site Moodle consta uma apostila com funções para leituraescrita em arquivos modo texto Em especial há funções bastante úteis fgetsfputs fseek rename etc Além de strcat strcmp etc 3 Foque seus esforços nos objetivos do sistema deixe os detalhes estéticos para o final Não se preocupe com interfaces bonitas ou códigos extremamente rebuscados mas sim com um projeto bem estruturado e que funcione 4 Reaproveite código tirando proveito dos códigos e bibliotecas de TDAs disponíveis Árvore e LDDE Altere esses códigos se achar conveniente 5 Em nenhuma hipótese faça uso de variáveis globais Use e abuse de funções da biblioteca padrão do C mas tenha certeza que conhece o seu comportamento Quaisquer dúvidas adicionais procure o professor ou o monitor da disciplina 5 Fontes Bibliográficas Moodle da disciplina httpwwwlcadicmcuspbrnonatoEDAVLnode67html