increase the number of users for this program

0

I have the following code which is only for a single person to register, the question would be how to do it so that at least 2 people can register in this program and the data of each client is stored.

import java.util.Scanner;
import java.util.Random;
public class Cajero {
    static boolean validar_contraseña(int contraseña) {
        Scanner sc = new Scanner(System.in);
        int cl, cl1, intentos=0;
        boolean valor_retorno;

        do {
            System.out.println ("Ingrese contraseña:");
            cl1 = sc.nextInt();

            if (cl1==contraseña) {   
                System.out.println ("Contraseña aceptada...");
                valor_retorno = true;
                intentos=3;
            }
            else {
                System.out.println ("La contraseña ingresada no corresponde a la cuenta. Intente de nuevo..");
                intentos++;
                valor_retorno = false;
            }
        } while (intentos<3);
        return valor_retorno;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random  rnd = new Random();

        boolean resp;
        String documento;
        int cl1=0;
        int cl2=0;
        double consignacion = 0;
        String contraseña="";
        int nocuenta=0;
        String cuenta="";
        String[][] cuentas = new String[5][5];
        //varchar cuentas[][];
        int i=0;
        int op=0;
        int op1=0;
        double retiro = 0;
        double saldo = 0;
        String nombre="";

        do {
            System.out.println ("\n\n");

            System.out.println ("  Bienvenidos a su Banco PCA  ");
            System.out.println ("      MENU PRINCIPAL      ");
            System.out.println ("        Seleccione:        ");
            System.out.println ("   1-Apertura de cuenta    ");
            System.out.println ("   2-Menu transacciones  ");
            System.out.println ("         3-Salir          ");

            System.out.print ("Seleccione opcion y pulse Enter : ");

            do {
                op = sc.nextInt();
            } while (op<1 && op>3);

            switch (op) {
            case 1:
                System.out.println ("MENU DE APERTURA DE CUENTAS");
                System.out.println ("Ingrese Nombre");
                nombre = sc.next();
                System.out.println ("Ingrese Nro Documento");
                documento  = sc.next();
                do {
                    System.out.println ("Ingrese Clave para su nueva cuenta (Valor numerico)");
                    cl1 = sc.nextInt();
                    System.out.println ("Ingrese Nuevamente la Clave para su nueva cuenta (Valor numerico)");
                    cl2 = sc.nextInt();
                    if (cl1 != cl2) {
                        System.out.println ("Error en la comprobación de la contraseña.  Intentelo nuevamente...");
                    }
                }while (cl1 != cl2);                  

                nocuenta = rnd.nextInt(100);
                System.out.println ("Ingrese monto deposito inicial:");
                saldo = sc.nextDouble();
                System.out.println ("Sr (a) :"+nombre);
                System.out.println ("Su numero de cuenta es:"+nocuenta);                           
                System.out.println ("Su saldo es:"+saldo);                           
                System.out.println ("Pulse cualquier numero y Enter para continuar...");                           
                op1 = sc.nextInt();
                break;                  
            case 2:
                System.out.println ("\n\n");

                System.out.println ("  Bienvenidos a su Banco PCA  ");
                System.out.println ("      MENU TRANSACCIONES      ");
                System.out.println ("      1-Depositar Dinero:  ");
                System.out.println ("      2-Retirar Dinero    ");
                System.out.println ("      3-Consultar Saldo       ");
                System.out.println ("      4-Cambio de clave       ");
                System.out.println (" 5-Regresar al menu principal ");

                System.out.print ("Digite opcion...:");
                op1 = sc.nextInt();
                switch (op1) {
                case 1:
                    System.out.println ("Depositos:");
                    //resp = validar_contraseña(cl1);
                    if (validar_contraseña(cl1)) {
                        System.out.println ("Consignar a la cuenta "+cuenta+" De "+nombre);
                        System.out.println ("Ingrese valor consignación:");
                        consignacion = sc.nextDouble();
                        if (consignacion>0) {
                            saldo = saldo + consignacion;

                            System.out.println ("Su nuevo saldo es de : "+saldo);
                            System.out.println ("Gracias por utilizar nuestros servicios...");
                        }
                    }
                    else {
                        System.out.println ("No se pudo verificar la información suministrada...");
                    }
                    System.out.println ("Pulse cualquier numero y Enter para continuar...");                           
                    op1 = sc.nextInt();
                    break;
                case 2:
                    System.out.println ("Retiros");
                    if (validar_contraseña(cl1)) {
                        System.out.println ("Ingrese valor a Retirar:");
                        retiro = sc.nextDouble();
                        if (retiro>0) {
                            saldo = saldo - retiro;

                            System.out.println ("Su nuevo saldo es de:"+saldo);
                            System.out.println ("Gracias por utilizar nuestros servicios...");

                            System.out.println ("Pulse cualquier numero y Enter para continuar...");                           
                            op1 = sc.nextInt();
                        }
                    }
                    else {
                        System.out.println ("No se pudo verificar la información suministrada...");
                    }
                    break;


                case 3:
                    System.out.println ("Consulta de saldo");
                    if (validar_contraseña(cl1)) {
                        System.out.println ("Su saldo es de:"+saldo);
                        System.out.println ("Gracias por utilizar nuestros servicios...");

                        System.out.println ("Pulse cualquier numero y Enter para continuar...");                           
                        op1 = sc.nextInt();
                    }
                    else {
                        System.out.println ("No se pudo verificar la información suministrada...");
                    }
                    break;

                case 4:
                    System.out.println ("Cambio de clave");
                    if (validar_contraseña(cl1)) {
                        System.out.println ("Cambio de clave de la cuenta "+nocuenta+" De "+nombre);

                        do {
                            System.out.println ("Ingrese nueva Clave (Valor numerico)");
                            cl1 = sc.nextInt();
                            System.out.println ("Ingrese Nuevamente la nueva Clave (Valor numerico)");
                            cl2 = sc.nextInt();
                            if (cl1 != cl2) {
                                System.out.println ("Error en la comprobación de la contraseña.  Intentelo nuevamente...");
                            }
                        }while (cl1 != cl2);   
                        System.out.println ("Se ha asignado nueva clave a la cuenta ");
                    }
                    break;
                case 5:
                    System.out.println("Transferir dinero a otra cuenta");


                default:
                    System.out.println ("Opcion no valida... Intente nuevamente");
                    break;
                }
            }
        } while(op!=3);
        System.out.println ("Gracias por utilizar nuestros servicios...Hasta Pronto.");
    }   





}
    
