Problemas com o exercicio correntista

Olá pessoal!

Eu estou fazendo um programa onde se cadastra um correntista, e ele tem as opções depositar, sacar e gravar estas informações no extrato.
estou com um problema eu preciso criar o metodo abaixo citado para gravar as operações realizadas no extrato, mas to com dificuldade para cria-lo. Alguem pode me ajudar?

+gravarExtrato(operacao: String, valor:
double)
Adiciona ao atributo extrato o saldo antigo,
a operação efetuada, o valor e o saldo
novo, como mostrado a seguir:
extrato += ?Operação: ?+
operacao+?\nSaldo antigo: R$ ?+
String.format(?%.2f?,
(operacao.equals(?Saque?)?saldo+valor :
saldo-valor))+ ?\nValor: R$
?+String.format(?%.2f?, valor)+ ?\nSaldo
novo: R$ ?+String.format(?%.2f?, saldo);

O codigo eu consegui fazer até este ponto usando o MVC.
Esta é a classe controller.

[code]package controller;
public class Correntista {
//Atributos da classe Correntista
private String nome,senha,extrato;
private int conta,agencia;
private double saldo;
//Método para cadastrar correntista em um vetor de 15 posições um por um
public void cadastrar(Correntista vet[],int i,String nome,int agencia,int conta,String senha,double saldo)
{
vet[i].setNome(nome);
vet[i].setAgencia(agencia);
vet[i].setConta(conta);
vet[i].setSenha(senha);
vet[i].setSaldo(saldo);
}

 public boolean validar(Correntista vet[],int i,int conta,int agencia,String senha)
{
    boolean validar=true;
    if(conta==vet[i].getConta()&&agencia==vet[i].getAgencia()&&senha.equals(vet[i].getSenha()))
        validar=true;
    else 
        validar=false;
    return validar;
//}

       // validar=false;
    //return validar;
} 
 
 public boolean verificarDeposito(Correntista vet[],int i,int conta,int agencia)
{
    boolean validar=true;
    if(conta==vet[i].getConta()&&agencia==vet[i].getAgencia())
        validar=true;
    else 
        validar=false;
    return validar;
 }
 
 public boolean verificarValor(Correntista vet[], int i, double valor)
 {
    boolean validar=true;
    if(valor>0)
        validar=true;
    else
        validar=false;
    return validar;
     
 }
 
 public boolean verificarSaque(Correntista vet[],int i,double valor)
{
    boolean validar=true;
    if(valor<=saldo)
        validar=true;
    else 
        validar=false;
    return validar;
 }

 public double depositar(Correntista vet[], int i, double valor)
 {
    return (vet[i].getSaldo() + valor ); 
 }
 
 public double sacar(Correntista vet[], int i, double valor)
 {
         return (vet[i].getSaldo() - valor);
 }
 
 public void gravarExtrato(Correntista vet[], int i, String operacao, double valor)
 {
     
 }
 
 

 
 
     
 
    


//Método para exibir cadastrato
public String exibir(Correntista vet[],int i)
{
    return vet[i].getNome()+vet[i].getAgencia()+vet[i].getConta();
    
}
public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public int getAgencia() {
    return agencia;
}

public void setAgencia(int agencia) {
    this.agencia = agencia;
}

public int getConta() {
    return conta;
}

public void setConta(int conta) {
    this.conta = conta;
}

public String getSenha() {
    return senha;
}

public void setSenha(String senha) {
    this.senha = senha;
}

public double getSaldo() {
    return saldo;
}

public void setSaldo(double saldo) {
    this.saldo = saldo;
}

public String getExtrato() {
    return extrato;
}

public void setExtrato(String extrato) {
    this.extrato = extrato;
}

}

Esta é a classe principal

[code]package controller;

import view.VCorrentista;

/**
*

  • @author coutinho
    */
    public class Principal {
    public static void main(String[]args)
    {
    VCorrentista tela=new VCorrentista();
    tela.lerMenu();
    }
    }

E esta é a classe View
[/code]

[code]package view;
import controller.Correntista;
import javax.swing.JOptionPane;
public class VCorrentista {
private Correntista c;
private Correntista vet[]=new Correntista[15];
private int opc,cont=0;
public VCorrentista()
{
c=new Correntista();
for(int i=0;i<vet.length;i++)
vet[i]=new Correntista();
}

//Método para exibir as opções de menu
public void lerMenu()
{
    setOpc(Integer.parseInt(JOptionPane.showInputDialog("1- Cadastrar\n2- Depositar\n3- Sacar\n4- Imprimir Extrato\n5- Imprimir Saldo\n0- Sair")));
    executar();
}

//Método para executar as opções do usuario
public void executar()
{
    switch(getOpc())
    {
        case 1:
            for(int i=cont;i<vet.length;i++)
            {
                c.cadastrar (vet.i(JOptionPane.showInputDialog("Informe o nome"),
                Integer.parseInt(JOptionPane.showInputDialog("Informe agencia")),
                Integer.parseInt(JOptionPane.showInputDialog("Informe a conta")),
                 JOptionPane.showInputDialog("Informe a senha")));
                        cont++;
                lerMenu();
            }
            break;
        case 2:
                       {
            for(int i=0;i<vet.length;i++)
            {
                int agencia,conta;
                double valor;
                agencia=Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da agencia"));
                conta= Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da Conta"));
                if(c.verificarDeposito(vet, i, agencia, conta)==true)
                {
                    JOptionPane.showMessageDialog(null,c.exibir(vet, i));
                    valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor do deposito"));
                    while(c.verificarValor(vet, i, valor) !=true)
                    {
                        JOptionPane.showMessageDialog(null,"Valor incorreto, informe novamente!");                            
                        valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor do deposito"));
                    }
                    c.setSaldo(valor);
                    JOptionPane.showMessageDialog(null,"Depósito efetuado com sucesso!");
                    JOptionPane.showMessageDialog(null,"Saldo atual"+c.getSaldo());
                }
                else
                    JOptionPane.showMessageDialog(null,"Não há nenhum correntista com esse número de agência e conta");
                lerMenu();
            }
        }
            break;
            
        case 3:
        {
            for(int i=0;i<vet.length;i++)
            {
                int agencia,conta;
                double valor;
                agencia=Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da agencia"));
                conta= Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da Conta"));
                if(c.verificarDeposito(vet, i, agencia, conta)==true)
                {
                    JOptionPane.showMessageDialog(null,c.exibir(vet, i));
                    valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor a ser sacado"));
                    while(c.verificarValor(vet, i, valor) !=true)
                    {
                        JOptionPane.showMessageDialog(null,"Valor incorreto, informe novamente!");                            
                        valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor a ser sacado"));
                    }
                    c.setSaldo(valor);
                    JOptionPane.showMessageDialog(null,"Saque efetuado com sucesso!");
                    JOptionPane.showMessageDialog(null,"Saldo atual"+c.getSaldo());
                }
                else
                    JOptionPane.showMessageDialog(null,"Não há nenhum correntista com esse número de agência e conta");
                lerMenu();
            }
            
            if(c.verificarSaque(vet, opc, opc) ==true)
                    {
                        c.sacar(vet, opc, opc);
                        JOptionPane.showMessageDialog(null,"Saque efetuado com sucesso!");
                        JOptionPane.showMessageDialog(null,"Saldo atual"+c.sacar(vet, opc, opc));
                    }
        }
        case 0:
            JOptionPane.showConfirmDialog(null,"DESEJA SAIR DO SISTEMA","SAINDO..",JOptionPane.YES_NO_OPTION);
            break;
        default:
            JOptionPane.showMessageDialog(null,"Opção invalida");
        if(getOpc()!=0)
            lerMenu();
    }
}
public int getOpc() {
    return opc;
}

public void setOpc(int opc) {
    this.opc = opc;
}

}
[/code]
Fico No aguardo.
Valeww

Coutinho fui verificar o que já exisitia de código, e notei que seu método depositar, sempre estava “resgatando”, somente o primeiro correntista!
alterei o metodo para verificar no vetor inteiro a existência do correntisa, a mesma alteração, deve ser feita no método sacar
Além disso o metodo depositar estava sempre sobrescrevendo o valor do saldo, segue abaixo o “pedaço código alterado” com “XXX: esse metodo…”, ou seja uma marca onde foi alterada a linha ou acrescentada:

