Estrutura de Dados Lista de Exercícios – Classificação/Pesquisa de Dados Professor: Frederico Augusto Siqueira Gentil 01) Uma empresa de Telemarketing precisa otimizar o seu atendimento e solicitou os seus serviços para desenvolver um software que automatize a entrada, armazenamento, classificação e consultas dos atendimentos a seus clientes. Devem ser registrados os seguintes dados dos clientes: (Código, nome do cliente, nome do pai, nome da mãe, telefone, e-mail). Para os atendimentos, devem ser registrados os seguintes dados: (N° do atendimento, código do cliente, assunto do atendimento, dia do atendimento, mês do atendimento). O sistema deverá conter o seguinte MENU: MENU 1. Cadastrar Cliente 2. Excluir Cliente 3. Alterar Dados do Cliente 4. Atendimentos 5. Consultas 5. Relatórios 6. Sair Sub-Menu Consultas 1. Consultar clientes por código 2. Consultar clientes por nome 3. Consultar dados do cliente através do telefone Sub-Menu Relatório 1. Relatório de Clientes (Classificado por código) 2. Relatório de Clientes (Classificado por Nome) 3. Relatório de Atendimentos por dia (deve constar código do atendimento, código do cliente, nome do cliente e assunto). Obs: No cadastro do atendimento deverá ser digitado o código do cliente e o sistema deverá trazer o nome do referido cliente. Caso o cliente não exista, uma mensagem deverá ser impressa. - A implementação pode ser Seqüencial ou Encadeada. 02) Faça um programa em Java para cadastrar clientes (código, nome, área de interesse) de forma aleatória, armazenando-os em uma árvore binária de pesquisa (considerar como campo de ordenação o código). Após o cadastro, utilizando o encaminhamento correto, gere um array ordenado pelo código, com os clientes cadastrados na árvore binária de pesquisa. Sempre que houver alguma alteração no cadastro (árvore) como inclusões ou exclusões o sistema deverá atualizar o array. 03) Faça um programa que cadastre 30 produtos de uma empresa de forma aleatória, onde deveremos registrar as seguintes informações de cada um deles: Código (inteiro), Descrição do Produto e Preço de compra. Após o cadastro o sistema deverá efetuar uma classificação tendo como chave de classificação o campo Código. Após a classificação o sistema habilitará uma opção de pesquisa que utilizará o sistema de pesquisa binária e permitirá pesquisar a situação de cada produto, tendo como chave de pesquisa o campo Código. Obs: - Caso o usuário escolha a opção de pesquisa antes da classificação ter sido efetuada, emitir uma mensagem de erro. - Ao ser efetuada a pesquisa, caso o sistema não encontre o Código pesquisado deverá ser impressa a mensagem: “Produto não cadastrado !” - Ao ser efetuada a pesquisa, caso o sistema encontre o Código pesquisado deverão ser impressos: Descrição do Produto, Preço de Compra e Preço de Venda (Margem de lucro de 25%). Considerar que o preço de venda não deverá ser armazenado mas calculado na hora da impressão. - A implementação pode ser Seqüencial ou Encadeada. 04) Desenvolver um sistema de uma agenda telefônica onde deverão ser armazenados os seguintes dados: Nome, Apelido, mês de nascimento, ano de nascimento, telefone residencial e telefone comercial. O menu deverá ter os seguintes itens: 1. Cadastrar Contato 2. Alterar Contato 3. Excluir Contato 4. Pesquisar 5. Relatórios Sub-menu Pesquisar 4.1. Efetuar Pesquisa por Apelido 4.2. Efetuar Pesquisa por Nome Sub-menu Relatórios 5.1. Relatório Geral (Nome e telefone) 5.2. Relatório por Apelido 5.3. Relatório por Nome 5.4. Relatório de aniversariantes do mês. Os métodos de classificação e pesquisa a serem utilizados ficam a critério do aluno. O sistema poderá ser desenvolvido utilizando implementação seqüencial ou encadeada. 05) Desenvolver um sistema em Java para cadastrar os artistas e bandas que participarão do “Reveillon Fanese” que será realizado no período de 28 a 31 de dezembro. Para cada banda, cadastrar: - Código da banda no evento (seqüencial); - Nome da Banda ou Artista; - Cidade de origem da banda; - Quantidade de integrantes da banda; - Valor do cachê; - Dia da apresentação (somente o dia) Considerar que em cada dia só poderá ter no máximo 4 bandas. Implementar o seguinte sistema: MENU CONSULTAR MENU 1. Cadastrar banda 2. Alterar informações da banda 3. Excluir banda 4. Consultar banda 5. Relatórios 6. Classificar bandas 7. Sair 4.1. Consultar banda por código 4.2. Consultar banda por Nome 4.2. Consultar banda por data 4.3. Sair MENU RELATÓRIO 5.1. Listar bandas por Código 5.2. Custo do Evento com Bandas 5.3. Custo Médio por Banda 5.4. Programação 5.5. Sair - A implementação pode ser Seqüencial ou Encadeada. - A consulta por código deve ser realizada através de uma pesquisa binária.