Skip to content

GregorySantos/TrabEDA2017.1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lista de Registros

Trabalho de Estrutura de Dados - UFBA - 2017.1

Dados do Trabalho

Nota Máxima: 10.0

Peso da Média: 3

Membros
  • Gregory Santos - GregorySantos
  • Lucas Natanael - LucasNBP
  • Matheus Silva Freitas - FormigTeen
Descrição:

A equipe de no mínimo 2 e no máximo 3 integrantes deverá desenvolver um programa para avaliar o tempo de execução de operações em estruturas de dados.

Um arquivo do tipo csv com dados fictícios de funcionários de uma empresa será entregue a equipe para testes, mas o programa deve poder aceitar qualquer arquivo do mesmo tipo com o mesmo padrão de colunas. Um programa desenvolvido em C deve importar esse arquivo para 2 tipos de estruturas dados com apontadores: lista duplamente encadeada e árvore AVL. As estrutura de dados devem armazenar um registro com variáveis que reflitam as colunas de cada linha, como matrícula, nome, salário, email etc. Ambas as estruturas de dados devem estar ordenadas de forma crescente pela variável matrícula de cada registro já na inserção dos dados.

O programa deve ter um menu para acionar as seguintes operações:

  • Importação de todos os registros de um arquivo com nome a ser entrado pelo usuário, que deve estar na mesma pasta onde o programa está rodando.
  • Exibição dos registros na ordem da matrícula
  • Busca de um registro com determinado nome
  • Busca de um registro com determinada matrícula
  • Inserção de um novo registro ordenadamente pela matrícula, garantindo que a matrícula informada pelo usuário não seja igual a nenhum outro funcionário já inserido, pois se for igual não deve inserir
  • Remoção de um registro com determinada matrícula

Cada funcionalidade acima precisa ser uma função dentro do programa. As funções não deve usar variáveis globais. A função de importação deve pedir ao usuário o nome do arquivo que será importado. As operações diferentes da importação só podem estar disponíveis depois da primeira importação. Cada operação diferente da importação e inserção deve pedir ao usuário em qual estrutura de dados será acionada. A importação e inserção deve ocorrer nas duas estruturas de dados em sequência. Após a importação nas duas estruturas o programa deve exibir a quantidade de registros importada e o tempo de duração de importação em cada estrutura separadamente, o mesmo vale para inserção.

A compilação do programa deve ser apenas em C, o que no gcc pode ser feita pelo comando gcc –x c “nomedearquivo.c” –o “nomedearquivo.exe”.

Um relatório de até 4 páginas deve ser desenvolvido. O relatório deve apresentar o programa, as operações, a quantidade e formato de dados utilizados para testes. Testes devem ser feitos em cada operação para demonstrar os tempos diferentes e finalmente discutir os motivos das diferenças de tempo baseadas nas diferenças das estrutura de dados. O relatório deve ser feito no formato de artigo da Sociedade Brasileira de Computação. O relatório deve incluir referências a pelo menos 2 livros.

Entregas e Prazos:
  • Declaração dos membros da equipe - 11/07
  • Arquivo executável no Windows e arquivo ou arquivos .c – 18/08
  • Relatório do trabalho 01/09.
  • Nota de 0 a 100% de cada membro do time para os demais membros do time quanto a dedicação do mesmo ao trabalho – 02/09

O respeito aos prazos será considerado na nota final. Atrasos causam multa de 20% ao dia.

As entregas deverão ser feitas pelo Moodle, com exceção da declaração dos membros da equipe que será por esse Link

O modelo do Artigo da SBC a ser seguido.

Padrão para o Uso do GitHub

Para baixar o repositório na sua máquina execute: git clone https://github.com/GregorySantos/TrabEDA2017.1

Para criar uma Branch corretamente é preciso seguir alguns passos. Primeiro entre na Branch que tem a funcionalidade que você queria melhorar, é recomendável sempre criar uma Branch a partir do master(Caso o master ainda não tenha as funcionalidades necessárias para a implementação que deseja realizar, solicite ao dono da Branch onde as funcionalidades já foram criadas para atualizar a master), e execute git checkout -b "nomeDaBranch#IdIssue". Um exemplo prático: git checkout -b Menu#5.

Para atualizar o repositório no seu computador execute: git pull origin nomeDaBranch

Para enviar as suas alterações para o GitHub execute: git push origin nomeDaBranch

Para entrar em alguma Branch execute git checkout nomeDaBranch.

Para visualizar a lista das Branchs que o seu Git já conhece e a Branch que você esta atualmente execute: git branch.

Para entrar em alguma Branch execute: git checkout nomeDaBranch.

Para atualizar ou mesclar as mudanças da Branch atual com outra Branch execute: git merge outraBranch.(Dica: Utilize esse comando para Atualizar somente a sua Branch com as funcionalidades já implementadas na master)

Para atualizar a master com as funcionalidades da sua Branch, abra um Pull Request no GitHub!!!

Regras de Etiqueta de Desenvolvimento:

  • Não edite nada na Branch que não pertence a você!
  • Não edite nada diretamente da Master!
  • Revise seu código antes de atualizar a master com as suas funcionalidades!
  • Assine as Issues para informar a equipe que você está desenvolvendo aquela funcionalidade.
  • Realize testes em sua Branch antes de atualizar a master com as suas funcionalidades.
  • Antes de desenvolver uma nova funcionalidade ou corrigir algum bug, verifique se ela está citada em alguma Issue para referenciar a sua Branch. Caso não esteja, cria uma Issue da funcionalidade ou Bug que deseja implementar ou corrigir.
  • Somente atualize a master através de requisições do Pull Request para a equipe acompanhar as implementações!!!
  • Não aceite o seu próprioPull Request! Comunique-se com a Equipe de Desenvolvimento antes!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages