Sie sind auf Seite 1von 5

1.

Conceitos Básicos de Programação OO: Implementar as classes a seguir:


a) Classe: ContaCorrente.
• Atributos da classe ContaCorrente:
numeroConta (inteiro) → não pode receber um valor menor ou igual a zero;
correntista (string) → não pode receber um valor nulo ou string vazia;
saldo (ponto-flutuante) → não pode manter um valor menor que zero;
• Implementar apenas um construtor recebendo valores para os atributos numeroConta e correntista da
classe ContaCorrente.
• Utilizar a técnica de encapsulamento apresentada no curso e implementar métodos get e set para todos os
atributos da classe (ver observação abaixo).
• OBS: Não implementar o método set para o atributo saldo. O valor do atributo saldo só poderá ser alterado
através dos métodos deposita, saque e transfere detalhados a seguir.
• Implementar o método boolean deposita(double valor) que deposita um valor na conta corrente. O
método retorna verdadeiro se o depósito foi realizado com sucesso ou falso em caso contrário. OBS:
Verificar se o valor informado é maior que zero.
• Implementar o método boolean saque(double valor) que realiza um saque na conta corrente. O método
retorna verdadeiro se o saque foi realizado com sucesso ou falso e caso contrário. OBS: Verificar se o valor
informado é maior que zero e se há saldo suficiente para realizar o saque.
• Implementar o método boolean transfere(double valor, ContaCorrente c2) que realiza uma transferência
de um valor da conta corrente para a conta corrente c2. O método retorna verdadeiro se a transferência foi
realizada com sucesso ou falso em caso contrário. OBS: Verificar se o valor informado é maior que zero,
se o objeto c2 não é nulo e se há saldo suficiente para realizar a transferência.
b) Implementar uma aplicação chamada AplicacaoContas que instancia dois objetos do tipo ContaCorrente, a partir
de dados informados pelo usuário. Em seguida, o programa deve oferecer um menu para o usuário com as
seguintes opções:
• Imprimir dados de uma conta. Para esta opção o usuário deverá informar o número da conta;
• Realizar depósito. Para esta opção o usuário deverá informar o número da conta e o valor para depósito;
• Realizar saque. Para esta opção o usuário deverá informar o número da conta e o valor para saque;
• Realizar transferência. Para esta opção o usuário deverá informar o número da conta origem, o número da
conta destino e o valor para transferência;
• OBS: Para as opções de depósito, saque e transferência, o programa deve imprimir na tela uma mensagem
indicando se o depósito, o saque ou a transferência foi realizada com sucesso ou não.

1
2. Conceitos Básicos de Programação OO: Implementar as classes a seguir:
a) Classe: Deducao
• Atributos da classe Deducao:
descricao (string) → não pode receber um valor nulo ou string vazia;
valor (ponto-flutuante) → não pode receber um valor menor ou igual a zero.
• Para a classe Deducao implementar apenas um construtor recebendo valores para todos os atributos.
• Utilizar a técnica de encapsulamento apresentada no curso e implementar métodos get e set para todos os
atributos.
b) Classe: ImpostoDeRenda
• Atributos da classe ImpostoDeRenda:
nomeContribuinte (string) → não pode receber um valor nulo ou string vazia;
cpf (string) → não pode receber um valor nulo ou string vazia;
rendaAnual (ponto-flutuante) → não pode receber um valor menor ou igual a zero;
deducoes (Array de objetos do tipo Deducao) → não pode manter um array nulo.
• Para a classe ImpostoDeRenda implementar apenas um construtor recebendo valores para os atributos
nomeContribuinte, cpf e rendaAnual. OBS: este construtor deverá inicializar o atributo deducoes com um
array de tamanho 3.
• Utilizar a técnica de encapsulamento apresentada no curso e implementar métodos get e set para todos os
atributos (ver observação abaixo).
• OBS: Não implementar o método set para o atributo deducoes da classe ImpostoDeRenda. O atributo
deducoes só será manipulado pelo método inserirDeducao detalhado a seguir.
• Implementar o método boolean inserirDeducao(Deducao dec) que insere um objeto do tipo Deducao no
array de deduções do ImpostoDeRenda. O método retorna verdadeiro se a dedução foi inserida no array
com sucesso e falso quando o array de deduções estiver cheio ou se o objeto dec passado como parâmetro
é nulo.
• Implementar o método double calculaImposto( ) que retorna o valor do imposto de renda do contribuinte
segundo a seguinte fórmula:
IR = ((rendaAnual – SOMA(deduções)) * Alíquota)
Renda Anual (R$) Alíquota
0,00 a 13968,00 0%
13968,01 a 27912,00 15 %
Acima de 27912,00 27,5 %
c) Implementar uma aplicação chamada AplicacaoImpostoDeRenda que instancia um objeto do tipo
ImpostoDeRenda, a partir do nome do contribuinte, do CPF e da renda anual informados pelo usuário. Em seguida,
o programa deve oferecer um menu para o usuário com as seguintes opções:
• Incluir dedução. O usuário deverá informar os dados da dedução a ser inserida na declaração de imposto.
• Imprimir resumo da declaração de imposto de renda. Nesta opção, o programa deve imprimir os valores de
todos os atributos do objeto ImpostoDeRenda instanciado (incluindo as deduções – se houverem), bem
como imprimir o valor do seu imposto de renda calculado.
3. Conceitos Básicos de Programação OO; Métodos Estáticos: Implementar as classes a seguir:
a) Classe: Data
• Atributos da classe Data:

2
dia (inteiro) → não pode receber um valor menor que 1 ou maior que 31;
mes (inteiro) → não pode receber um valor menor que 1 ou maior que 12;
ano (inteiro) → não pode receber um valor menor que 2000.
b) Classe: Departamento
• Atributos da classe Departamento:
codigo (inteiro) → não pode receber um valor menor ou igual a 0;
nome (string) → não pode receber um valor nulo ou string vazia.
c) Classe: Professor
• Atributos da classe Professor:
codigo (inteiro) → não pode receber um valor menor que 0;
nome (string) → não pode receber um valor nulo ou string vazia;
dataAdmissao (tipo Data) → não pode receber um valor nulo;
departamento (tipo Departamento) → não pode receber um valor nulo.
d) Classe: Disciplina
• Atributos da classe Disciplina:
nome (string) → não pode receber um valor nulo ou string vazia;
curso (string) → não pode receber um valor nulo ou string vazia;
professor (tipo Professor) → não pode receber um valor nulo;
quantidadeAlunos (inteiro) → não pode receber um valor menor que 30.
e) Para todas as classes especificadas acima:
• Implementar apenas um construtor recebendo valores para todos os atributos.
• Utilizar a técnica de encapsulamento apresentada no curso e implementar métodos get e set para todos os
atributos.
• Implementar o método String toString( ) que retorna uma representação String de um objeto da classe.
f) Implementar uma aplicação chamada AplicacaoDisciplina que instancia um objeto do tipo Disciplina, a partir de
dados informados pelo usuário.
• Na classe AplicacaoDisciplina implemente os seguintes métodos estáticos:
void alteraDadosGerais(Disciplina d). Que permite alterar o nome, o curso e a quantidade de alunos da
disciplina;
void alteraProfessor(Disciplina d). Que permite alterar o professor da disciplina;
void imprime(Disciplina d). Que permite imprimir todos os dados da disciplina.
• Em seguida, a aplicação deve oferecer um menu permitindo que o usuário escolha se deseja alterar os
dados gerais da disciplina, alterar o professor da disciplina ou imprimir os dados da disciplina.

4. Conceitos básicos de Programação OO: Implementar as classes a seguir:


a) Classe: Livro
• Atributos da classe Livro:
codigo (inteiro) → não pode receber um valor menor que zero;
titulo (string) → não pode receber um valor nulo ou string vazia;
3
autor (string) → não pode receber um valor nulo ou string vazia.
• Implementar apenas um construtor recebendo valores para todos os atributos.
• Utilizar a técnica de encapsulamento apresentada no curso e implementar métodos get e set para todos os
atributos.
b) Classe: CadastroLivros
• Atributos da classe CadastroLivros:
livros (Array de objetos do tipo Livro) → não pode manter um array nulo.
quantLivros (inteiro) → Representa a quantidade de livros cadastrados e não pode manter um valor menor
que zero.
• Implementar apenas um construtor default inicializando o atributo livros com um array de tamanho 100 e o
atributo quantLivros com o valor 0.
• Utilizar a técnica de encapsulamento apresentada no curso e implementar apenas os métodos get para todos
os atributos (ver observação abaixo).
• OBS: Não implementar os métodos set para os atributos livros e quantLivros da classe CadastroLivros. Os
atributos da classe CadastroLivros serão manipulados pelos métodos inserir, buscar, remover e alterar
detalhados a seguir.
• Métodos da classe CadastroLivros:
boolean inserir(Livro liv) que insere um objeto do tipo Livro no array de livros da classe CadastroLivros.
Para cada livro inserido, o atributo quantLivros é incrementado de 1. O método retorna verdadeiro se o livro foi
inserido com sucesso e falso em uma das três situações seguintes: (1) Quando o array de livros estiver cheio;
(2) Se o objeto liv passado como parâmetro é nulo; ou, (3) Se já existe um livro cadastrado com o mesmo
código.
Livro buscar(int cod) que retorna o objeto do tipo Livro identificado pelo código informado como parâmetro.
Caso o objeto Livro não seja encontrado retornar o valor null.
boolean remover(int cod) que remove o objeto do tipo Livro identificado pelo código informado como
parâmetro. Para cada livro removido, o atributo quantLivros é decrementado de 1. O método retorna verdadeiro
se o livro foi removido com sucesso e falso em caso contrário.
boolean alterar(Livro novoLivro) que altera o objeto do tipo Livro identificado pelo código do objeto Livro
informado como parâmetro. O método retorna verdadeiro se o livro foi alterado com sucesso e falso em caso
contrário. A alteração de um livro consiste em trocar o objeto Livro, previamente cadastrado com o mesmo
código, pelo novo objeto Livro informado como parâmetro. OBS: Verificar se o objeto novoLivro passado
como parâmetro não é nulo.
c) Implementar uma aplicação chamada AplicacaoCadastroLivros que cria um objeto do tipo CadastroLivros e
oferece um menu com as opções: inserir, buscar, remover, alterar, listar todos os livros cadastrados e sair,
permitindo que o usuário possa cadastrar, buscar, excluir, alterar e listar dados sobre livros.

