ARRAYS, HERANÇA E FOR

13/06/2020

0

Alguém poderia me ajudar em uma questão.

O programa está compilando, porém, mesmo eu mudando o número de cpf, deixando igual de dois clientes ele ainda adiciona, mas não deveria acontecer isso.

Instanciei os clientes do meu arranjo no método main.

Classe Gerente

public class Gerente extends Pessoa implements InterfaceGerente{
private static final String tipo = "G";
private Cliente[] clientes;
private int numClientes;
private int valorContaCorrente;
private int valorDaDivida;


Gerente(String nome, int cpf){
super(nome, cpf);
clientes = new Cliente[20];
numClientes = 0;
}

String retornaTipo() {
return tipo;
}

void imprimirClientes(){
Cliente atual;
System.out.println("\tNumero de clientes: " + numClientes);
for (int c=0; c < numClientes; c++){
atual = clientes[c];
System.out.println("\t" + (c+1) + "\t" + atual.retornaTipo() + "\t" + atual.nome + "\t" + atual.cpf + "\t" + atual.getValorContaCorrente() + "\t" + atual.getValorDaDivida() + "\t" + atual.negativado());
}
}


public boolean adicionarCliente(Cliente cliente) {

if ( this.numClientes == 20) {
return false;
}
for ( int j=0; j < numClientes; j++) { // Perorrer o arranjo.  
if ( this.clientes[j].cpf == cliente.cpf ) {
return false;
    }
}
for(int k=0; k < numClientes; k++) {
if( this.clientes[k].cpf != cliente.cpf) {
clientes[numClientes] = cliente;
numClientes += 1;
return true;
}
}
return true;
 }

public static void main(String[] args){

Cliente c1 = new Cliente("Cliente A", 27855, 10000);
Cliente c2 = new Cliente("Cliente B", 24564, 10000);
Cliente c3 = new Cliente("Cliente C", 27444, 10000);
Cliente c4 = new Cliente("Cliente D", 2222, 10000);
Cliente c5 = new Cliente("Cliente E", 2222, 10000);
Cliente c6 = new Cliente("Cliente F", 2222, 10000);
Cliente c7 = new Cliente("Cliente G", 2222, 10000);
Cliente c8 = new Cliente("Cliente H", 2222, 10000);
Cliente c9 = new Cliente("Cliente I", 2222, 10000);
Cliente c10 = new Cliente("Cliente J", 2232, 10000);
Cliente c11 = new Cliente("Cliente K", 2222, 10000);
Cliente c12 = new Cliente("Cliente L", 2222, 10000);
Cliente c13 = new Cliente("Cliente M", 2222, 10000);
Cliente c14 = new Cliente("Cliente N", 2222, 10000);
Cliente c15 = new Cliente("Cliente O", 2222, 10000);
Cliente c16 = new Cliente("Cliente P", 2222, 10000);
Cliente c17 = new Cliente("Cliente Q", 2222, 10000);
Cliente c18 = new Cliente("Cliente R", 2222, 10000);
Cliente c19 = new Cliente("Cliente S", 2222, 10000);
Cliente c20 = new Cliente("Cliente T", 2222, 10000);


if (ger1.adicionarCliente(c1)) System.out.println("Cliente ''"  +c1.nome + "'' adicionado corretamente.");
else System.out.println("Cliente ''"  + c1.nome + "'' nao pode ser adicionado.");


}
}


Classe Cliente

 Cliente(String nome, int cpf, int valorInicial){
    super(nome, cpf);
    valorContaCorrente = valorInicial;
    valorDaDivida = 0;
    }
Lucas

Lucas

Responder

Post mais votado

13/06/2020

Alguém poderia me ajudar em uma questão.

O programa está compilando, porém, mesmo eu mudando o número de cpf, deixando igual de dois clientes ele ainda adiciona, mas não deveria acontecer isso.

Instanciei os clientes do meu arranjo no método main.

Classe Gerente