[code] case 2:
{
boolean isCustomer = false; //XXX: esta linha foi adicionada
int agencia,conta;
double valor;
agencia=Integer.parseInt(JOptionPane.showInputDialog(“Digite o numero da agencia”));
conta= Integer.parseInt(JOptionPane.showInputDialog(“Digite o numero da Conta”));
for(int i=0;i<vet.length;i++)
{
if(c.verificarDeposito(vet, i, agencia, conta)==true)
{
JOptionPane.showMessageDialog(null,c.exibir(vet, i));
valor=Double.parseDouble(JOptionPane.showInputDialog(“Digite o valor do deposito”));
while(c.verificarValor(vet, i, valor) !=true)
{
JOptionPane.showMessageDialog(null,“Valor incorreto, informe novamente!”);
valor=Double.parseDouble(JOptionPane.showInputDialog(“Digite o valor do deposito”));
}
vet[i].setSaldo(c.depositar(vet, i, valor)); //XXX esta linha foi alterada
JOptionPane.showMessageDialog(null,“Depósito efetuado com sucesso!”);
JOptionPane.showMessageDialog(null,“Saldo atual”+vet[i].getSaldo());
isCustomer = true; //XXX esta linha foi adicionada
break; //XXX: esta linha foi adicionada
}

            }  
            if(!isCustomer) //esta linha foi adicionada
            	JOptionPane.showMessageDialog(null,"Não há nenhum correntista com esse número de agência e conta");  
            lerMenu();  
        }  
            break;  [/code]

Sem arrumar o código fica dificil efetuar a funcionalidade que você quer.
Por favor descreva melhor o que seria, “dificuldade em gravar as informações no extrato”.>

Alterei o código para funcionar corretamente o saque e o depósito, seguindo sua lógica.

segue abaixo as duas classes ja alteradas:

[code]package controller;
public class Correntista {
//Atributos da classe Correntista
private String nome,senha,extrato;
private int conta,agencia;
private double saldo;
//Método para cadastrar correntista em um vetor de 15 posições um por um
public void cadastrar(Correntista vet[],int i,String nome,int agencia,int conta,String senha,double saldo)
{
vet[i].setNome(nome);
vet[i].setAgencia(agencia);
vet[i].setConta(conta);
vet[i].setSenha(senha);
vet[i].setSaldo(saldo);
}

 public boolean validar(Correntista vet[],int i,int conta,int agencia,String senha)  
{  
    boolean validar=true;  
    if(conta==vet[i].getConta()&&agencia==vet[i].getAgencia()&&senha.equals(vet[i].getSenha()))  
        validar=true;  
    else   
        validar=false;  
    return validar;  
//}  

       // validar=false;  
    //return validar;  
}   
   
 public boolean verificarDeposito(Correntista vet[],int i,int conta,int agencia)  
{  
    boolean validar=true;  
    if(conta==vet[i].getConta()&&agencia==vet[i].getAgencia())  
        validar=true;  
    else   
        validar=false;  
    return validar;  
 }  
   
 public boolean verificarValor(Correntista vet[], int i, double valor)  
 {  
    boolean validar=true;  
    if(valor&gt;0)  
        validar=true;  
    else  
        validar=false;  
    return validar;  
       
 }  
   
 public boolean verificarSaque(Correntista vet[],int i,double valor)  
{  
   return vet[i].getSaldo()&gt;=valor? true : false;
 }  
  
 public double depositar(Correntista vet[], int i, double valor)  
 {  
    return (vet[i].getSaldo() + valor );   
 }  
   
 public double sacar(Correntista vet[], int i, double valor)  
 {  
         return (vet[i].getSaldo() - valor);  
 }  
   
 public void gravarExtrato(Correntista vet[], int i, String operacao, double valor)  
 {  
       
 }  
  

public String exibir(Correntista vet[],int i)  
{  
    return vet[i].getNome()+vet[i].getAgencia()+vet[i].getConta();  
      
}  
public String getNome() {  
    return nome;  
}  

public void setNome(String nome) {  
    this.nome = nome;  
}  

public int getAgencia() {  
    return agencia;  
}  

public void setAgencia(int agencia) {  
    this.agencia = agencia;  
}  

public int getConta() {  
    return conta;  
}  

public void setConta(int conta) {  
    this.conta = conta;  
}  

public String getSenha() {  
    return senha;  
}  

public void setSenha(String senha) {  
    this.senha = senha;  
}  

public double getSaldo() {  
    return saldo;  
}  

public void setSaldo(double saldo) {  
    this.saldo = saldo;  
}  

public String getExtrato() {  
    return extrato;  
}  

public void setExtrato(String extrato) {  
    this.extrato = extrato;  
}  

}
[/code]

