Prévia do material em texto
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURA DE DADOS I PROF. LUIZ ROBERTO LISTA EXERCÍCIOS 01 ENTREGA: 20/04/2017 Elabore os algoritmos dos exercícios abaixo em linguagem Java. A entrega da lista de exercícios deverá ser realizada via sistema Moodle (preferencialmente), e-mail ou pessoalmente até a data especificada no cabeçalho deste documento. Entregue os arquivos fontes construídos ou utilizados em seus algoritmos (classes, interfaces, arquivos de entrada, etc). 1. Escreva um programa em Java que “informe o troco” a ser devolvido a um cliente. O programa deverá receber dois números como entrada, um o valor pago e o outro o valor da compra (valor devido). Seu programa deverá então informar a quantidade de cada tipo de nota e moeda que deve ser devolvido como troco, devido a diferença entre o que foi pago e o que foi cobrado. Os valores das notas e moedas devem ser os do sistema monetário brasileiro (REAL, R$). Tente projetar o sistema de maneira que ele retorne a menor quantidade de notas e moedas possível. 2. Escreva um programa em Java que receba um documento de texto e exibe um gráfico de barras (horizontais) com as frequências de cada letra do alfabeto que aparece no texto. 3. Escreva uma classe para conversão de unidades de tempo, chamada ConversorUnidadesTempo que contenha métodos estáticos para conversão aproximada das unidades de tempo segundo a lista abaixo: a. 1 minuto = 60 segundos b. 1 hora = 60 minutos c. 1 dia = 24 horas d. 1 semana = 7 dias e. 1 mês = 30 dias f. 1 ano = 365.25 dias Utilizando a classe acima você deverá construir uma interface (gráfica ou por texto), onde o usuário informe uma unidade de medida e o seu programa mostre os valores convertidos para as demais unidades. Exemplo: um gerente de projeto deseja saber o tempo de duração de um projeto. Sabe-se que este projeto terá duração de 95 dias. Seu programa deverá exibir os valores de duração em segundos, minutos, horas, semanas, meses e ano(s). 4. Escreva uma classe JogoLocalizaPalavras que encapsule um array bidimensional de caracteres. Esse array pode ser passado como argumento para o construtor da classe ou criado de outra forma. Para simplificar, considere que os caracteres armazenados serão todos maiúsculos (escreva código no construtor que garanta isso). Escreva para essa classe um método localiza que receba uma string como argumento e retorne true caso essa string possa ser localizada dentro do array de caracteres, em qualquer posição e em qualquer orientação. Dessa forma, caso o array encapsulado seja como o mostrado abaixo, as palavras “LOCALIZAR”, “TENTATIVA”, “BAIXA” e “TESTE” poderiam ser localizadas no array. 5. Escreva um programa em Java que encapsule a agenda de contatos de um celular. As instâncias desta classe devem apresentar uma estrutura de dados que permitam representar o armazenamento das informações dos contatos. Para os contatos a serem armazenados nesta agenda, considere as seguintes informações: Nome, e- mail, telefone e celular. Para a classe Agenda, escreva métodos que permitam: • Adicionar um contato; • Remover um contato; • Editar um contato; • Localizar um contato. 6. Escreva uma classe para controlar uma Jukebox que encapsule o comportamento básico desta máquina. As instâncias desta classe devem representar uma sequência de músicas que serão tocadas na ordem que foram entradas na máquina (a primeira música a ser tocada deverá ter sido a primeira a ser entrada na sequência). As músicas devem ser representadas pelo: Título, Cantor e Duração de tempo, podendo utilizar string para representar estas informações. Escreva para esta classe métodos que permitam: • A adição de uma música na sequência; • Listagem da sequência de músicas (na ordem que devem ser tocadas); • Método para pular para a próxima música; • Método para pular para a música anterior; • Simule a execução de uma fila de músicas. Você deverá criar uma coleção para representar os dados das músicas na Jukebox. 7. Um comércio deseja desenvolver um pequeno sistema para controle de seus processos de seu PDV (ponto de venda). O controle do ponto de venda deve realizar o registro de dados do cliente (Pessoa Jurídica ou Física) que está efetuando a compra; as informações do(s) produto(s) da venda, calculando os valores subtotais de cada produto adquirido (valor unitário * quantidade); e os dados totais da compra como, o total da compra e o valor destinado ao pagamento de impostos. Com estes ABLNHEHLLTBQJFRGQH KJUTWRAZILACOLVMNJ FEOGEQHTLOIDFMBAOQ RWBNUSGEVIXOIOXGUZ BRDARGTENTATIVAYJK EARHSOWESLFVCDPZJQ WECSWATLXBMTLCDPNI dados o sistema deverá emitir o Cupom Fiscal de Venda, documento oficial de venda que resume todos os dados da compra (modelo a seguir). Construa um programa que solucione o problema acima, aplicando os conceitos vistos até agora na disciplina como Interfaces, Classes Abstratas, Tratamento de Exceções, Polimorfismo, Atributos de Acesso e outros. Inclua os atributos e métodos que julgar necessário para o programa. Você deverá implementar uma interface de interação que consiga possibilitar as seguintes ações/requisitos ao sistema: • Possibilitar o cadastro de pedidos; • Possibilitar a inclusão de produtos aos pedidos; • Possibilitar a inclusão dos dados do cliente da compra; • Visualizar os dados dos pedidos; • Emitir o(s) cupom(ns) fiscal(ais). Para o cálculo do imposto do pedido, leve em consideração a seguinte regra: • Clientes do tipo Pessoa Fìsica: 32,08% • Clientes do tipo Pessoa Jurídica: 20,72% A seguir um diagrama que representa o modelo de dados do sistema: Para emissão do Cupom Fiscal, siga o modelo abaixo: 8. Escreva um programa em Java que controle as despesas com salários de funcionários e professores de uma faculdade. Construa as estruturas de dados necessárias para seu programa, que deverá atender os seguintes requisitos: a. Realizar o cadastro dos funcionários (administrativo e professor) onde deverão ser armazenados os seguintes dados: nome, data de nascimento, CPF e salário. b. Manter uma lista de funcionários para realização do cálculo da folha salarial da faculdade. Construa uma classe para organizar um vetor para armazenar os objetos que representem os funcionários, nesta classe implemente métodos para inserção, contagem de objetos e somatório dos salários de todos os objetos. c. Após a inclusão de todos os funcionários, seu programa deverá apresentar um relatório contendo a lista de funcionários e seu respectivo salário e ao final da listagem apresente o valor total de pagamento da folha salarial. d. Para cálculo dos salários dos funcionários adote a seguinte regra: i. Funcionários Administrativos: salário + 10% de bônus ii. Professores: salário + R$ 10,00 por hora aula. Aplique os conceitos de interfaces, classes abstratas e Exceptions na construção de seu programa. 00/00/0000 00:00:00 CÓD: 00000 CUPOM FISCAL ITEM CÓDIGO DESCRIÇÃO QTDE VL UNITÁRIO VL ITEM 001 1234 CAMISETA 01 25,90 25,90 002 2356 BERMUDA 02 39,90 79,80 TOTAL 105,70 DINHEIRO 105,70 TRIBUTOS R$ 33,91 (32,08%) QTDE DE ITENS NA VENDA: 2 CLIENTE: JOÃO DA SILVA Nº DOC: 000.000.000-00