Universidade Federal da Grande Dourados
Faculdade de Ciências Exatas e Tecnologia
Bacharelado em Sistemas de Informação
Estruturas de Dados I
Trabalho Prático II
Professor: M.Sc. Rodrigo Porfı́rio da Silva Sacchi
5 de novembro de 2010
O objetivo deste trabalho é avaliar o conhecimento e a prática do aluno com listas duplamente
encadeadas. Este trabalho pode ser desenvolvido em duplas.
O grupo deverá desenvolver o trabalho utilizando C ou C++. A lista duplamente encadeada será
uma lista de alunos, onde cada Aluno deverá conter um campo Id, que será seu campo chave, do tipo
inteiro, um campo nome, para representar seu nome e um campo dtNasc do tipo Data, representando
sua data de nascimento no formato dd/mm/aaaa, onde os campos da Data deverão ser do tipo inteiro.
As seguintes operações devem ser fornecidas, através de um menu, para o usuário da aplicação:
• Inserir um Aluno na lista mantendo esta ordenada pelo campo Id do Aluno, considerando todos os
campos como obrigatórios;
• Remover um elemento da lista a partir de sua identificação (campo Id);
• Remover um elemento da lista a partir de seu nome;
• Realizar uma busca por Id ou pelo nome do Aluno, conforme desejo do usuário;
• Imprimir o conteúdo da lista ordenado pelo Id dos alunos;
• Imprimir a lista em ordem inversa;
• Imprimir o nome do Aluno mais novo.
• Imprimir uma lista de alunos ordenada por suas idades. Para isso, utilize uma estrutura de Pilha,
onde os alunos mais velhos ficam na parte de baixo da Pilha e os mais novos ficam na parte de
cima da Pilha, isto é, o Aluno mais novo estará no topo da Pilha.
Importante salientar que várias outras funções serão necessárias para o funcionamento da aplicação e
que ficará a cargo do grupo desenvolver cada uma delas.
O que deve ser entregue:
• Código fonte do programa em C ou C++ (identado e comentado);
• Documentação do trabalho. Entre outras coisas, a documentação deve conter:
1. Introdução: descrição do problema a ser resolvido e visão geral sobre o funcionamento do
programa;
2. Implementação: descrição sobre a implementação do programa. Deve ser detalhada a estrutura
de dados utilizada (de preferência com diagramas ilustrativos), o funcionamento das principais
funções e procedimentos utilizados, o formato de entrada e saı́da de dados, bem como decisões
tomadas relativas aos casos e detalhes de especificação que porventura estejam omissos no
enunciado;
3. Estudo de Complexidade: estudo da complexidade do tempo de execução dos procedimentos
implementados e do programa como um todo (notação O);
4. Conclusão: comentários gerais sobre o trabalho e as principais dificuldades encontradas em
sua implementação;
5. Bibliografia: bibliografia utilizada para o desenvolvimento do trabalho, incluindo sites da
Internet se for o caso ;
6. Formato: mandatoriamente em PDF.
Como deve ser feita a entrega: Não serão aceitos trabalhos impressos, nem em meio ótico (ou
magnético), somente via e-mail. Para enviar o e-mail somente será aceito o trabalho que for enviado por
um dos membros da dupla. No envio, o campo Assunto deve conter o texto Trabalho Prático II -Estruturas de Dados I -- Membro1, Membro2. Além disso, no corpo deste deve conter:
• Nome completo dos membros da dupla;
• Arquivos anexos necessários.
Comentários Gerais:
• Comece a fazer este trabalho logo, enquanto o problema está fresco na memória e o prazo para
terminá-lo está tão longe quanto jamais poderá estar;
• Clareza, identação e comentários no programa também vão valer pontos;
• O trabalho é em duplas (grupo de DOIS alunos);
• Trabalhos copiados (e FONTE) terão nota zero;
• Trabalhos entregue em atraso serão aceitos, todavia a nota atribuı́da ao trabalho será zero, ou
seja, como todos os trabalhos serão entregues via e-mail, não serão aceitos aqueles enviados após
as 00hs00min do dias seguinte. Ou seja, nota zero.
• Evite discussões inócuas com o professor em tentar postergar a data de entrega do referido trabalho.
Data da entrega: 29 de Novembro de 2010.
2
Download

Trabalho Prático II