[code]package controller;
import controller.Correntista;
import javax.swing.JOptionPane;
public class VCorrentista {
private Correntista c;
private Correntista vet[]=new Correntista[15];
private int opc,cont=0;
public VCorrentista()
{
//inicializa vetor com quinze posições
c=new Correntista();
for(int i=0;i<vet.length;i++)
vet[i]=new Correntista();
}

//Método para exibir as opções de menu  
public void lerMenu()  
{  
    setOpc(Integer.parseInt(JOptionPane.showInputDialog("1- Cadastrar\n2- Depositar\n3- Sacar\n4- Imprimir Extrato\n5- Imprimir Saldo\n0- Sair")));  
    executar();  
}  
  
//Método para executar as opções do usuario  
public void executar()  
{  
    switch(getOpc())  
    {  
        case 1:  
            for(int i=cont;i&lt;vet.length;i++)  
            {  
            	String nome = JOptionPane.showInputDialog("Informe o nome");
            	int agencia = Integer.parseInt(JOptionPane.showInputDialog("Informe agencia"));
            	int conta = Integer.parseInt(JOptionPane.showInputDialog("Informe a conta"));
            	String senha = JOptionPane.showInputDialog("Informe a senha");  
            	
            	
                c.cadastrar (vet,cont,nome,agencia,conta,senha,0);  
                        cont++;  
                lerMenu();  
            }  
            break;  
        case 2:  
               { 
            	   boolean isCustomer = false; //XXX: esta linha foi adicionada
            	   int agencia,conta;  
                   double valor;  
                   agencia=Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da agencia"));  
                   conta= Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da Conta"));  
            for(int i=0;i&lt;vet.length;i++)  
            {  
                if(c.verificarDeposito(vet, i, agencia, conta)==true)  
                {  
                    JOptionPane.showMessageDialog(null,c.exibir(vet, i));  
                    valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor do deposito"));  
                    while(c.verificarValor(vet, i, valor) !=true)  
                    {  
                        JOptionPane.showMessageDialog(null,"Valor incorreto, informe novamente!");                              
                        valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor do deposito"));  
                    }  
                    vet[i].setSaldo(c.depositar(vet, i, valor)); //XXX esta linha foi alterada
                    JOptionPane.showMessageDialog(null,"Depósito efetuado com sucesso!");  
                    JOptionPane.showMessageDialog(null,"Saldo atual"+vet[i].getSaldo());  
                    isCustomer = true; //XXX esta linha foi adicionada
                    break; //XXX: esta linha foi adicionada
                }  
               
            }  
            if(!isCustomer) //esta linha foi adicionada
            	JOptionPane.showMessageDialog(null,"Não há nenhum correntista com esse número de agência e conta");  
            lerMenu();  
        }  
            break;  
              
        case 3:  
        {  
            for(int i=0;i&lt;vet.length;i++)  
            {  
            	boolean isCustomer = false; //XXX: esta linha foi adicionada
                int agencia,conta;  
                double valor;  
                agencia=Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da agencia"));  
                conta= Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da Conta"));  
                if(c.verificarDeposito(vet, i, agencia, conta)==true)  
                {  
                    JOptionPane.showMessageDialog(null,c.exibir(vet, i));  
                    valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor a ser sacado"));  
                    while(c.verificarValor(vet, i, valor) !=true)  
                    {  
                        JOptionPane.showMessageDialog(null,"Valor incorreto, informe novamente!");                              
                        valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor a ser sacado"));  
                    }  
                    if(c.verificarSaque(vet, i, valor)){
                        vet[i].setSaldo(c.sacar(vet, i, valor)); //XXX esta linha foi alterada
                        JOptionPane.showMessageDialog(null,"Saque efetuado com sucesso!");  
                        JOptionPane.showMessageDialog(null,"Saldo atual" + vet[i].getSaldo());  
                        isCustomer = true; //XXX esta linha foi adicionada
                        break; //XXX: esta linha foi adicionada
                    }else{
                    	 JOptionPane.showMessageDialog(null,"Saldo insuficiente");  
                    }
                }  
                if(!isCustomer) //esta linha foi adicionada
                	JOptionPane.showMessageDialog(null,"Não há nenhum correntista com esse número de agência e conta");  
                lerMenu();  
              
            }  
              
          
        }  
        case 0:  
           int sai = JOptionPane.showConfirmDialog(null,"DESEJA SAIR DO SISTEMA","SAINDO..",JOptionPane.YES_NO_OPTION);  
            if(sai == 0){
            	JOptionPane.showMessageDialog(null, "tchau");
            	  break;  
            }else{
            	lerMenu();
            }
            
          
        default:  
            JOptionPane.showMessageDialog(null,"Opção invalida");  
        if(getOpc()!=0)  
            lerMenu();  
    }  
}  
public int getOpc() {  
    return opc;  
}  

public void setOpc(int opc) {  
    this.opc = opc;  
}  

} [/code]

