Considere um programa para implementar uma agenda telefônica. Para implementar a agenda utilize uma lista encadeada: é obrigatório o uso da classe já existente do Java chamada LinkedList (ver exemplo de uso
aqui). Requisitos do software:
- O programa deverá ser capaz de incluir, excluir e pesquisar. Os campos necessários são: nome, telefone, endereço.
- O programa deverá ser capaz de gravar e ler os dados em arquivo.
- Apresente um diagrama de classes em UML refletindo a estrutura de classes a ser implementada.
- Desenvolva uma interface com o usuário. O usuário pode escolher as opções de: (1) abrir arquivo, (2) gravar arquivo, (3) incluir entrada, (4) excluir entrada (5) pesquisar entrada (6) listar todos os registros.
- Escreva em separado um programa teste que inclui pelo menos 50 entradas no sistema, exclui 10 entradas, realizar pesquisa, grava o arquivo e lê de arquivo.
- PONTO EXTRA: Vou considerar até um ponto extra na nota para quem implementar uma interface gráfica de interação com o usuário. Atenção: a nota do ponto extra será proporcional à qualidade do produto de software - quem implementar deve apresentar o software pessoalmente (serão feitas perguntas sobre a implementação).