Foros del Web » Programación para mayores de 30 ;) » Java »

Cajero Automatico con Archivos

Estas en el tema de Cajero Automatico con Archivos en el foro de Java en Foros del Web. Bueno amigos mi problema es que mi profesor de la Universidad me mando a hacer un cajero automatico, y lo hice, ahora quiere que lo ...
  #1 (permalink)  
Antiguo 19/01/2016, 08:26
Avatar de IngCharlie  
Fecha de Ingreso: enero-2016
Mensajes: 4
Antigüedad: 8 años, 10 meses
Puntos: 0
Información Cajero Automatico con Archivos

Bueno amigos mi problema es que mi profesor de la Universidad me mando a hacer un cajero automatico, y lo hice, ahora quiere que lo haga con archivos.
EL problema es que el dijo que simule una tarjeta; entonces supuestamente la tarjeta deberia ingresar, y luego ser validada con el archivo, luego validar las contraseñas y eso no me sale porfavor alguna ayuda?

#package cajero.automatico;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import java.util.Scanner;

/**
*
* @author Charlie Cárdenas
*/
public class ejecutor2 {



public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int nc = 0, h = 0, nIntentos = 0, mov = 0, op;
String password = "";
boolean error, enc = false;
//Variables a usar en la clase ejecutora
Cuenta objCuenta = new Cuenta();

System.out.println("============================== ======================");
System.out.println("|| COOPERATIVA DE AHORRO Y CREDITO 'COOPMEGO' ||");
System.out.println("|| ||");
System.out.print("|| Ingresa tu tarjeta: ");
String direccion = sc.next();
System.out.print("|| Verificando.... ||\n");
LeerTarjeta(direccion);
do {
try {

LeerTarjeta(direccion);
if (LeerTarjeta(direccion).equals(direccion)) {
System.out.println("|| Enhorabuena ||");

}
} catch (Exception e) {
error = true;
System.err.println("Tarjeta invalida, porfavor Ingresa otra ");
}

} while (error = false);
LeerTarjeta(direccion);

System.out.print("|| Ingrese su contraseña: ");
password = sc.next();

if (password.equals(LeerTarjeta(direccion))) {
System.out.println("dentro");
System.out.println("============================== ======================");
System.out.println("|| Menu Opciones ||");
System.out.println("||ªªªªªªªªªªªªªªªªªªªªªªªªªªªª ªªªªªªªªªªªªªªªªªªªª||");
System.out.println("|| 1. Retirar ||");
System.out.println("|| 1. Transferencia ||");
} else {
System.out.println("fuera");
}

//Bloque que realiza la funcion de comprobar la contaseña ingresada por el
//usuario permitiendole solo un maximo de tres intentos
//
// // do {
// // Base[h].info();
// // do {
// System.out.println("Escoja una opcion entre 1 y 4");
// op = sc.nextInt();
// } while ((op < 1) || (op > 4));
///
// switch (op) {
// case 1:
// do {
// error = false;
// System.out.println("Ingrese la cantidad");
// try {
// mov = sc.nextInt();
// } catch (NumberFormatException e) {
// System.out.println("Ingrese solo numeros");
// error = true;
// }
// } while (error);
// if ((mov < 5) || (mov > 200)) {
// System.out.println("El monto minimo de retiro es de 5$ y el max de 200$");
// }//LLave del if
// else if (Base[h].Retiro(mov)) {
// System.out.println("Operacion realizada con exito");
// } else {
// System.out.println("No cuenta con saldo suficiente");
// }//llave del else
// break;
//
// case 2:
// do {
// error = false;
// System.out.println("Ingrese la cantidad");
// try {
// mov = sc.nextInt();
// } catch (NumberFormatException e) {
// System.out.println("Ingrese solo numeros");
// error = true;
// }
// } while (error);
// do {
// error = false;
// System.out.println("Ingrese numero de cuenta a la que va a enviar");
// try {
// nc = sc.nextInt();
// } catch (NumberFormatException e) {
// error = true;
// System.out.println("No debe ingresar ninguna letra");
// System.out.println("Vuelva a ingresar el numero de cuenta");
// }
// } while (error);
// if (Base[h].Transferencia(mov)) {
// System.out.println("Operacion realizada con exito");
// } else {
// System.out.println("No cuenta con saldo suficiente");
// }
// break;
//
// case 3:
// Base[h].Consulta();
// break;
//
// }//switch
//
// } while (op < 4);
}

