[RESOLVIDO] Exercicio Conta Bancária

Boa tarde pessoal,

Sou novato em java e estou tentando fazer um exercício de uma conta bancária que armazena 50 clientes e seus respectivos depósitos, saques e etc.
Enfim o problema é o seguinte, eu capturo o nome e o numero da conta em um case, em outro case eu capturo o valor do deposito e depois em outro case
eu imprimo o numero da conta, nome do cliente e saldo, mas existe um erro que nao estou conseguindo resolver, hora ele só captura nome e conta e hora
ele so captura o saldo, já instanciei em varios locais para ver se funcionava e sempre da esse erro.

MAIN

[code]import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class MainConta{
public static void main(String args []){
final int TotalDeContas = 50;
Conta ct[] = new Conta[TotalDeContas];

	for(int i = 0; i < TotalDeContas; i++){



        do{

			System.out.print("\n[1] - Criar Conta");
			System.out.print("\n[2] - Depositar");
			System.out.print("\n[3] - Sacar");
			System.out.print("\n[4] - Imprimir");
			System.out.print("\n[5] - Sair");

			Scanner sc = new Scanner(System.in);
			int opcao;

			System.out.print("\n\nQual a opcao escolhida? ");
            opcao = sc.nextInt();

			switch(opcao){


				case 1: ct[i] = new Conta();
					    if(i == TotalDeContas + 1){
					       System.out.print("ERRO! Numero de contas atingido!\n\n");
					       break;
				        }
					    BufferedReader brc = new BufferedReader(new InputStreamReader(System.in)); //
					    int numeroConta;
				        String numConta ="";
				        System.out.print("\nDigite o numero da conta: ");
				        try{
				            numConta = brc.readLine(); 
				        }catch (IOException e){
				        	System.out.print("\nERRO! Conta Invalida");
				        }
				        numeroConta = Integer.parseInt(numConta); 
				        ct[i].setNumero(numeroConta); 

				        String nomeUsuario ="";
				        Scanner nm = new Scanner(System.in);
				        System.out.print("\nDigite o nome do requerente: ");
				        nomeUsuario = nm.nextLine();
				        ct[i].setNome(nomeUsuario);
				        i++;
				        break;

				case 2:if(i == 0){
					       System.out.print("\nERRO! Nenhuma conta cadastrada\n");
					       break;
				        }
				        ct[i] = new Conta();
				        int nConta = 0;
				        System.out.print("\nInforme o numero da conta: ");
				        nConta = sc.nextInt();
				        double dep = 0;
				        System.out.printf("Insira o valor do deposito:R$ ");
				        dep = sc.nextDouble();
				        ct[i].depositar(dep);
				        break;

				case 3: System.out.print("\nAinda nao fiz");
				        break;

				case 4: if (i == 0){
					    	System.out.print("\nERRO! Nenhuma conta cadastrada!\n");
					    	break;
				 		}
						System.out.print("\nInforme o numero da conta: ");
						int nCta = 0;
						nCta = sc.nextInt();
						ct[nCta].imprimirEstado();
						break;
				case 5: System.exit(0);

				default : System.out.print("\nOpcao Invalida\n\n");
			}

		}while (true);
	}
}

}[/code]

CLASSE CONTA

[code]public class Conta {
private int numero;
private String nomeTitular;
private double saldo;

public Conta(){
}

public double getSaldo(){
return saldo;
}

public void depositar(double valor){
if(valor >= 0){
saldo+=valor;
}else{
System.out.print("\nValor invalido\n\n");
}
}

public void sacar(double valor){
if(valor < getSaldo() && valor > 0){
saldo-=valor;
}else{
if(valor < 0){
System.out.println("\nValor invalido\n\n");
}else{
System.out.println(“Saldo Insuficiente\n\n”);
}
}
}

public String getNome(){
return nomeTitular;
}

public void setNome(String nome){
nomeTitular = nome;
}

public int getNumero(){
return numero;
}

public void setNumero(int num){
numero = num;
}

public void imprimirEstado(){
System.out.println("\nConta…: " + numero);
System.out.println("\nTitular: " + nomeTitular);
System.out.println("\nSaldo…: " + saldo);
}

}[/code]

aesbragantino, coloca ai tambem o erro que aparece para voce na sua IDE, ajudaria a te ajudar :slight_smile:

Bom dia guijocargo , então executei o código no Jcreator e ele executa perfeitamente não aponta nenhum erro, o problema e que não estou conseguindo capturar os dados, hora ele captura nome e numero da conta que estão no case “CRIAR CONTA”, hora captura o deposito que esta no case “DEPOSITAR”, quando vou imprimir ele imprime assim

[quote]Numero da Conta: 1
Nome do Cliente: Fulano de Tal
Saldo: 0.0

OU

Numero da Conta: 0
Nome do Cliente: null
Saldo: 100.0[/quote]

Ele não liga o deposito a conta desejada.

Obrigado pela atenção :smiley:

vc tem que procurar a conta no Array que vc criou utilizando um looping…

utilizando assim vc esta depositando em uma nova conta e não, na conta que o usuario inseriu…

ct[i].depositar(dep);

O problema está nas linhas 69 quando você chama ct[i].depositar(dep) e 82 quando você está chamando ct[nCta].imprimirEstado()

Quando você adiciona uma conta você coloca a conta 1 na posição 0 do vetor, então ao chamar ct[nCta].imprimirEstado() para conseguir os valores inseridos você precisa chamar da seguinte forma:

ct[i-1].depositar(dep)

ct[nCta-1].imprimirEstado()

Existem mais formas também, mas isso resolve ^^

[color=red]RESOLVIDO. Obrigado a todos :smiley: [/color]