Está en la página 1de 3

Estrutura de Dados com Orientao A Objetos

1a Lista de Exerccios
Prof. Dr. Artur Henrique Kronbauer

1. Crie uma classe conta bancria com os dados: nome do titular, nmero da conta e valor na conta
corrente. Crie um construtor para setar os dados e mtodos para imprimir o seu contedo, e fazer
depsitos e retiradas do valor da conta.

2. Crie uma classe com um mtodo principal capaz de ler informaes do teclado para instanciar um
objeto da classe ContaBancaria e utilize atravs do objeto os mtodos definidos na classe.

3. Escreva uma classe em Java que simule uma calculadora bem simples. Essa classe deve ter como
atributos duas variveis double e um char. Deve possuir um construtor que recebe como parmetro
dois nmeros e um caracter, correspondente a uma das operaes bsicas (+, -, *, /). Deve ter um
mtodo para calcular a operao desejada e um para imprimir o resultado. O programa deve
considerar divises por zero como sendo erros, e imprimir uma mensagem adequada.

4. Escreva uma classe EntradaDeCinema com a seguinte estrutura (dados):


Data dataDoFilme
float horrio
int sala
float valor

E com as seguintes aes (mtodos):


Construtor: com a finalidade de inicializar todos os atributos.
CalculaDesconto: que deve receber como parmetro a data de nascimento do cliente (do tipo
Data) e caso seja menor de 12 anos, deve ser dado um desconto de 50% no valor normal.
CalculaDesconto: que deve receber como parmetro a data de nascimento do cliente (do tipo
Data) e o nmero de sua carteira de estudante (do tipo int). Se o estudante tiver idade entre
12 e 15 anos, deve ser dado um desconto de 40%, de 16 a 20 um desconto de 30% e mais
que 20 anos um desconto de 20% no valor normal.
CalculaDescontoHorrio: esse mtodo deve dar um desconto de 10% sobre o valor aferido
aps todas as outras opes de desconto, caso o horrio do filme seja antes das 16 horas.
toString(): que deve imprimir todos os dados do ingresso.

5. Desenvolva uma aplicao que leia os dados necessrios para instanciar e imprimir o ingresso para
clientes normais, menores de 12 anos e estudantes.
6. Desenvolver um sistema de cadastro de Pessoas, Alunos e Professores.

Classes envolvidas

Pessoa

Aluno Professor

Estrutura
Classe Pessoa:
Atributos: String nome, telefone, CPF;
int idade;
Mtodos:
public pessoa(String nome, String telefone, String CPF, int idade)
public pessoa(String nome, int idade)
public String getNome()
public String getTelefone()
public String getCPF()
public int getIdade()

Classe Aluno extends Pessoa:


Atributos: int matricula;

Mtodos: public aluno(String nome, String telefone, String CPF, int idade, int matricula)

Classe Professor extends Pessoa:


Atributos: float salario;
Mtodos: public Unifacs(String nome, String telefone, String CPF, int idade, float salario)
public void calculaSalario()

Classe Estrutura:
a) Responsvel em ler todas as informaes para o cadastramento de Pessoas, Alunos e Professores.
b) Responsvel em mostrar as informaes existentes nos objetos instanciados.

7. Crie uma aplicao grfica que receba o nome e a senha de um usurio e notifique se a senha est
certa ou errada. Para isso, crie um Label Nome e sua respectiva caixa de texto, um Label Senha e
sua respectiva caixa de texto. Um Boto Entrar. Se o nome e a senha estiverem corretas, o
programa dever imprimir "Senha correta" caso contrrio Senha Errada.

8. Fazer um programa que leia 10 valores reais via teclado armazenando em um vetor. Em seguida,
verifique se existe algum elemento maior do que 50 escrevendo na tela as posies onde estes se
encontram no vetor.

9. Escrever um programa que, para um dado vetor de inteiros A de 12 elementos, construa um vetor P
formado pelos ndices dos elementos pares de A. Assuma que existe 5 nmeros pares no vetor A.
Exemplo: Para A = (1, 3, 6, 7, 8, 4, 7, 9, 10, 16, 21, 25), o programa deve construir P = ( 2, 4, 5, 8, 9).

10. Modifique a classe Nodo, para que o atributo info passe a ser uma String. Aps modifique a classe
ListaEncadeada para que se adapte a mudana realizada na classe Nodo. Permita que sejam includas
Strings iguais na mesma lista encadeada e ordene as informaes de acordo com a ordem de entrada
na lista, ou seja, as incluses devem ser realizadas sempre no final da lista.
Dica: A classe Nodo e a classe ListaEncadeada foram escritas nos slides.
11. Modifique a classe Nodo, para que o atributo info passe a ser um char. Aps modifique a classe
ListaSimplesmenteEncadeada para que se adapte a mudana realizada na classe Nodo. Permita que
sejam includos caracteres iguais na mesma lista encadeada. Escreva um programa que leia duas
sequncias de caracteres, equivalentes a duas palavras, armazenando-as em duas listas encadeadas
distintas (cada letra deve ser um nodo da lista). Aps, remova as vogais existentes nas duas listas e,
em seguida, determine se elas tm as mesmas consoantes.

12. Escreva um programa com um procedimento para inverter uma lista duplamente encadeada, de modo
que o ltimo elemento se torne o primeiro, o penltimo o segundo e assim por diante.

13. Escreva um programa que receba nmeros inteiros em uma lista duplamente encadeada, no vazia,
usando os seguintes critrios:
a) Para cada entrada N, coloque N no final da lista.
b) Percorra a lista do final para o incio apagando todos os ns que so maiores do que N.
Obs: Implemente um menu de opes.

14. Escreva um programa que leia o nome e a nota de n alunos, armazene em uma lista duplamente
encadeada, mostre o nome e a nota do melhor aluno (varrendo a lista da direita para a esquerda),
mostre o nome e a nota do pior aluno (varrendo a lista da esquerda para a direita) e a mdia geral.
Obs: Pegue sempre o primeiro nome encontrado no caso de duas ou mais notas serem iguais.

15. Escreva um programa para determinar se uma string de caracteres de entrada da forma xCy , onde x
uma string consistindo das letras A e B, e y o inverso de x (isto , se x= ABABBA, y deve
equivaler a ABBABA). Em cada ponto, apenas o prximo caracter da string pode ser lido.
Obs: Implemente as strings em duas listas duplamente encadeadas.

16. Modifique os mtodos da classe ListaSimplesmenteEncadeada para que essa atenda as definies de
uma lista circular simplesmente encadeada. Desenvolva uma aplicao para testar as novas rotinas.

17. Modifique os mtodos da classe ListaDuplamenteEncadeada para que essa atenda as definies de
uma lista circular duplamente encadeada. Desenvolva uma aplicao para testar as novas rotinas.

18. Escreva um programa que possa gerar nmeros aleatrios e distribui-los em duas filas. As filas dos
pares e a fila dos mpares. A gerao de nmeros aleatrios deve acabar quando for gerado um
nmero primo. Posteriormente retire de forma intercalada os elementos das filas e mostre na tela.
Obs: Use fila em estrutura esttica.

19. Escreva um programa que possa gerar nmeros aleatrios e distribui-los em duas filas. As filas dos
pares e a fila dos mpares. A gerao de nmeros aleatrios deve acabar quando for gerado um
nmero primo. Posteriormente retire de forma intercalada os elementos das filas e mostre na tela.
Obs: Use fila em estrutura dinmica.

También podría gustarte