1 – Analise a situação descrita abaixo: Uma empresa deseja

Propaganda
1 – Analise a situação descrita abaixo:
Uma empresa deseja construir um software para administrar as contas bancárias de uma determinada instituição
financeira. Podemos considerar que existem mecanismos básicos comuns para todos os tipos de contas como,
quando o cliente realiza um saque será descontado o CPMF. Na Conta Ouro sua implementação será diferente,
onde o cliente tem um limite especial que lhe é emprestado pelo banco. Quanto a Conta Investimento será
cobrado uma tarifa de manutenção de 10% do saldo atual.
A seguir é apresentado um diagrama de classes e pacotes do software descrevendo algumas das características
de cada:
Utilizando a linguagem Java implemente todas as classes dos diagramas acima, encapsulando
2 – Crie um programa em Java para manipular um vetor de 4 objetos da classe ContaCorrente criada na questão
número 1. Neste vetor serão armazenadas instâncias de Conta Ouro e de Conta Investimento, lidas a partir do
teclado. No final da leitura dos objetos, escreva número da conta no console de saída e informe um saque para
cada um dos objetos.. Neste momento é obrigatória a chamada do método polimórfico presente nessas classes.
Observação:
 Utilize os métodos de manipulação do objeto para escrever e ler suas propriedades, inclusive
na hora de escrevê-las na tela.
Questão 1
package contas;
public abstract class Conta {
private String nome;
private int numConta;
private double saldo;
public Conta() {}
public Conta(String nome, int numConta, double saldo) {
this.nome = nome;
this.numConta = numConta;
this.saldo = saldo;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setNumConta(int numConta) {
this.numConta = numConta;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public String getNome() {
return(nome);
}
public int getNumConta() {
return(numConta);
}
public double getSaldo() {
return(saldo);
}
public abstract void informaSaque(double retirada);
}
-package contacorrente;
import contas.*;
public class ContaCorrente extends Conta
{
private double CPMF;
public ContaCorrente(String nome, int numConta, double saldo, double CPMF)
{
super(nome, numConta, saldo);
this.CPMF = CPMF;
}
public void setCPMF(double CPMF)
{
this.CPMF=CPMF;
}
public double getCPMF()
{
return CPMF;
}
public void informaSaque(double retirada)
{
double retiradaCpmf = retirada + (retirada * CPMF);
double valor = super.getSaldo() - retiradaCpmf ;
if (valor >= 0) {
super.setSaldo(valor);
} else {
System.out.println("Saldo negativo");
}
}
}
package contacorrente;
public class ContaOuro extends ContaCorrente {
private double limite;
public ContaOuro(String nome, int numConta, double saldo, double limite ) {
super(nome, numConta, saldo,0.0);
this.limite=limite;
}
public void setLimite(double limite) {
this.limite=limite;
}
public void informaSaque(double retirada) {
double valor = super.getSaldo() - retirada;
if (valor + limite >= 0) {
super.setSaldo(valor);
} else {
System.out.println("Saldo insuficiente");
}
}
}
package contacorrente;
public class ContaInvestimento extends ContaCorrente {
public ContaInvestimento(String nome, int numConta, double saldo, double CPMF) {
super(nome, numConta, saldo, CPMF);
}
public double calcularTarifa() {
return(getSaldo()* 0.10);
}
}
Questão 2
package pbanco;
import contacorrente.*;
import contas.*;
import java.util.Scanner;
public class UsaConta {
public static void main(String[] args) {
String nome,tipo;
int conta;
double saldo;
double limite;
double taxa;
double CPMF;
double saque;
Scanner entra = new Scanner(System.in);
ContaCorrente cliente[];
cliente = new ContaCorrente[4];
for(int i=0; i< 4; i++) {
System.out.println("Nome do cliente.....:");
nome = entra.next();
System.out.println("Número da conta.....:");
conta = entra.nextInt();
System.out.println("Saldo...............:");
saldo = entra.nextDouble();
System.out.println("Tipo de conta(investimento/ouro)");
tipo = entra.next();
if (tipo.equals("investimento") ) {
System.out.println("CPMF...............:");
CPMF = entra.nextDouble();
cliente[i] = new ContaInvestimento(nome,conta,saldo,CPMF);
} else {
System.out.println("Limite...............:");
limite = entra.nextDouble();
cliente[i] = new ContaOuro(nome,conta,saldo,limite);
}
}
for(int i=0; i< 4; i++) {
System.out.println("Número da conta.....:"+cliente[i].getNumConta());
System.out.println("Informe o valor do saque:");
saque = entra.nextDouble();
cliente[i].informaSaque(saque);
}
}
}
Download