private static String LeerTarjeta(String direccion) throws FileNotFoundException, IOException {
BufferedReader bf = new BufferedReader(new FileReader(direccion));
String temp = "";
//Usuario, NoCuenta, Cuenta, pass, saldo
String usuario;
String noCuenta;
String cuenta;
String pass;
String saldo;
String linea;
while ((linea = bf.readLine()) != null) {

for (int i = 0; i < 5; i++) {
switch (i) {
case 0:
usuario = bf.readLine();
break;
case 1:
noCuenta = bf.readLine();
break;
case 2:
cuenta = bf.readLine();
break;
case 3:
pass = bf.readLine();
break;
case 4:
saldo = bf.readLine();
break;
default:
}

}
}

bf.close();
return direccion;
}

}
  #2 (permalink)  
Antiguo 19/01/2016, 09:35
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Cajero Automatico con Archivos

Buenas,

Tu codigo es ilegible si no utilizas la herramienta Highlight:



Tambien es importante que especifiques tu problema, ya que el "no me sale" es muy generico.

Un saludo
__________________
If to err is human, then programmers are the most human of us

Última edición por Profesor_Falken; 19/01/2016 a las 09:41
  #3 (permalink)  
Antiguo 19/01/2016, 12:03
Avatar de IngCharlie  
Fecha de Ingreso: enero-2016
Mensajes: 4
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Cajero Automatico con Archivos