public class Gerente extends Pessoa implements InterfaceGerente{
private static final String tipo = "G";
private Cliente[] clientes;
private int numClientes;
private int valorContaCorrente;
private int valorDaDivida;


Gerente(String nome, int cpf){
super(nome, cpf);
clientes = new Cliente[20];
numClientes = 0;
}

String retornaTipo() {
return tipo;
}

void imprimirClientes(){
Cliente atual;
System.out.println("\\tNumero de clientes: " + numClientes);
for (int c=0; c < numClientes; c++){
atual = clientes[c];
System.out.println("\\t" + (c+1) + "\\t" + atual.retornaTipo() + "\\t" + atual.nome + "\\t" + atual.cpf + "\\t" + atual.getValorContaCorrente() + "\\t" + atual.getValorDaDivida() + "\\t" + atual.negativado());
}
}


public boolean adicionarCliente(Cliente cliente) {

if ( this.numClientes == 20) {
return false;
}
for ( int j=0; j < numClientes; j++) { // Perorrer o arranjo.  
if ( this.clientes[j].cpf == cliente.cpf ) {
return false;
    }
}
for(int k=0; k < numClientes; k++) {
if( this.clientes[k].cpf != cliente.cpf) {
clientes[numClientes] = cliente;
numClientes += 1;
return true;
}
}
return true;
 }

public static void main(String[] args){

Cliente c1 = new Cliente("Cliente A", 27855, 10000);
Cliente c2 = new Cliente("Cliente B", 24564, 10000);
Cliente c3 = new Cliente("Cliente C", 27444, 10000);
Cliente c4 = new Cliente("Cliente D", 2222, 10000);
Cliente c5 = new Cliente("Cliente E", 2222, 10000);
Cliente c6 = new Cliente("Cliente F", 2222, 10000);
Cliente c7 = new Cliente("Cliente G", 2222, 10000);
Cliente c8 = new Cliente("Cliente H", 2222, 10000);
Cliente c9 = new Cliente("Cliente I", 2222, 10000);
Cliente c10 = new Cliente("Cliente J", 2232, 10000);
Cliente c11 = new Cliente("Cliente K", 2222, 10000);
Cliente c12 = new Cliente("Cliente L", 2222, 10000);
Cliente c13 = new Cliente("Cliente M", 2222, 10000);
Cliente c14 = new Cliente("Cliente N", 2222, 10000);
Cliente c15 = new Cliente("Cliente O", 2222, 10000);
Cliente c16 = new Cliente("Cliente P", 2222, 10000);
Cliente c17 = new Cliente("Cliente Q", 2222, 10000);
Cliente c18 = new Cliente("Cliente R", 2222, 10000);
Cliente c19 = new Cliente("Cliente S", 2222, 10000);
Cliente c20 = new Cliente("Cliente T", 2222, 10000);


if (ger1.adicionarCliente(c1)) System.out.println("Cliente ''"  +c1.nome + "'' adicionado corretamente.");
else System.out.println("Cliente ''"  + c1.nome + "'' nao pode ser adicionado.");


}
}


Classe Cliente

 Cliente(String nome, int cpf, int valorInicial){
    super(nome, cpf);
    valorContaCorrente = valorInicial;
    valorDaDivida = 0;
    }



Fala Lucas, beleza?

cara, mas em que parte do seu programa você está incluindo o restante dos clientes? na sua função main() pelo que percebi você está incluindo somente o c1.

Ricardo Arraes

Ricardo Arraes
Responder

Mais Posts

13/06/2020

Lucas


Fala Lucas, beleza?

cara, mas em que parte do seu programa você está incluindo o restante dos clientes? na sua função main() pelo que percebi você está incluindo somente o c1.


Tô bem sim Ricardo, obrigado por me responder rs, o senhor é incrivel.
Testo nesse método ExecutaBanco, eu tava fazendo uns testes na classe gerente ai não consegui copiar o restante do código.

Obter empréstimo, Realizar Saque, Pagar empréstimo, Negativado e Cobrar todos os Empréstimos estão funcionando corretamente.

Apenas esse adicionar cliente e gerente que deveria funcionar, mas não está indo.

Ele tinha que usar o cpf como um código para distinguir uma pessoa da outra, pq se eu adicionar a primeira pessoa ela vai ter um código, ai quando eu adicionar a segunda pessoa ela vai ter outro código diferente e ser adicionado normalmente e meu arranjo precisa ter 2 posições ocupadas já, como eu coloquei ali clientes[numClientes] = cliente; depois se o terceiro cliente q eu tentar adicionar tiver um código igual o primeiro ele não pode adicionar o terceiro.

public class ExecutaBanco {
public static void main(String[] args){


System.out.println("*** Instanciando Clientes **************************************");
Cliente c1 = new Cliente("Cliente A", 222222226, 10000);// Nome, CPF, Valor DA CONTA CORRENTE.
Cliente c2 = new ClienteEspecial("Cliente B", 333336760, 2000);
Cliente c3 = new Cliente("Cliente C", 44444, 30000);
Cliente c4 = new Cliente("Cliente D", 44444, 10);

System.out.println("*** Instanciando Gerentes **************************************");
Gerente ger1 = new Gerente("Gerente 1", 12345); //Nome e CPF.
Gerente ger2 = new Gerente("Gerente 2", 12121);

System.out.println("*** Instanciando um Banco **************************************");
Banco meuBanco = new Banco();


System.out.println("*** Adicionando Clientes ao Gerente 1 **************************");

if (ger1.adicionarCliente(c1)) System.out.println("Cliente '" +c1.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c1.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c2)) System.out.println("Cliente '" +c2.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c2.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c2)) System.out.println("Cliente '" +c2.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c2.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c3)) System.out.println("Cliente '" + c3.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c3.nome + "' nao pode ser adicionado.");