asked by juanito 16.05.2018 в 00:27
source

1 answer

0

There are many ways to do what you want.

  • Make a class called Accounts with the variables name, document, password, password and account number. Then create a list of accounts (using a List) and be able to modify them separately in the program (with Getters and Setters).
  • Save each account in ArrayList of type String or Integer but, if you do in this way you will also have to make an ArrayList for balance, another for account number, etc ...
  • You can also do the same with Arrays. Example: int[] clave, número de cuenta , and String[] nombre, documento .
  • The best option of these three is the first. I have eliminated part of your code to make it shorter and you can understand the changes I have made, but when you understand how it works you can make the modifications you want so that everything is to your liking.

    The only thing I did so that you have it as an example and you can do the other options of your menu was: the Account class, Opening account and Depositing money. Right now you can create countless accounts in the program and you can deposit money to one of them. I have included a new option in the menu called 3-Detalles de cuentas existentes where you can see all the details of all the accounts, including the balance. It would be necessary that you modify the code so that you subtract the amount to deposit to another account and etc ... Surely you will be able to do it.

    Be careful with the comments I have left.

    Class Account:

    public class Cuenta {
    
        // Variables
        private int numeroCuenta;
        private String nombre;
        private String documento;
        private double saldo;
        private int clave;
    
        // Constructor vacío para permitir la instancia
        public Cuenta() {
        }
    
        // GETTERS
        public int getNumeroCuenta() {
            return numeroCuenta;
        }
        public String getNombre() {
            return nombre;
        }
        public String getDocumento() {
            return documento;
        }
        public double getSaldo() {
            return saldo;
        }
        public int getClave() {
            return clave;
        }
    
        // SETTERS
        public void setNumeroCuenta(int numeroCuenta) {
            this.numeroCuenta = numeroCuenta;
        }
        public void setNombre(String nombre) {
            this.nombre = nombre;
        }
        public void setDocumento(String documento) {
            this.documento = documento;
        }
        public void setSaldo(double saldo) {
            this.saldo = saldo;
        }
        public void setClave(int clave) {
            this.clave = clave;
        }
    }
    

    Main class with the main: (I've added the changes you've requested in the comments)

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    import java.util.Scanner;
    
    public class SO {
    
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            Random rnd = new Random();
    
            // Clase Cuenta
            Cuenta cuenta;
            // Lista de cuentas
            List<Cuenta> cuentas = new ArrayList<Cuenta>();
    
            int cl1 = 0;
            int cl2 = 0;
            int op = 0;
            int op1 = 0;
            // He movido algunas declaraciones de variables dentro del switch
    
            do {
                System.out.println("\n\n");
    
                System.out.println("  Bienvenidos a su Banco PCA  ");
                System.out.println("      MENU PRINCIPAL      ");
                System.out.println("        Seleccione:        ");
                System.out.println("   1-Apertura de cuenta    ");
                System.out.println("   2-Menu transacciones  ");
                System.out.println("   3-Detalles de cuentas existentes  "); // Nueva opción
                System.out.println("         4-Salir          ");
    
                System.out.print("Seleccione opcion y pulse Enter : ");
    
                do {
                    op = sc.nextInt();
                } while (op < 1 && op > 3);
    
                switch (op) {
                case 1: // Apertura de cuenta
                    System.out.println("MENU DE APERTURA DE CUENTAS");
                    System.out.println("Ingrese Nombre");
                    String nombre = sc.next();
                    System.out.println("Ingrese Nro Documento");
                    String documento = sc.next();
                    do {
                        System.out.println("Ingrese Clave para su nueva cuenta (Valor numerico)");
                        cl1 = sc.nextInt();
                        System.out.println("Ingrese Nuevamente la Clave para su nueva cuenta (Valor numerico)");
                        cl2 = sc.nextInt();
                        if (cl1 != cl2) {
                            System.out.println("Error en la comprobación de la contraseña.  Intentelo nuevamente...");
                        }
                    } while (cl1 != cl2);
    
                    int nocuenta = rnd.nextInt(100);
                    System.out.println("Ingrese monto deposito inicial:");
                    double saldo = sc.nextDouble();
                    System.out.println("Sr (a) :" + nombre);
                    System.out.println("Su numero de cuenta es:" + nocuenta);
                    System.out.println("Su saldo es:" + saldo);
                    System.out.println("Pulse cualquier numero y Enter para continuar...");
    
                    // Guardar cuenta
                    cuenta = new Cuenta();
                    cuenta.setNumeroCuenta(nocuenta);
                    cuenta.setNombre(nombre);
                    cuenta.setDocumento(documento);
                    cuenta.setClave(cl1);
                    cuenta.setSaldo(saldo);
                    // Agregar a la lista
                    cuentas.add(cuenta);
    
                    op1 = sc.nextInt();
                    break;
                case 2: // Menu transacciones
                    System.out.println("\n\n");
    
                    System.out.println("  Bienvenidos a su Banco PCA  ");
                    System.out.println("      MENU TRANSACCIONES      ");
                    System.out.println("      1-Depositar Dinero:  ");
                    System.out.println("      2-Retirar Dinero    ");
                    System.out.println("      3-Consultar Saldo       ");
                    System.out.println("      4-Cambio de clave       ");
                    System.out.println("      5-Transferir dinero a otra cuenta       ");
                    System.out.println(" 5-Regresar al menu principal ");
    
                    System.out.print("Digite opcion...:");
                    op1 = sc.nextInt();
                    switch (op1) {
                    case 1:
                        System.out.println("Depositos");
    
                        // Validar que el número de cuenta existe
                        boolean existe = false;
    
                        do {
                            System.out.println("Número de cuenta que recibirá el depósito: ");
                            int numeroCuenta = sc.nextInt();
    
                            for (Cuenta cuentaActual : cuentas) {
    
                                // Si existe
                                if (cuentaActual.getNumeroCuenta() == numeroCuenta) {
                                    existe = true;
    
                                    System.out.println("Monto: ");
                                    double monto = sc.nextDouble();
    
                                    double saldoActualizado = cuentaActual.getSaldo() + monto;
    
                                    System.out.println("Saldo actualizado. Antes: " + cuentaActual.getSaldo() + ", ahora: " + saldoActualizado);
    
                                    // Actualizar saldo
                                    cuentaActual.setSaldo(saldoActualizado);
                                }
                            }
    
                            // Si no existe
                            if (existe == false) {
                                System.out.println("Cuenta no encontrada. Intentelo nuevamente...");
                            }
    
                        } while (existe == false);
    
                        System.out.println("Pulse cualquier numero y Enter para continuar...");
                        op1 = sc.nextInt();
                        break;
                    case 2:
                        System.out.println("Retiros");
                        break;
    
                    case 3:
                        System.out.println("Consulta de saldo");
                        break;
    
                    case 4:
                        System.out.println("Cambio de clave");
                        break;
                    case 5:
                        System.out.println("Transferir dinero a otra cuenta");
    
                        // Validar que el número de cuenta que enviará el dinero existe
                        boolean existeEnviara = false;
                        int indexCuentaEnviara = 0;
    
                        do {
                            System.out.println("Número de cuenta que enviará el dinero: ");
                            int numeroCuentaEnviara = sc.nextInt();
    
                            for (int i = 0; i < cuentas.size(); i++) {
                                if (cuentas.get(i).getNumeroCuenta() == numeroCuentaEnviara) {
                                    existeEnviara = true;
    
                                    // Guardar posición de la cuenta
                                    // La usaremos más adelante para saber a cuál cuenta restarle dinero
                                    indexCuentaEnviara = i;
                                }
                            }
    
                            // Si no existe avisar al usuario
                            if (existeEnviara == false) {
                                System.out.println("Cuenta no encontrada. Intentelo nuevamente...");
                            }
    
                        } while (existeEnviara == false);
    
                        // Validar que el número de cuenta que recibirá el dinero existe
                        boolean existeRecibira = false;
                        int indexCuentaRecibira = 0;
    
                        do {
                            System.out.println("Número de cuenta que recibirá el dinero: ");
                            int numeroCuentaEnviara = sc.nextInt();
    
                            for (int i = 0; i < cuentas.size(); i++) {
                                if (cuentas.get(i).getNumeroCuenta() == numeroCuentaEnviara) {
                                    existeRecibira = true;
    
                                    // Guardar posición de la cuenta
                                    // La usaremos más adelante para saber a cuál cuenta sumarle dinero
                                    indexCuentaRecibira = i;
                                }
                            }
    
                            // Si no existe
                            if (existeRecibira == false) {
                                System.out.println("Cuenta no encontrada. Intentelo nuevamente...");
                            }
    
                        } while (existeRecibira == false);
    
                        /**
                         * Preguntar el monto
                         * Debitaremos este monto a la cuenta que enviará
                         * Sumaremos el monto a la cuenta que recibirá
                         * Debemos validar que la cuenta tenga balance suficiente
                         */
                        boolean balanceSuficiente = false;
                        do {
                            System.out.println("Monto a transferir: ");
                            double montoParaTransferir = sc.nextDouble();
    
                            // Si la cuenta tiene un saldo mayor o igual que el monto a transferir
                            if (cuentas.get(indexCuentaEnviara).getSaldo() >= montoParaTransferir) {
                                balanceSuficiente = true;
    
                                // Restar de la cuenta que envía
                                double saldoActual = cuentas.get(indexCuentaEnviara).getSaldo();
                                System.out.println("La cuenta número " + cuentas.get(indexCuentaEnviara).getNumeroCuenta() + " tenía $" + saldoActual + " y ahora tiene $" + (saldoActual - montoParaTransferir));
                                saldoActual = saldoActual - montoParaTransferir;
                                cuentas.get(indexCuentaEnviara).setSaldo(saldoActual);
    
                                // Sumar monto a la cuenta que recibe
                                double saldoActual2 = cuentas.get(indexCuentaRecibira).getSaldo();
                                System.out.println("La cuenta número " + cuentas.get(indexCuentaRecibira).getNumeroCuenta() + " tenía $" + saldoActual2 + " y ahora tiene $" + (saldoActual2 + montoParaTransferir));
                                saldoActual2 = saldoActual2 + montoParaTransferir;
                                cuentas.get(indexCuentaRecibira).setSaldo(saldoActual2);
                            } else { // Si no tiene el monto disponible
                                System.out.println("La cuenta no tiene $" + montoParaTransferir + " disponible. Intente otro...");
                            }
                        } while (balanceSuficiente == false);
    
                        System.out.println("Pulse cualquier numero y Enter para continuar...");
                        op1 = sc.nextInt();
                        break;
    
                    default:
                        System.out.println("Opcion no valida... Intente nuevamente");
                        break;
                    }
                    break;
                case 3: // Detalles de cuentas existentes
                    // Imprimir información de todas las cuentas existentes
                    System.out.println("\nCantidad de cuentas existentes: " + cuentas.size());
    
                    for (Cuenta cuentaActual : cuentas) {
                        System.out.println("----------");
                        System.out.println("Número de cuenta: " + cuentaActual.getNumeroCuenta());
                        System.out.println("Nombre: " + cuentaActual.getNombre());
                        System.out.println("Documento: " + cuentaActual.getDocumento());
                        System.out.println("Saldo: " + cuentaActual.getSaldo());
                        System.out.println("Clave: " + cuentaActual.getClave());
                        System.out.println("----------");
                    }
    
                    System.out.println("Pulse cualquier numero y Enter para continuar...");
                    op1 = sc.nextInt();
                    break;
                }
            } while (op != 4); // Cambiado a 4
    
            sc.close(); // Cerrar Scanner
            System.out.println("Gracias por utilizar nuestros servicios...Hasta Pronto.");
        }
    }
    

    I hope I have helped you, regards!

        
    answered by 16.05.2018 / 18:34
    source