Lista OO
Lista OO
Lista OO
1. Crie um modelo para o restaurante caseiro das transparncias. Imagine que o Restaurante Caseiro
Hipottico facilite aos seus clientes a diviso dos valores da conta pelo nmero de clientes. Que
dados adicionais deveriam ser representados pelo modelo? Quais operaes deveriam ser criadas
e/ou modificadas?
2. Escreva um modelo para representar uma lmpada que est venda em um supermercado. Que
dados devem ser representados por este modelo?
3. Imagine uma lmpada que possa ter trs estados: apagada, acesa e meia-luz. Usando o modelo
Lmpada como base, escreva o modelo LampadaTresEstados.
4. Inclua, no modelo Lmpada, uma operao estLigada que retorne verdadeiro se a lmpada
estiver ligada e falso, caso contrrio.
5. Crie um modelo Livro que represente os dados bsicos de um livro, sem se preocupar com a sua
finalidade.
6. Usando o resultado do exerccio anterior como base, crie um modelo LivroDeLivraria que
represente os dados bsicos de um livro que est venda em uma livraria.
7. Usando o resultado do modelo Livro como base, crie um modelo LivroDeBiblioteca que
represente os dados bsicos de um livro de uma biblioteca, que pode ser emprestado a leitores.
6. Modifique a classe Data criada anteriormente para conter um construtor capaz de setar o dia, ms
e ano e um mtodo capaz de imprimir a data.
7. Crie uma classe com um mtodo principal capaz de ler informaes do teclado para instnciar trs
objetos da classe professor e utilizar o mtodo imprime_dados.
8. O valor de xy pode ser calculado como sendo x multiplicado por si mesmo y vezes (se y for
inteiro). Escreva uma classe chamada SeriesMatemticas que contenha um construtor para
inicializar x e y, um mtodo chamado elevadoA que calcule e retorne o resultado de xy , e um
mtodo chamado imprimeResultado que mostre o resultado obtido. Obs: Use o comando while.
9. Acrescente a classe SeriesMatematicas o mtodo piQuadradoSobre8 que calcule a srie (1/1 2)
+ (1/32) + (1/52) + (1/72) + (1/92) + ... Evidentemente a srie no poder ser calculada
infinitamente, devendo parar depois de N termos, sendo que o valor de N deve ser fornecido como
parmetro ao mtodo. Obs: Use o comando do-while.
10. Acrescente a classe SeriesMatematicas o mtodo calculaPi que calcule a srie 2 x (2/1) x
(2/3) x (4/3) x (4/5) x (6/5) x (6/7)... Evidentemente a srie no poder ser calculada
infinitamente, devendo parar depois de N termos, sendo que o valor de N deve ser fornecido como
parmetro ao mtodo. O resultado da srie deve retornar um valor aproximado a PI.
11. Escreva uma classe chamada Fibonacci que tenha um mtodo que receba como parmetro um
nmero inteiro para indicar a quantidade de termos que se quer calcular e imprimir da srie.
Srie: 1 + 1 + 2 + 3 + 5 + 8 + 13 + ...
12. Acrescente a classe Fibonacci um mtodo que receba como parmetro um nmero inteiro e
retorne verdadeiro se o nmero pertence a srie e falso em caso contrrio.
13. Escreva uma classe chamada Primos que tenha um mtodo para identificar se um determinado
nmero primo.
14. Acrescente a classe Primo um mtodo que receba dois nmeros como parmetros e possa
mostrar todos os primos no intervalo indicado pelos dois nmeros. Envie uma mensagem de
intervalo errado caso o primeiro nmero seja menor que o segundo.
Escreva uma classe chamada VetorDeChar que tenha como atributo um vetor de char e um
construtor que receba como parmetro uma frase. No construtor deve ser passada a frase para o
vetor de char.
Dica: Use o mtodo toCharArray da classe String para colocar os elementos da frase no vetor.
Exemplo: char vetor[] = frase.toCharArray();
Acrescente os seguintes mtodos a classe:
a. um mtodo que retorne o nmero de vogais existentes na frase.
b. um mtodo que retorne o nmero palavras iguais na frase.
3. Escreva uma classe Funcionrio com os atributos matricula (int), nome (String), departamento
(int), salrio (float) e funo (String). Adicione na classe um construtor que receba todos os
parmetros para inicializar os dados de um funcionrio.
4. Escreva uma classe SetorPessoal que tenha como atributo um vetor da classe Funcionrio e
uma varivel inteira para ser usada como ndice do vetor. Crie um construtor que receba como
parmetro o nmero de funcionrios de uma empresa para instanciar o vetor e inicialize o ndice
do vetor com zero. Acrescente os seguintes mtodos a classe:
a. um mtodo para adicionar funcionrios no vetor definido na classe;
b. um mtodo que possa imprimir a folha de pagamento informando o nome dos
funcionrios e o seus respectivos salrios.
c. um mtodo que possa retornar o valor total da folha de pagamento.
d. um mtodo que possa retornar o nome do funcionrio que recebe o maior salrio.
e. um mtodo que possa receber como parmetro o nmero de um determinado
4. Escreva uma classe continente. Um continente possui um nome e um conjunto de pases, que dele
fazem parte. Desenvolva um mtodo que fornea a dimenso total do continente.
5. Um avio representado pelo seu prefixo, pelo nome do seu modelo, pelo nome do seu fabricante,
pela quantidade de assentos e pela quantidade de assentos ocupados.
Escreva uma classe que represente um avio e desenvolva um mtodo que informe qual o prefixo
da aeronave.
Um aeroporto representado pelo seu cdigo e seu nome (ex.: SSA: Salvador, BSB: Braslia. etc),
por um status que informa se ele um aeroporto internacional ou no, uma lista de outros
aeroportos para os quais partam vos diretos partir dele e uma lista de outros aeroportos de onde
venham vos para ele. Alm disto possui uma lista de avies que esto atualmente no ptio.
Escreva uma classe que contemple os atributos apresentados e mais os seguintes membros:
a) Um construtor que inicialize o cdigo do aeroporto e seu nome.
b) Mtodos que verifiquem e alterem a situao relativa ao fato do aeroporto ser internacional ou
no.
c) Um mtodo que verifique e informe se um aeroporto igual a ele:
- public boolean equals (Aeroporto aeroposto)
- Dois aeroportos so iguais se o seu cdigo for coincidente.
d) Um mtodo que receba um prefixo de avio como parmetro e informe se a aeronave est
pousada nele.
e) Um mtodo que receba um outro aeroporto como parmetro e verifique se existe alguma forma
de se chegar nele. Para isto, o aeroporto deve verificar se ele possui vo partindo para o aeroporto
desejado, e caso no saia, se existe alguma forma de chegar nele partir dos aeroportos de onde
sai
- public boolean possuiRota(Aeroporto aeroporto)
Obs: A quantidade mxima de aeronaves que um aeroporto pode ter em terra igual a 100 e a
quantidade mxima de outros aeroportos com os quais o aeroporto pode ter linhas saindo
e chegando 100.
6. Fornea o esquema de classes em Java para um programa funcional para a seguinte situao:
Uma biblioteca possui um nome, um endereo e armazena um conjunto de publicaes.
Atualmente, as publicaes disponveis so os artigos e os livros. Todas as publicaes possuem
data de publicao, um ttulo, uma lista de outras publicaes a que elas fazem referncia e o
conjunto de autores da publicao. So atributos relevantes para um autor o seu nome e sua
titulao. So atributos relevantes para artigos o seu ttulo, a sua data de publicao, o seus
autores, as outras publicaes que ele faz referncia, a data de sua publicao e o seu resumo. Para
os livros relevante armazenar seu ttulo, sua data de publicao, as outras publicaes que ele
referencia, seus autores, o nmero da edio, o nome da editora e o seu ISBN. As publicaes so
forma genricas de se referir a uma grande categoria de classes, mas na biblioteca no existem
objetos publicaes; o que ela vai efetivamente armazenar so livros ou artigos. Futuramente a
biblioteca pretende operar com outros tipos de publicaes como manuais, teses e etc.
Assuma que:
Uma biblioteca possui no mximo 65535 publicaes;
Qualquer publicao (livros e artigos inclusos) possui no mximo 255 autores.
Qualquer publicao (livros e artigos inclusos) faz referncia a no mximo 255 outras
publicaes.
Obs: necessrio definir apenas os atributos das classes
7. Implemente uma classe chamada Arquivo que possua o controle de acesso RWX dos Sistemas
Unix:
Classes envolvidas
Pessoa
Notas
Aluno
TPI
Professor
FRB
FIB
Classe pessoa:
Atributos: String nome, telefone, endereco, cpf;
int identidade, idade;
Mtodos: public pessoa(String n, String t, String e, String c, int id, int i)
public pessoa(String n, int i)
public String retnome()
public String rettelefone()
public String retendereco()
Artur Henrique Kronbauer