System.out.println("*** Adicionando Clientes ao Gerente 2 **************************");

if (ger2.adicionarCliente(c3)) System.out.println("Cliente '" + c3.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c3.nome + "' nao pode ser adicionado.");

if (ger2.adicionarCliente(c4)) System.out.println("Cliente '" + c4.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c4.nome + "' nao pode ser adicionado.");

System.out.println("*** Adicionando Gerentes ao Banco ******************************");

meuBanco.adicionarGerente(ger1);
meuBanco.adicionarGerente(ger2);

meuBanco.imprimir();


System.out.println("*** Testando o metodo obterEmprestimo **************************");

if (c4.obterEmprestimo(20000)) System.out.println("Cliente '" + c4.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c4.nome + "' nao obteve o emprestimo solicitado.");


if (c4.obterEmprestimo(20000)) System.out.println("Cliente '" + c4.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c4.nome + "' nao obteve o emprestimo solicitado.");


if (c2.obterEmprestimo(60000)) System.out.println("Cliente '" + c2.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao obteve o emprestimo solicitado.");


if (c2.obterEmprestimo(20000)) System.out.println("Cliente '" + c2.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao obteve o emprestimo solicitado.");


meuBanco.imprimir();

System.out.println("*** Testando o metodo realizarSaque ****************************");

if (c2.realizarSaque(12345)) System.out.println("Cliente '" + c2.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao pode realizar o saque solicitado.");

if (c2.realizarSaque(12345)) System.out.println("Cliente '" + c2.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao pode realizar o saque solicitado.");

if (c1.realizarSaque(10000)) System.out.println("Cliente '" + c1.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c1.nome + "' nao pode realizar o saque solicitado.");

if (c1.realizarSaque(1)) System.out.println("Cliente '" + c1.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c1.nome + "' nao pode realizar o saque solicitado.");


meuBanco.imprimir();



System.out.println("*** Testando o metodo pagarEmprestimo **************************");
if (c1.pagarEmprestimo(100)) System.out.println("Cliente '" + c1.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c1.nome + "' nao pode pagar (parte de) sua divida.");


if (c2.pagarEmprestimo(100)) System.out.println("Cliente '" + c2.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c2.nome + "' nao pode pagar (parte de) sua divida.");

if (c3.pagarEmprestimo(100)) System.out.println("Cliente '" + c3.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c3.nome + "' nao pode pagar (parte de) sua divida.");

if (c4.pagarEmprestimo(100)) System.out.println("Cliente '" + c4.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c4.nome + "' nao pode pagar (parte de) sua divida.");



meuBanco.imprimir();

System.out.println("*** Testando o metodo cobrarTodosEmprestimos *******************");

ger1.cobrarTodosEmprestimos();
meuBanco.imprimir();

ger2.cobrarTodosEmprestimos();
meuBanco.imprimir();

}
}




Responder

13/06/2020

Lucas


Fala Lucas, beleza?

cara, mas em que parte do seu programa você está incluindo o restante dos clientes? na sua função main() pelo que percebi você está incluindo somente o c1.


Acabei esquecendo de editar.

public class ExecutaBanco {
public static void main(String[] args){


System.out.println("*** Instanciando Clientes **************************************");
Cliente c1 = new Cliente("Cliente A", 222222226, 10000);// Nome, CPF, Valor DA CONTA CORRENTE.
Cliente c2 = new ClienteEspecial("Cliente B", 333336760, 2000);
Cliente c3 = new Cliente("Cliente C", 44444, 30000);
Cliente c4 = new Cliente("Cliente D", 44444, 10);

System.out.println("*** Instanciando Gerentes **************************************");
Gerente ger1 = new Gerente("Gerente 1", 12345); //Nome e CPF.
Gerente ger2 = new Gerente("Gerente 2", 12121);

System.out.println("*** Instanciando um Banco **************************************");
Banco meuBanco = new Banco();


System.out.println("*** Adicionando Clientes ao Gerente 1 **************************");

if (ger1.adicionarCliente(c1)) System.out.println("Cliente '" +c1.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c1.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c2)) System.out.println("Cliente '" +c2.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c2.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c2)) System.out.println("Cliente '" +c2.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c2.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c3)) System.out.println("Cliente '" + c3.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c3.nome + "' nao pode ser adicionado.");

System.out.println("*** Adicionando Clientes ao Gerente 2 **************************");

if (ger2.adicionarCliente(c3)) System.out.println("Cliente '" + c3.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c3.nome + "' nao pode ser adicionado.");

if (ger2.adicionarCliente(c4)) System.out.println("Cliente '" + c4.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c4.nome + "' nao pode ser adicionado.");

System.out.println("*** Adicionando Gerentes ao Banco ******************************");

meuBanco.adicionarGerente(ger1);
meuBanco.adicionarGerente(ger2);

meuBanco.imprimir();


System.out.println("*** Testando o metodo obterEmprestimo **************************");

if (c4.obterEmprestimo(20000)) System.out.println("Cliente '" + c4.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c4.nome + "' nao obteve o emprestimo solicitado.");


if (c4.obterEmprestimo(20000)) System.out.println("Cliente '" + c4.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c4.nome + "' nao obteve o emprestimo solicitado.");


if (c2.obterEmprestimo(60000)) System.out.println("Cliente '" + c2.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao obteve o emprestimo solicitado.");


if (c2.obterEmprestimo(20000)) System.out.println("Cliente '" + c2.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao obteve o emprestimo solicitado.");


meuBanco.imprimir();

System.out.println("*** Testando o metodo realizarSaque ****************************");

if (c2.realizarSaque(12345)) System.out.println("Cliente '" + c2.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao pode realizar o saque solicitado.");

if (c2.realizarSaque(12345)) System.out.println("Cliente '" + c2.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao pode realizar o saque solicitado.");

if (c1.realizarSaque(10000)) System.out.println("Cliente '" + c1.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c1.nome + "' nao pode realizar o saque solicitado.");

if (c1.realizarSaque(1)) System.out.println("Cliente '" + c1.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c1.nome + "' nao pode realizar o saque solicitado.");


meuBanco.imprimir();



System.out.println("*** Testando o metodo pagarEmprestimo **************************");
if (c1.pagarEmprestimo(100)) System.out.println("Cliente '" + c1.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c1.nome + "' nao pode pagar (parte de) sua divida.");


if (c2.pagarEmprestimo(100)) System.out.println("Cliente '" + c2.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c2.nome + "' nao pode pagar (parte de) sua divida.");

if (c3.pagarEmprestimo(100)) System.out.println("Cliente '" + c3.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c3.nome + "' nao pode pagar (parte de) sua divida.");

if (c4.pagarEmprestimo(100)) System.out.println("Cliente '" + c4.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c4.nome + "' nao pode pagar (parte de) sua divida.");



meuBanco.imprimir();

System.out.println("*** Testando o metodo cobrarTodosEmprestimos *******************");

ger1.cobrarTodosEmprestimos();
meuBanco.imprimir();

ger2.cobrarTodosEmprestimos();
meuBanco.imprimir();

}
}
Responder

13/06/2020

Ricardo Arraes


Fala Lucas, beleza?

cara, mas em que parte do seu programa você está incluindo o restante dos clientes? na sua função main() pelo que percebi você está incluindo somente o c1.


Acabei esquecendo de editar.

public class ExecutaBanco {
public static void main(String[] args){


System.out.println("*** Instanciando Clientes **************************************");
Cliente c1 = new Cliente("Cliente A", 222222226, 10000);// Nome, CPF, Valor DA CONTA CORRENTE.
Cliente c2 = new ClienteEspecial("Cliente B", 333336760, 2000);
Cliente c3 = new Cliente("Cliente C", 44444, 30000);
Cliente c4 = new Cliente("Cliente D", 44444, 10);

System.out.println("*** Instanciando Gerentes **************************************");
Gerente ger1 = new Gerente("Gerente 1", 12345); //Nome e CPF.
Gerente ger2 = new Gerente("Gerente 2", 12121);

System.out.println("*** Instanciando um Banco **************************************");
Banco meuBanco = new Banco();


System.out.println("*** Adicionando Clientes ao Gerente 1 **************************");

if (ger1.adicionarCliente(c1)) System.out.println("Cliente '" +c1.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c1.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c2)) System.out.println("Cliente '" +c2.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c2.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c2)) System.out.println("Cliente '" +c2.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c2.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c3)) System.out.println("Cliente '" + c3.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c3.nome + "' nao pode ser adicionado.");

System.out.println("*** Adicionando Clientes ao Gerente 2 **************************");

if (ger2.adicionarCliente(c3)) System.out.println("Cliente '" + c3.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c3.nome + "' nao pode ser adicionado.");

if (ger2.adicionarCliente(c4)) System.out.println("Cliente '" + c4.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c4.nome + "' nao pode ser adicionado.");

System.out.println("*** Adicionando Gerentes ao Banco ******************************");

meuBanco.adicionarGerente(ger1);
meuBanco.adicionarGerente(ger2);

meuBanco.imprimir();


System.out.println("*** Testando o metodo obterEmprestimo **************************");

if (c4.obterEmprestimo(20000)) System.out.println("Cliente '" + c4.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c4.nome + "' nao obteve o emprestimo solicitado.");


if (c4.obterEmprestimo(20000)) System.out.println("Cliente '" + c4.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c4.nome + "' nao obteve o emprestimo solicitado.");


if (c2.obterEmprestimo(60000)) System.out.println("Cliente '" + c2.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao obteve o emprestimo solicitado.");


if (c2.obterEmprestimo(20000)) System.out.println("Cliente '" + c2.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao obteve o emprestimo solicitado.");


meuBanco.imprimir();

System.out.println("*** Testando o metodo realizarSaque ****************************");

if (c2.realizarSaque(12345)) System.out.println("Cliente '" + c2.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao pode realizar o saque solicitado.");

if (c2.realizarSaque(12345)) System.out.println("Cliente '" + c2.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao pode realizar o saque solicitado.");

if (c1.realizarSaque(10000)) System.out.println("Cliente '" + c1.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c1.nome + "' nao pode realizar o saque solicitado.");

if (c1.realizarSaque(1)) System.out.println("Cliente '" + c1.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c1.nome + "' nao pode realizar o saque solicitado.");


meuBanco.imprimir();



System.out.println("*** Testando o metodo pagarEmprestimo **************************");
if (c1.pagarEmprestimo(100)) System.out.println("Cliente '" + c1.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c1.nome + "' nao pode pagar (parte de) sua divida.");


if (c2.pagarEmprestimo(100)) System.out.println("Cliente '" + c2.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c2.nome + "' nao pode pagar (parte de) sua divida.");

if (c3.pagarEmprestimo(100)) System.out.println("Cliente '" + c3.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c3.nome + "' nao pode pagar (parte de) sua divida.");

if (c4.pagarEmprestimo(100)) System.out.println("Cliente '" + c4.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c4.nome + "' nao pode pagar (parte de) sua divida.");



meuBanco.imprimir();

System.out.println("*** Testando o metodo cobrarTodosEmprestimos *******************");

ger1.cobrarTodosEmprestimos();
meuBanco.imprimir();

ger2.cobrarTodosEmprestimos();
meuBanco.imprimir();

}
}


Cara, aparentemente não vi nenhum erro.
Consegues mandar aqui as saídas que teu programa ta gerando? só pra eu identificar o fluxo na prática.
Outro detalhe, vi que você usou um construtor ClienteEspecial pro seu cliente c2 e não está aparecendo ele ai nos códigos que você mandou, seria bom você colocar aqui o método, porque pode ser que o problema esteja nele.


Responder

13/06/2020

Lucas


[/code]


Cara, aparentemente não vi nenhum erro.
Consegues mandar aqui as saídas que teu programa ta gerando? só pra eu identificar o fluxo na prática.
Outro detalhe, vi que você usou um construtor ClienteEspecial pro seu cliente c2 e não está aparecendo ele ai nos códigos que você mandou, seria bom você colocar aqui o método, porque pode ser que o problema esteja nele.




Cliente especial tem as mesmas finalidades de um cliente normal apenas tem o valor para obter o empréstimo maior.

public class ClienteEspecial extends Cliente{
static final int dividaMaxima = 50000;
static final String tipo = "CE";


/* Construtor da Classe ClienteEspecial
* Este construtor invoca o construtor da classe Cliente.
*/
ClienteEspecial(String nome, int cpf, int valor){
super(nome, cpf, valor);
}

/* Metodo que retorna o valor do atributo tipo do objeto atual */
String retornaTipo() {
return tipo;
}



public boolean obterEmprestimo(int valor) {


if ( valor <= 0) {
return false;
} else if ( valor + getValorDaDivida() > dividaMaxima) {
   return false;
} else {
      valor += getValorDaDivida();
 valor += getValorContaCorrente();
      return true;  
    }

}

 }

Responder

13/06/2020

Lucas


}[/code]


Cara, aparentemente não vi nenhum erro.
Consegues mandar aqui as saídas que teu programa ta gerando? só pra eu identificar o fluxo na prática.
Outro detalhe, vi que você usou um construtor ClienteEspecial pro seu cliente c2 e não está aparecendo ele ai nos códigos que você mandou, seria bom você colocar aqui o método, porque pode ser que o problema esteja nele.




Saída:

https://prnt.sc/sz8zlh

Tá aparecendo não pode ser adicionado, porque no último return do método adicionarCliente eu troquei para return false ai ele da esse resultado se eu colocar return true ele adiciona todo mundo mesmo estando com o mesmo cpf.
Responder

14/06/2020

Lucas


Fala Lucas, beleza?

cara, mas em que parte do seu programa você está incluindo o restante dos clientes? na sua função main() pelo que percebi você está incluindo somente o c1.


Acabei esquecendo de editar.

public class ExecutaBanco {
public static void main(String[] args){


System.out.println("*** Instanciando Clientes **************************************");
Cliente c1 = new Cliente("Cliente A", 222222226, 10000);// Nome, CPF, Valor DA CONTA CORRENTE.
Cliente c2 = new ClienteEspecial("Cliente B", 333336760, 2000);
Cliente c3 = new Cliente("Cliente C", 44444, 30000);
Cliente c4 = new Cliente("Cliente D", 44444, 10);

System.out.println("*** Instanciando Gerentes **************************************");
Gerente ger1 = new Gerente("Gerente 1", 12345); //Nome e CPF.
Gerente ger2 = new Gerente("Gerente 2", 12121);

System.out.println("*** Instanciando um Banco **************************************");
Banco meuBanco = new Banco();


System.out.println("*** Adicionando Clientes ao Gerente 1 **************************");

if (ger1.adicionarCliente(c1)) System.out.println("Cliente '" +c1.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c1.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c2)) System.out.println("Cliente '" +c2.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c2.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c2)) System.out.println("Cliente '" +c2.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c2.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c3)) System.out.println("Cliente '" + c3.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c3.nome + "' nao pode ser adicionado.");

System.out.println("*** Adicionando Clientes ao Gerente 2 **************************");

if (ger2.adicionarCliente(c3)) System.out.println("Cliente '" + c3.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c3.nome + "' nao pode ser adicionado.");

if (ger2.adicionarCliente(c4)) System.out.println("Cliente '" + c4.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c4.nome + "' nao pode ser adicionado.");

System.out.println("*** Adicionando Gerentes ao Banco ******************************");

meuBanco.adicionarGerente(ger1);
meuBanco.adicionarGerente(ger2);

meuBanco.imprimir();


System.out.println("*** Testando o metodo obterEmprestimo **************************");

if (c4.obterEmprestimo(20000)) System.out.println("Cliente '" + c4.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c4.nome + "' nao obteve o emprestimo solicitado.");


if (c4.obterEmprestimo(20000)) System.out.println("Cliente '" + c4.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c4.nome + "' nao obteve o emprestimo solicitado.");


if (c2.obterEmprestimo(60000)) System.out.println("Cliente '" + c2.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao obteve o emprestimo solicitado.");


if (c2.obterEmprestimo(20000)) System.out.println("Cliente '" + c2.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao obteve o emprestimo solicitado.");


meuBanco.imprimir();

System.out.println("*** Testando o metodo realizarSaque ****************************");

if (c2.realizarSaque(12345)) System.out.println("Cliente '" + c2.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao pode realizar o saque solicitado.");

if (c2.realizarSaque(12345)) System.out.println("Cliente '" + c2.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao pode realizar o saque solicitado.");

if (c1.realizarSaque(10000)) System.out.println("Cliente '" + c1.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c1.nome + "' nao pode realizar o saque solicitado.");

if (c1.realizarSaque(1)) System.out.println("Cliente '" + c1.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c1.nome + "' nao pode realizar o saque solicitado.");


meuBanco.imprimir();



System.out.println("*** Testando o metodo pagarEmprestimo **************************");
if (c1.pagarEmprestimo(100)) System.out.println("Cliente '" + c1.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c1.nome + "' nao pode pagar (parte de) sua divida.");


if (c2.pagarEmprestimo(100)) System.out.println("Cliente '" + c2.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c2.nome + "' nao pode pagar (parte de) sua divida.");

if (c3.pagarEmprestimo(100)) System.out.println("Cliente '" + c3.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c3.nome + "' nao pode pagar (parte de) sua divida.");

if (c4.pagarEmprestimo(100)) System.out.println("Cliente '" + c4.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c4.nome + "' nao pode pagar (parte de) sua divida.");



meuBanco.imprimir();

System.out.println("*** Testando o metodo cobrarTodosEmprestimos *******************");

ger1.cobrarTodosEmprestimos();
meuBanco.imprimir();

ger2.cobrarTodosEmprestimos();
meuBanco.imprimir();

}
}


Cara, aparentemente não vi nenhum erro.
Consegues mandar aqui as saídas que teu programa ta gerando? só pra eu identificar o fluxo na prática.
Outro detalhe, vi que você usou um construtor ClienteEspecial pro seu cliente c2 e não está aparecendo ele ai nos códigos que você mandou, seria bom você colocar aqui o método, porque pode ser que o problema esteja nele.




Consegui corrigir Ricardo, obrigado pela atenção viu.
Responder

15/06/2020

Ricardo Arraes


Fala Lucas, beleza?

cara, mas em que parte do seu programa você está incluindo o restante dos clientes? na sua função main() pelo que percebi você está incluindo somente o c1.


Acabei esquecendo de editar.

public class ExecutaBanco {
public static void main(String[] args){


System.out.println("*** Instanciando Clientes **************************************");
Cliente c1 = new Cliente("Cliente A", 222222226, 10000);// Nome, CPF, Valor DA CONTA CORRENTE.
Cliente c2 = new ClienteEspecial("Cliente B", 333336760, 2000);
Cliente c3 = new Cliente("Cliente C", 44444, 30000);
Cliente c4 = new Cliente("Cliente D", 44444, 10);

System.out.println("*** Instanciando Gerentes **************************************");
Gerente ger1 = new Gerente("Gerente 1", 12345); //Nome e CPF.
Gerente ger2 = new Gerente("Gerente 2", 12121);

System.out.println("*** Instanciando um Banco **************************************");
Banco meuBanco = new Banco();


System.out.println("*** Adicionando Clientes ao Gerente 1 **************************");

if (ger1.adicionarCliente(c1)) System.out.println("Cliente '" +c1.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c1.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c2)) System.out.println("Cliente '" +c2.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c2.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c2)) System.out.println("Cliente '" +c2.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c2.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c3)) System.out.println("Cliente '" + c3.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c3.nome + "' nao pode ser adicionado.");

System.out.println("*** Adicionando Clientes ao Gerente 2 **************************");

if (ger2.adicionarCliente(c3)) System.out.println("Cliente '" + c3.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c3.nome + "' nao pode ser adicionado.");

if (ger2.adicionarCliente(c4)) System.out.println("Cliente '" + c4.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c4.nome + "' nao pode ser adicionado.");

System.out.println("*** Adicionando Gerentes ao Banco ******************************");

meuBanco.adicionarGerente(ger1);
meuBanco.adicionarGerente(ger2);

meuBanco.imprimir();


System.out.println("*** Testando o metodo obterEmprestimo **************************");

if (c4.obterEmprestimo(20000)) System.out.println("Cliente '" + c4.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c4.nome + "' nao obteve o emprestimo solicitado.");


if (c4.obterEmprestimo(20000)) System.out.println("Cliente '" + c4.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c4.nome + "' nao obteve o emprestimo solicitado.");


if (c2.obterEmprestimo(60000)) System.out.println("Cliente '" + c2.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao obteve o emprestimo solicitado.");


if (c2.obterEmprestimo(20000)) System.out.println("Cliente '" + c2.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao obteve o emprestimo solicitado.");


meuBanco.imprimir();

System.out.println("*** Testando o metodo realizarSaque ****************************");

if (c2.realizarSaque(12345)) System.out.println("Cliente '" + c2.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao pode realizar o saque solicitado.");

if (c2.realizarSaque(12345)) System.out.println("Cliente '" + c2.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao pode realizar o saque solicitado.");

if (c1.realizarSaque(10000)) System.out.println("Cliente '" + c1.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c1.nome + "' nao pode realizar o saque solicitado.");

if (c1.realizarSaque(1)) System.out.println("Cliente '" + c1.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c1.nome + "' nao pode realizar o saque solicitado.");


meuBanco.imprimir();



System.out.println("*** Testando o metodo pagarEmprestimo **************************");
if (c1.pagarEmprestimo(100)) System.out.println("Cliente '" + c1.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c1.nome + "' nao pode pagar (parte de) sua divida.");


if (c2.pagarEmprestimo(100)) System.out.println("Cliente '" + c2.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c2.nome + "' nao pode pagar (parte de) sua divida.");

if (c3.pagarEmprestimo(100)) System.out.println("Cliente '" + c3.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c3.nome + "' nao pode pagar (parte de) sua divida.");

if (c4.pagarEmprestimo(100)) System.out.println("Cliente '" + c4.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c4.nome + "' nao pode pagar (parte de) sua divida.");



meuBanco.imprimir();

System.out.println("*** Testando o metodo cobrarTodosEmprestimos *******************");

ger1.cobrarTodosEmprestimos();
meuBanco.imprimir();

ger2.cobrarTodosEmprestimos();
meuBanco.imprimir();

}
}


Cara, aparentemente não vi nenhum erro.
Consegues mandar aqui as saídas que teu programa ta gerando? só pra eu identificar o fluxo na prática.
Outro detalhe, vi que você usou um construtor ClienteEspecial pro seu cliente c2 e não está aparecendo ele ai nos códigos que você mandou, seria bom você colocar aqui o método, porque pode ser que o problema esteja nele.




Consegui corrigir Ricardo, obrigado pela atenção viu.


po beleza, Lucas. Desculpa a demora pra responder, esse final de semana foi corrido nos projetos.
mas que bom que voce conseguiu :)
Responder

15/06/2020

Lucas


Fala Lucas, beleza?

cara, mas em que parte do seu programa você está incluindo o restante dos clientes? na sua função main() pelo que percebi você está incluindo somente o c1.


Acabei esquecendo de editar.

public class ExecutaBanco {
public static void main(String[] args){


System.out.println("*** Instanciando Clientes **************************************");
Cliente c1 = new Cliente("Cliente A", 222222226, 10000);// Nome, CPF, Valor DA CONTA CORRENTE.
Cliente c2 = new ClienteEspecial("Cliente B", 333336760, 2000);
Cliente c3 = new Cliente("Cliente C", 44444, 30000);
Cliente c4 = new Cliente("Cliente D", 44444, 10);

System.out.println("*** Instanciando Gerentes **************************************");
Gerente ger1 = new Gerente("Gerente 1", 12345); //Nome e CPF.
Gerente ger2 = new Gerente("Gerente 2", 12121);

System.out.println("*** Instanciando um Banco **************************************");
Banco meuBanco = new Banco();


System.out.println("*** Adicionando Clientes ao Gerente 1 **************************");

if (ger1.adicionarCliente(c1)) System.out.println("Cliente '" +c1.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c1.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c2)) System.out.println("Cliente '" +c2.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c2.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c2)) System.out.println("Cliente '" +c2.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c2.nome + "' nao pode ser adicionado.");

if (ger1.adicionarCliente(c3)) System.out.println("Cliente '" + c3.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c3.nome + "' nao pode ser adicionado.");

System.out.println("*** Adicionando Clientes ao Gerente 2 **************************");

if (ger2.adicionarCliente(c3)) System.out.println("Cliente '" + c3.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c3.nome + "' nao pode ser adicionado.");

if (ger2.adicionarCliente(c4)) System.out.println("Cliente '" + c4.nome + "' adicionado corretamente.");
else System.out.println("Cliente '" + c4.nome + "' nao pode ser adicionado.");

System.out.println("*** Adicionando Gerentes ao Banco ******************************");

meuBanco.adicionarGerente(ger1);
meuBanco.adicionarGerente(ger2);

meuBanco.imprimir();


System.out.println("*** Testando o metodo obterEmprestimo **************************");

if (c4.obterEmprestimo(20000)) System.out.println("Cliente '" + c4.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c4.nome + "' nao obteve o emprestimo solicitado.");


if (c4.obterEmprestimo(20000)) System.out.println("Cliente '" + c4.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c4.nome + "' nao obteve o emprestimo solicitado.");


if (c2.obterEmprestimo(60000)) System.out.println("Cliente '" + c2.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao obteve o emprestimo solicitado.");


if (c2.obterEmprestimo(20000)) System.out.println("Cliente '" + c2.nome + "' obteve o emprestimo solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao obteve o emprestimo solicitado.");


meuBanco.imprimir();

System.out.println("*** Testando o metodo realizarSaque ****************************");

if (c2.realizarSaque(12345)) System.out.println("Cliente '" + c2.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao pode realizar o saque solicitado.");

if (c2.realizarSaque(12345)) System.out.println("Cliente '" + c2.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c2.nome + "' nao pode realizar o saque solicitado.");

if (c1.realizarSaque(10000)) System.out.println("Cliente '" + c1.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c1.nome + "' nao pode realizar o saque solicitado.");

if (c1.realizarSaque(1)) System.out.println("Cliente '" + c1.nome + "' realizou saque solicitado.");
else System.out.println("Cliente '" + c1.nome + "' nao pode realizar o saque solicitado.");


meuBanco.imprimir();



System.out.println("*** Testando o metodo pagarEmprestimo **************************");
if (c1.pagarEmprestimo(100)) System.out.println("Cliente '" + c1.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c1.nome + "' nao pode pagar (parte de) sua divida.");


if (c2.pagarEmprestimo(100)) System.out.println("Cliente '" + c2.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c2.nome + "' nao pode pagar (parte de) sua divida.");

if (c3.pagarEmprestimo(100)) System.out.println("Cliente '" + c3.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c3.nome + "' nao pode pagar (parte de) sua divida.");

if (c4.pagarEmprestimo(100)) System.out.println("Cliente '" + c4.nome + "' pagou (parte de) sua divida.");
else System.out.println("Cliente '" + c4.nome + "' nao pode pagar (parte de) sua divida.");



meuBanco.imprimir();

System.out.println("*** Testando o metodo cobrarTodosEmprestimos *******************");

ger1.cobrarTodosEmprestimos();
meuBanco.imprimir();

ger2.cobrarTodosEmprestimos();
meuBanco.imprimir();

}
}


Cara, aparentemente não vi nenhum erro.
Consegues mandar aqui as saídas que teu programa ta gerando? só pra eu identificar o fluxo na prática.
Outro detalhe, vi que você usou um construtor ClienteEspecial pro seu cliente c2 e não está aparecendo ele ai nos códigos que você mandou, seria bom você colocar aqui o método, porque pode ser que o problema esteja nele.




Consegui corrigir Ricardo, obrigado pela atenção viu.


po beleza, Lucas. Desculpa a demora pra responder, esse final de semana foi corrido nos projetos.
mas que bom que voce conseguiu :)


Não se preocupa você ajudou muito mesmo.
Boa sorte nos seus projetos ai
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar