Buscar

Lista de Exercícios Estrutura de dados Java

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


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