Código Java:
Ver original
  1. package cajero.automatico;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileReader;
  6. import java.io.IOException;
  7. import java.text.DecimalFormat;
  8.  
  9. import java.util.Scanner;
  10.  
  11. /**
  12.  *
  13.  * @author Charlie Cárdenas
  14.  */
  15. public class ejecutor2 {
  16.  
  17.     public static void main(String[] args) throws IOException {
  18.         Scanner sc = new Scanner(System.in);
  19.         int nc = 0, h = 0, nIntentos = 0, mov = 0, op;
  20.         String password = "";
  21.         boolean error, enc = false;
  22.         //Variables a usar en la clase ejecutora
  23.         Cuenta objCuenta = new Cuenta();
  24.  
  25.         System.out.println("====================================================");
  26.         System.out.println("||     COOPERATIVA DE AHORRO Y CREDITO 'COOPMEGO'  ||");
  27.         System.out.println("||                                                 ||");
  28.         System.out.print("|| Ingresa tu tarjeta: ");
  29.         String direccion = sc.next();
  30.         System.out.print("|| Verificando....                                 ||\n");
  31.         LeerTarjeta(direccion);
  32.         do {
  33.             try {
  34.  
  35.                 LeerTarjeta(direccion);
  36.                 if (LeerTarjeta(direccion).equals(direccion)) {
  37.                     System.out.println("|| Enhorabuena                                     ||");
  38.  
  39.                 }
  40.             } catch (Exception e) {
  41.                 error = true;
  42.                 System.err.println("Tarjeta invalida, porfavor Ingresa otra ");
  43.             }
  44.  
  45.         } while (error = false);
  46.         LeerTarjeta(direccion);
  47.  
  48.         System.out.print("||  Ingrese su contraseña: ");
  49.         password = sc.next();
  50.  
  51.         if (password.equals(LeerTarjeta(direccion))) {
  52.             System.out.println("dentro");
  53.             System.out.println("====================================================");
  54.             System.out.println("||                Menu Opciones                   ||");
  55.             System.out.println("||ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª||");
  56.             System.out.println("|| 1. Retirar                                     ||");
  57.             System.out.println("|| 1. Transferencia                               ||");
  58.         } else {
  59.             System.out.println("fuera");
  60.         }
  61.  
  62. //Bloque que realiza la funcion de comprobar la contaseña ingresada por el
  63. //usuario permitiendole solo un maximo de tres intentos
  64. //
  65. //    //    do {
  66. //     //       Base[h].info();
  67. //   //         do {
  68. //                System.out.println("Escoja una opcion entre 1 y 4");
  69. //                op = sc.nextInt();
  70. //            } while ((op < 1) || (op > 4));
  71. ///
  72. //            switch (op) {
  73. //                case 1:
  74. //                    do {
  75. //                        error = false;
  76. //                        System.out.println("Ingrese la cantidad");
  77. //                        try {
  78. //                            mov = sc.nextInt();
  79. //                        } catch (NumberFormatException e) {
  80. //                            System.out.println("Ingrese solo numeros");
  81. //                            error = true;
  82. //                        }
  83. //                    } while (error);
  84. //                    if ((mov < 5) || (mov > 200)) {
  85. //                        System.out.println("El monto minimo de retiro es de 5$ y el max de 200$");
  86. //                    }//LLave del if
  87. //                    else if (Base[h].Retiro(mov)) {
  88. //                        System.out.println("Operacion realizada con exito");
  89. //                    } else {
  90. //                        System.out.println("No cuenta con saldo suficiente");
  91. //                    }//llave del else
  92. //                    break;
  93. //
  94. //                case 2:
  95. //                    do {
  96. //                        error = false;
  97. //                        System.out.println("Ingrese la cantidad");
  98. //                        try {
  99. //                            mov = sc.nextInt();
  100. //                        } catch (NumberFormatException e) {
  101. //                            System.out.println("Ingrese solo numeros");
  102. //                            error = true;
  103. //                        }
  104. //                    } while (error);
  105. //                    do {
  106. //                        error = false;
  107. //                        System.out.println("Ingrese numero de cuenta a la que va a enviar");
  108. //                        try {
  109. //                            nc = sc.nextInt();
  110. //                        } catch (NumberFormatException e) {
  111. //                            error = true;
  112. //                            System.out.println("No debe ingresar ninguna letra");
  113. //                            System.out.println("Vuelva a ingresar el numero de cuenta");
  114. //                        }
  115. //                    } while (error);
  116. //                    if (Base[h].Transferencia(mov)) {
  117. //                        System.out.println("Operacion realizada con exito");
  118. //                    } else {
  119. //                        System.out.println("No cuenta con saldo suficiente");
  120. //                    }
  121. //                    break;
  122. //
  123. //                case 3:
  124. //                    Base[h].Consulta();
  125. //                    break;
  126. //
  127. //            }//switch
  128. //
  129. //        } while (op < 4);
  130.     }
  131.  
  132.     private static String LeerTarjeta(String direccion) throws FileNotFoundException, IOException {
  133.         BufferedReader bf = new BufferedReader(new FileReader(direccion));
  134.         String temp = "";
  135.         //Usuario, NoCuenta, Cuenta, pass, saldo
  136.         String usuario;
  137.         String noCuenta;
  138.         String cuenta;
  139.         String pass;
  140.         String saldo;
  141.         String linea;
  142.         while ((linea = bf.readLine()) != null) {
  143.  
  144.             for (int i = 0; i < 5; i++) {
  145.                 switch (i) {
  146.                     case 0:
  147.                         usuario = bf.readLine();
  148.                         break;
  149.                     case 1:
  150.                         noCuenta = bf.readLine();
  151.                         break;
  152.                     case 2:
  153.                         cuenta = bf.readLine();
  154.                         break;
  155.                     case 3:
  156.                         pass = bf.readLine();
  157.                         break;
  158.                     case 4:
  159.                         saldo = bf.readLine();
  160.                         break;
  161.                     default:
  162.                 }
  163.  
  164.             }
  165.         }
  166.  
  167.         bf.close();
  168.         return direccion;
  169.     }
  170.  
  171. }


El problema es que quiero comprar la contraseña que ingresa el Usuario, con la COntraseña que esta dentro de un Archivo txt
  #4 (permalink)  
Antiguo 19/01/2016, 12:08
Avatar de IngCharlie  
Fecha de Ingreso: enero-2016
Mensajes: 4
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Cajero Automatico con Archivos

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Tu codigo es ilegible si no utilizas la herramienta Highlight:



Tambien es importante que especifiques tu problema, ya que el "no me sale" es muy generico.

Un saludo
Código Java:
Ver original
  1. package cajero.automatico;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileReader;
  6. import java.io.IOException;
  7. import java.text.DecimalFormat;
  8.  
  9. import java.util.Scanner;
  10.  
  11. /**
  12.  *
  13.  * @author Charlie Cárdenas
  14.  */
  15. public class ejecutor2 {
  16.  
  17.     public static void main(String[] args) throws IOException {
  18.         Scanner sc = new Scanner(System.in);
  19.         int nc = 0, h = 0, nIntentos = 0, mov = 0, op;
  20.         String password = "";
  21.         boolean error, enc = false;
  22.         //Variables a usar en la clase ejecutora
  23.         Cuenta objCuenta = new Cuenta();
  24.  
  25.         System.out.println("====================================================");
  26.         System.out.println("||     COOPERATIVA DE AHORRO Y CREDITO 'COOPMEGO'  ||");
  27.         System.out.println("||                                                 ||");
  28.         System.out.print("|| Ingresa tu tarjeta: ");
  29.         String direccion = sc.next();
  30.         System.out.print("|| Verificando....                                 ||\n");
  31.         LeerTarjeta(direccion);
  32.         do {
  33.             try {
  34.  
  35.                 LeerTarjeta(direccion);
  36.                 if (LeerTarjeta(direccion).equals(direccion)) {
  37.                     System.out.println("|| Enhorabuena                                     ||");
  38.  
  39.                 }
  40.             } catch (Exception e) {
  41.                 error = true;
  42.                 System.err.println("Tarjeta invalida, porfavor Ingresa otra ");
  43.             }
  44.  
  45.         } while (error = false);
  46.         LeerTarjeta(direccion);
  47.  
  48.         System.out.print("||  Ingrese su contraseña: ");
  49.         password = sc.next();
  50.  
  51.         if (password.equals(LeerTarjeta(direccion))) {
  52.             System.out.println("dentro");
  53.             System.out.println("====================================================");
  54.             System.out.println("||                Menu Opciones                   ||");
  55.             System.out.println("||ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª||");
  56.             System.out.println("|| 1. Retirar                                     ||");
  57.             System.out.println("|| 1. Transferencia                               ||");
  58.         } else {
  59.             System.out.println("fuera");
  60.         }
  61.  
  62. //Bloque que realiza la funcion de comprobar la contaseña ingresada por el
  63. //usuario permitiendole solo un maximo de tres intentos
  64. //
  65. //    //    do {
  66. //     //       Base[h].info();
  67. //   //         do {
  68. //                System.out.println("Escoja una opcion entre 1 y 4");
  69. //                op = sc.nextInt();
  70. //            } while ((op < 1) || (op > 4));
  71. ///
  72. //            switch (op) {
  73. //                case 1:
  74. //                    do {
  75. //                        error = false;
  76. //                        System.out.println("Ingrese la cantidad");
  77. //                        try {
  78. //                            mov = sc.nextInt();
  79. //                        } catch (NumberFormatException e) {
  80. //                            System.out.println("Ingrese solo numeros");
  81. //                            error = true;
  82. //                        }
  83. //                    } while (error);
  84. //                    if ((mov < 5) || (mov > 200)) {
  85. //                        System.out.println("El monto minimo de retiro es de 5$ y el max de 200$");
  86. //                    }//LLave del if
  87. //                    else if (Base[h].Retiro(mov)) {
  88. //                        System.out.println("Operacion realizada con exito");
  89. //                    } else {
  90. //                        System.out.println("No cuenta con saldo suficiente");
  91. //                    }//llave del else
  92. //                    break;
  93. //
  94. //                case 2:
  95. //                    do {
  96. //                        error = false;
  97. //                        System.out.println("Ingrese la cantidad");
  98. //                        try {
  99. //                            mov = sc.nextInt();
  100. //                        } catch (NumberFormatException e) {
  101. //                            System.out.println("Ingrese solo numeros");
  102. //                            error = true;
  103. //                        }
  104. //                    } while (error);
  105. //                    do {
  106. //                        error = false;
  107. //                        System.out.println("Ingrese numero de cuenta a la que va a enviar");
  108. //                        try {
  109. //                            nc = sc.nextInt();
  110. //                        } catch (NumberFormatException e) {
  111. //                            error = true;
  112. //                            System.out.println("No debe ingresar ninguna letra");
  113. //                            System.out.println("Vuelva a ingresar el numero de cuenta");
  114. //                        }
  115. //                    } while (error);
  116. //                    if (Base[h].Transferencia(mov)) {
  117. //                        System.out.println("Operacion realizada con exito");
  118. //                    } else {
  119. //                        System.out.println("No cuenta con saldo suficiente");
  120. //                    }
  121. //                    break;
  122. //
  123. //                case 3:
  124. //                    Base[h].Consulta();
  125. //                    break;
  126. //
  127. //            }//switch
  128. //
  129. //        } while (op < 4);
  130.     }
  131.  
  132.     private static String LeerTarjeta(String direccion) throws FileNotFoundException, IOException {
  133.         BufferedReader bf = new BufferedReader(new FileReader(direccion));
  134.         String temp = "";
  135.         //Usuario, NoCuenta, Cuenta, pass, saldo
  136.         String usuario;
  137.         String noCuenta;
  138.         String cuenta;
  139.         String pass;
  140.         String saldo;
  141.         String linea;
  142.         while ((linea = bf.readLine()) != null) {
  143.  
  144.             for (int i = 0; i < 5; i++) {
  145.                 switch (i) {
  146.                     case 0:
  147.                         usuario = bf.readLine();
  148.                         break;
  149.                     case 1:
  150.                         noCuenta = bf.readLine();
  151.                         break;
  152.                     case 2:
  153.                         cuenta = bf.readLine();
  154.                         break;
  155.                     case 3:
  156.                         pass = bf.readLine();
  157.                         break;
  158.                     case 4:
  159.                         saldo = bf.readLine();
  160.                         break;
  161.                     default:
  162.                 }
  163.  
  164.             }
  165.         }
  166.  
  167.         bf.close();
  168.         return direccion;
  169.     }
  170.  
  171. }
Mi problema es que quiero comprar la contraseña que ingresa el usuario con la contraseña que estara en el archivo, el archivo tiene 4 lienas escritas, la 1era nombre de usuario 2da cuenta 3era password, 4ta saldo, ncesito comparar la tercera linea, con el paswword que ingresa el usuario eso necesito amigo, me podrias ayuadr
  #5 (permalink)  
Antiguo 19/01/2016, 13:36
 
Fecha de Ingreso: enero-2015
Ubicación: Madrid
Mensajes: 76
Antigüedad: 9 años, 10 meses
Puntos: 5
Respuesta: Cajero Automatico con Archivos

Si ya lo tienes hecho, solo te hace falta comparar tu variable pass del metodo LeerTarjeta con la contraseña ingresada por el usuario...


Hay un metodo equals que te puede servir.

Un saludo.
  #6 (permalink)  
Antiguo 19/01/2016, 14:56
Avatar de IngCharlie  
Fecha de Ingreso: enero-2016
Mensajes: 4
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Cajero Automatico con Archivos

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Tu codigo es ilegible si no utilizas la herramienta Highlight:



Tambien es importante que especifiques tu problema, ya que el "no me sale" es muy generico.

Un saludo
Cita:
Iniciado por nachfren Ver Mensaje
Si ya lo tienes hecho, solo te hace falta comparar tu variable pass del metodo LeerTarjeta con la contraseña ingresada por el usuario...


Hay un metodo equals que te puede servir.

Un saludo.
Si ya llo acomode, lo que pasaba era que no leía el archivo
  #7 (permalink)  
Antiguo 19/01/2016, 15:09
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Cajero Automatico con Archivos

Buenas,

Lo que pasa es que en el metodo LeerTarjeta estas haciendo un return de la ruta del fichero (direccion) en lugar del password (pass).

Un saludo
__________________
If to err is human, then programmers are the most human of us

Etiquetas: automatico, clase, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:59.