4
5. Herança; Métodos Estáticos: Implementar as classes a seguir:
a) Especificações das classes Funcionário, Gerente e Vendedor:
• Atributos:
Numéricos: não podem receber valores menores
ou iguais a zero;
Strings: não podem receber valores nulos ou
strings vazias.
• Apenas um construtor para cada classe recebendo valores para todos os seus atributos;
• Utilizar a técnica de encapsulamento apresentada no curso e implementar os métodos get e set para todos
os atributos das classes.
b) Classe: CadastroFuncionarios
• Atributos da classe CadastroFuncionarios:
funcionarios (Array de objetos do tipo Funcionario) → não pode manter um array nulo.
quantFuncionarios (inteiro) → Representa a quantidade de funcionários cadastrados e não pode manter
um valor menor que zero.
• Implementar apenas um construtor default inicializando o atributo funcionarios com um array de tamanho
50 e o atributo quantFuncionarios com o valor 0.
• Utilizar a técnica de encapsulamento apresentada no curso e implementar apenas os métodos get para todos
os atributos (ver observação abaixo).
• OBS: Não implementar os métodos set para os atributos funcionarios e quantFuncionarios da classe
CadastroFuncionarios. Os atributos da classe CadastroFuncionarios serão manipulados pelos métodos
inserir e buscar detalhados a seguir.
• Métodos da classe CadastroFuncionarios:
boolean inserir(Funcionario func) que insere um objeto do tipo Funcionario no array de funcionários da classe
CadastroFuncionarios. Para cada funcionário inserido, o atributo quantFuncionarios é incrementado de 1. O método
retorna verdadeiro se o funcionário foi inserido com sucesso e falso em uma das três situações seguintes: (1) Quando o
array de funcionários estiver cheio; (2) Se o objeto func passado como parâmetro é nulo; ou, (3) Se já existe um
funcionário cadastrado com o mesmo código.
Funcionario buscar(int cod) que retorna o objeto do tipo Funcionario identificado pelo código informado como
parâmetro. Caso o objeto Funcionario não seja encontrado retornar o valor null.
c) Implementar uma aplicação chamada AplicacaoCadastroFuncionarios que cria um objeto do tipo CadastroFuncionarios e
oferece um menu com as opções: inserir funcionário, buscar funcionário, listar folha de pagamento e sair. Na opção de menu
inserir permita que o usuário decida se ele quer cadastrar um Gerente ou um Vendedor. Na opção de menu listar folha de
pagamento, o programa deve chamar um método estático, implementado na classe AplicacaoCadastroFuncionarios, que
imprime na tela a folha de pagamento da empresa de acordo com a tabela exemplo abaixo:
Folha de pagamento da empresa:
Nome: Salário: Função:
João R$ 2000,00 Gerente – Departamento: Compras
Maria R$ 2000,00 Gerente – Departamento: Vendas
Ana R$ 500,00 Vendedor – Comissão: 5 %
José R$ 500,00 Vendedor – Comissão: 5 %
Total da folha de pagamento: R$ 5000,00
Assinatura do método: void imprimeFolha(Funcionario[ ] func);

Das könnte Ihnen auch gefallen