Agora aguardo o que você quer com relação ao estrato, descrevar, quero entrar com a conta e agencia, e quero que aparece os seguintes daddos no extrato…

aguardo.>

Segue o código com um possível exemplo de extrato, testei aqui e está funcionando:

[code]package controller;

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

public class Correntista {
//Atributos da classe Correntista
private String nome,senha;
private int conta,agencia;
private double saldo;
StringBuilder extrato = new StringBuilder();
//Método para cadastrar correntista em um vetor de 15 posições um por um
public void cadastrar(Correntista vet[],int i,String nome,int agencia,int conta,String senha,double saldo)
{
vet[i].setNome(nome);
vet[i].setAgencia(agencia);
vet[i].setConta(conta);
vet[i].setSenha(senha);
vet[i].setSaldo(saldo);
}

 public boolean validar(Correntista vet[],int i,int conta,int agencia,String senha)  
{  
    boolean validar=true;  
    if(conta==vet[i].getConta()&&agencia==vet[i].getAgencia()&&senha.equals(vet[i].getSenha()))  
        validar=true;  
    else   
        validar=false;  
    return validar;  
//}  

       // validar=false;  
    //return validar;  
}   
   
 public boolean verificarDeposito(Correntista vet[],int i,int conta,int agencia)  
{  
    boolean validar=true;  
    if(conta==vet[i].getConta()&&agencia==vet[i].getAgencia())  
        validar=true;  
    else   
        validar=false;  
    return validar;  
 }  
   
 public boolean verificarValor(Correntista vet[], int i, double valor)  
 {  
    boolean validar=true;  
    if(valor&gt;0)  
        validar=true;  
    else  
        validar=false;  
    return validar;  
       
 }  
   
 public boolean verificarSaque(Correntista vet[],int i,double valor)  
{  
   return vet[i].getSaldo()&gt;=valor? true : false;
 }  
  
 public double depositar(Correntista vet[], int i, double valor)  
 {  
    return (vet[i].getSaldo() + valor );   
 }  
   
 public double sacar(Correntista vet[], int i, double valor)  
 {  
         return (vet[i].getSaldo() - valor);  
 }  
   
 public void gravarExtrato(Correntista vet[], int i, String operacao, double valor)  
 {  
	
	DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT,new Locale(&quot;pt&quot;,&quot;BR&quot;));
	vet[i].extrato.append(&quot;Operação :&quot; + operacao+&quot;\n&quot;);  
	vet[i].extrato.append(&quot;valor&quot; + valor+&quot;\n&quot;);
	vet[i].extrato.append(&quot;Data&quot; + df.format(new Date())+&quot;\n&quot;);
	vet[i].extrato.append(&quot;Saldo Atual &quot; + vet[i].getSaldo()+&quot;\n&quot;);
	vet[i].extrato.append(&quot;-------------------------------------------&quot;+&quot;\n&quot;);
 }  
  

public String exibir(Correntista vet[],int i)  
{  
    return vet[i].getNome()+vet[i].getAgencia()+vet[i].getConta();  
      
}  
public String getNome() {  
    return nome;  
}  

public void setNome(String nome) {  
    this.nome = nome;  
}  

public int getAgencia() {  
    return agencia;  
}  

public void setAgencia(int agencia) {  
    this.agencia = agencia;  
}  

public int getConta() {  
    return conta;  
}  

public void setConta(int conta) {  
    this.conta = conta;  
}  

public String getSenha() {  
    return senha;  
}  

public void setSenha(String senha) {  
    this.senha = senha;  
}  

public double getSaldo() {  
    return saldo;  
}  

public void setSaldo(double saldo) {  
    this.saldo = saldo;  
}  

public StringBuilder getExtrato() {  
    return extrato;  
}  

public void setExtrato(StringBuilder extrato) {  
    this.extrato = extrato;  
}  

}
[/code]

[code]package controller;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class VCorrentista {
private Correntista c;
private Correntista vet[]=new Correntista[15];
private int opc,cont=0;
public VCorrentista()
{
//inicializa vetor com quinze posições
c=new Correntista();
for(int i=0;i<vet.length;i++)
vet[i]=new Correntista();
}

//Método para exibir as opções de menu  
public void lerMenu()  
{  
    setOpc(Integer.parseInt(JOptionPane.showInputDialog("1- Cadastrar\n2- Depositar\n3- Sacar\n4- Imprimir Extrato\n5- Imprimir Saldo\n0- Sair")));  
    executar();  
}  
  
//Método para executar as opções do usuario  
public void executar()  
{  
    switch(getOpc())  
    {  
        case 1:  
            for(int i=cont;i&lt;vet.length;i++)  
            {  
            	String nome = JOptionPane.showInputDialog("Informe o nome");
            	int agencia = Integer.parseInt(JOptionPane.showInputDialog("Informe agencia"));
            	int conta = Integer.parseInt(JOptionPane.showInputDialog("Informe a conta"));
            	String senha = JOptionPane.showInputDialog("Informe a senha");  
            	
            	
                c.cadastrar (vet,cont,nome,agencia,conta,senha,0);  
                        cont++;  
                lerMenu();  
            }  
            break;  
        case 2:  
               { 
            	   boolean isCustomer = false; //XXX: esta linha foi adicionada
            	   int agencia,conta;  
                   double valor;  
                   agencia=Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da agencia"));  
                   conta= Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da Conta"));  
            for(int i=0;i&lt;vet.length;i++)  
            {  
                if(c.verificarDeposito(vet, i, agencia, conta)==true)  
                {  
                    JOptionPane.showMessageDialog(null,c.exibir(vet, i));  
                    valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor do deposito"));  
                    while(c.verificarValor(vet, i, valor) !=true)  
                    {  
                        JOptionPane.showMessageDialog(null,"Valor incorreto, informe novamente!");                              
                        valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor do deposito"));  
                    }  
                    vet[i].setSaldo(c.depositar(vet, i, valor)); //XXX esta linha foi alterada
                    JOptionPane.showMessageDialog(null,"Depósito efetuado com sucesso!");  
                    JOptionPane.showMessageDialog(null,"Saldo atual"+vet[i].getSaldo());  
                    c.gravarExtrato(vet, i, "deposito", valor);
                    isCustomer = true; //XXX esta linha foi adicionada
                    break; //XXX: esta linha foi adicionada
                }  
               
            }  
            if(!isCustomer) //esta linha foi adicionada
            	JOptionPane.showMessageDialog(null,"Não há nenhum correntista com esse número de agência e conta");  
            lerMenu();  
        }  
            break;  
              
        case 3:  
        {  
			boolean isCustomer = false; //XXX: esta linha foi adicionada
			int agencia,conta;  
			double valor;  
			agencia=Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da agencia"));  
			conta= Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da Conta"));  
			
            for(int i=0;i&lt;vet.length;i++)  
            {  
            	
                if(c.verificarDeposito(vet, i, agencia, conta)==true)  
                {  
                    JOptionPane.showMessageDialog(null,c.exibir(vet, i));  
                    valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor a ser sacado"));  
                    while(c.verificarValor(vet, i, valor) !=true)  
                    {  
                        JOptionPane.showMessageDialog(null,"Valor incorreto, informe novamente!");                              
                        valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor a ser sacado"));  
                    }  
                    if(c.verificarSaque(vet, i, valor)){
                        vet[i].setSaldo(c.sacar(vet, i, valor)); //XXX esta linha foi alterada
                        JOptionPane.showMessageDialog(null,"Saque efetuado com sucesso!");  
                        JOptionPane.showMessageDialog(null,"Saldo atual" + vet[i].getSaldo());  
                        c.gravarExtrato(vet, i, "saque", valor);
                        isCustomer = true; //XXX esta linha foi adicionada
                        break; //XXX: esta linha foi adicionada
                    }else{
                    	 JOptionPane.showMessageDialog(null,"Saldo insuficiente");  
                    }
                }  
              
            }  
            if(!isCustomer) //esta linha foi adicionada
            	JOptionPane.showMessageDialog(null,"Não há nenhum correntista com esse número de agência e conta");  
            lerMenu();  
              
          
        }  
        
        case 4:  
        {  
            for(int i=0;i&lt;vet.length;i++)  
            {  
            	boolean isCustomer = false; //XXX: esta linha foi adicionada
                int agencia,conta;  
                double valor;  
                agencia=Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da agencia"));  
                conta= Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da Conta"));  
                if(c.verificarDeposito(vet, i, agencia, conta)==true)  
                {  
                	 JTextArea ta = new JTextArea(20,50); // Text area  
                     ta.setText(vet[i].getExtrato().toString());  
                     JScrollPane sbrText;  
                     ta.setLineWrap(true);  
                     sbrText = new JScrollPane(ta);  
                     sbrText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);   
                     JOptionPane.showMessageDialog(null,sbrText,"Cadastro",JOptionPane.INFORMATION_MESSAGE);  
                     isCustomer = true;
                     
                }  
                if(!isCustomer) //esta linha foi adicionada
                	JOptionPane.showMessageDialog(null,"Não há nenhum correntista com esse número de agência e conta");  
                lerMenu();  
              
            }  
              
          
        }  
        
        case 0:  
           int sai = JOptionPane.showConfirmDialog(null,"DESEJA SAIR DO SISTEMA","SAINDO..",JOptionPane.YES_NO_OPTION);  
            if(sai == 0){
            	System.exit(0);  
            }else{
            	lerMenu();
            }
          
        default:  
            JOptionPane.showMessageDialog(null,"Opção invalida");  
        if(getOpc()!=0)  
            lerMenu();  
    }  
}  
public int getOpc() {  
    return opc;  
}  

public void setOpc(int opc) {  
    this.opc = opc;  
}  

} [/code]

Neste caso foi usado um JTextArea…
achei interessante a aparência, lógico que é apenas para estudar, pois jamais seria feito assim em um sistema real, teste esse código, que é só a idéia de como pode ser feito, e qualquer coisa poste suas dúvidas

Espero ter ajudado.>

Eu preciso gravar todas as movimentações q forem realizadas para caso seja escolhida uma dessas opções possa exibir todas as movimentações efetuadas.

Eu preciso criar este metodo com estas especificações para poder gravar e exibir todas as movimentações.
+gravarExtrato(operacao: String, valor:
double)
Adiciona ao atributo extrato o saldo antigo,
a operação efetuada, o valor e o saldo
novo, como mostrado a seguir:
extrato += ?Operação: ?+
operacao+?\nSaldo antigo: R$ ?+
String.format(?%.2f?,
(operacao.equals(?Saque?)?saldo+valor :
saldo-valor))+ ?\nValor: R$
?+String.format(?%.2f?, valor)+ ?\nSaldo
novo: R$ ?+String.format(?%.2f?, saldo);

Ao escolher Imprimir Extrato, exiba um JOptionPane.showInputDialog para
solicitar o número da agência, conta e senha. Deve ser chamado o método validar que,
se retornar false, deve ser exibida um JOptionPane.showMessageDialog com a
mensagem ?Dados do correntista não conferem?, caso contrário, exiba um
JOptionPane.showMessageDialog exibindo todo o extrato das movimentações da conta
do correntista.

Ao escolher Imprimir Saldo, exiba um JOptionPane.showInputDialog para solicitar
o número da agência, conta e senha. Deve ser chamado o método validar que, se
retornar false, deve ser exibida um JOptionPane.showMessageDialog com a mensagem
?Dados do correntista não conferem?, caso contrário, exiba um
JOptionPane.showMessageDialog exibindo o saldo atual do correntista.

Testou o código que postei?

A parte do extrato está funcionando, está abrindo em JoptionPane, porem com um TextArea dentro por causa do scroll…
do resto é so adaptar.

Valew pessoal vou adaptar aqui agora acho que consigo.
Obrigado!

Se seu problema foi resolvido, edite o post e coloque “[Resolvido]problemas com o exercicio correntista”
pois assim ninguém vai verificar para responder uma questão já resolvida.

Att.

[Resolvido] Pessoal valew pela ajuda aew deu tudo certo.
Valeww