Errores con simulador de banco en Java

Iniciado por elkpo32, 4 Noviembre 2015, 13:12 PM

0 Miembros y 1 Visitante están viendo este tema.

elkpo32

Hola, necesito ayuda con un proyecto, cuenado pongo una de las cuentas pre definidas siempre queda en -1 nunca pasa al else, y cuando después del if else pongo un Do While tengo error en las llaves
Alguien puede ayudarme?
Gracias


Código (java) [Seleccionar]
package proyecto;
import java.util.*;

public class hola {

public static void main(String[] args) {
   Scanner input= new Scanner (System.in);
   System.out.println("              ---------------------------------------");
   System.out.println("              --      Bienvenido al cajero         --");
   System.out.println("              ---------------------------------------");
   System.out.println("Ingrese numero de cuenta ");

int num_cuenta= input.nextInt();

int[] numero_de_cuenta={345,783,905,782,103,567,289};
int []monto={500,3456,9000,876,987,453,788888};

int posicion=-1;
for(int i=0;i<numero_de_cuenta.length;i++){
if(num_cuenta==numero_de_cuenta[i]){

posicion=i;
}
}

if(posicion==-1){
System.out.println("la cuenta no existe");
}else{
int op = 5;
do{

System.out.println("1- Debitar en la cuenta");
System.out.println("2- Acreditaren la cuenta");
System.out.println("3- Transferir a otra cuenta");
System.out.println("4- Ver saldo");
System.out.println("5- Salir");
System.out.println("Ingrese una opcion ");
int opp= input.nextInt();
switch(opp){
case 1:
break;
case 2:
System.out.println("Ingrese cantidad a acreditar ");
int balance=input.nextInt();

break;
case 3:
break;
case 4:
   if(num_cuenta==345){
   System.out.println("Su saldo es de $"+monto[0]);
   }else{
   if(num_cuenta==783){
   System.out.println("Su saldo es de $"+monto[1]);
   }else{
   if(num_cuenta==905){
   System.out.println("Sus saldo es de $"+monto[2]);
   }else{
   if(num_cuenta==782){
   System.out.println("Sus saldo es de $"+monto[3]);
   }else{
   if(num_cuenta==103){
   System.out.println("Sus saldo es de $"+monto[4]);
   }else{
   if(num_cuenta==567){
   System.out.println("Sus saldo es de $"+monto[5]);
   }else{
   if(num_cuenta==289){
   System.out.println("Sus saldo es de $"+monto[6]);
   

   }

   }
   }

   }
   }
   }
   }
break;

case 5:
System.out.println("Salió");
break;
default:
System.out.println("El numero no es valido");
break;

}

}while(op!=5);

}
}

}





avesudra

Hola elkpo32, creo (a simple vista) que en el if del for que usas para ver si el número de cuenta existe tienes un error ya que:
Código (java) [Seleccionar]
for(int i=0;i<numero_de_cuenta.length;i++){
       if(posicion==numero_de_cuenta[i]){ // ¿La comparación no sería cuenta == numero_de_cuenta[i]?
            posicion=i;
}

Si te fijas el comentario que he puesto en el código, tú le pides al usuario la cuenta sobre la que quiere trabajar, pero es lógico que si no comparas lo que ingresa el usuario con las cuentas que tienes, sino que comparas otra cosa, entonces no funcionará ya que posición nuca cambiará de -1.

Un saludo.
Regístrate en

elkpo32

Cita de: avesudra en  4 Noviembre 2015, 21:08 PM
Hola elkpo32, creo (a simple vista) que en el if del for que usas para ver si el número de cuenta existe tienes un error ya que:
Código (java) [Seleccionar]
for(int i=0;i<numero_de_cuenta.length;i++){
       if(posicion==numero_de_cuenta[i]){ // ¿La comparación no sería cuenta == numero_de_cuenta[i]?
            posicion=i;
}

Si te fijas el comentario que he puesto en el código, tú le pides al usuario la cuenta sobre la que quiere trabajar, pero es lógico que si no comparas lo que ingresa el usuario con las cuentas que tienes, sino que comparas otra cosa, entonces no funcionará ya que posición nuca cambiará de -1.

Un saludo.
Ohhhhhhhh que error mas tonto, muchas gracias :D
Sí estoy en la centa 345 que contiene 500 como le puedo sumar o restar valor?
Gracias

avesudra

#3
Sabiendo en que índice de la cuenta bancaria es x debería corresponder al índice del monto, digamos que el indice 1 del monto coincide con la cuenta 345, pero esto no es muy eficiente, Lo más lógico sería crearte otra clase que fuese CuentaBancaria, y que albergase atributos como el número de cuenta, los titulares, el monto que hay en la cuenta, y métodos para manejar dichos atributos. Y luego de eso en el main utiizarías un array de objetos del tipo CuentaBancaria.

Un saludo y sobre todo un consejo, cuanto más te comas el coco(aquí en españa es pensar mucho las cosas) más aprenderás.

Regístrate en