Add objects to an ArrayList using other methods

-1

I want to execute the method A_Cliente() in the Main class to be able to add a new object of the type Client in the ArrayList Cli.

package Main;
import java.util.ArrayList;
import java.util.Scanner;


public class Main {
public static void main(String[] args) {




    //Declaro los array de las clases
    ArrayList <Administradores> Admin = new ArrayList<>();
    ArrayList <Empleados> Emp = new ArrayList<>();
    ArrayList <Clientes> Cli = new ArrayList<>();
    ArrayList <Vehiculos> Vehi = new ArrayList<>();

    /*Declaro el objeto donde se van a cargar
    los arrays*/
    Concesionaria obj_cons  = new Concesionaria (Admin,Emp,Cli,Vehi);

    /*Cargo el objeto "obj_cons" en el array
    "Consecionaria"*/
    ArrayList <Concesionaria> Conse = new ArrayList<>();
    Conse.add(obj_cons);



    //Creo los autos
    Vehiculos auto1 = new Vehiculos("Si","Fiat Tipo","AS654");
    Vehiculos auto2 = new Vehiculos("Si","Renault Clio","V4132");
    Vehiculos auto3 = new Vehiculos("No","Ford Kuga","ASFF8");

    //Cargo los autos en el array "Vehi"
    Vehi.add(auto1);
    Vehi.add(auto2);
    Vehi.add(auto3);



    //Cargar el administrador predeterminado
    Administradores admin1 = new Administradores ("admin","admin");
    Admin.add(admin1);


    Clientes cli1 = new Clientes ("cliente","cliente");
    Cli.add(cli1);

    Empleados emp1 = new Empleados ("cliente","cliente");
    Emp.add(emp1);

    /*int tam = Vehi.size();
    for (int i=0;i<tam;i++){
        int num=i+1;
        System.out.println(num+". "+Vehi.get(i).getModelo());
        num++;
    }*/

    //Administradores new_cli = new Administradores (Usuario,Contra);
    //Clientes nuevo_cli= new Clientes ();

    //Pedir al ususario que ingrese id de admin
    System.out.print("Ingrese nombre de usuario: ");
    Scanner scn = new Scanner(System.in);
    String usuario;
    usuario = scn.nextLine();

    //Pedir al ususario que ingrese contrasena de admin
    System.out.print("Ingrese contraseña: ");
    Scanner scn2 = new Scanner(System.in);
    String contraseña;
    contraseña = scn2.nextLine();

    while(!usuario.equals(" ") && !contraseña.equals(" ")){

    if(usuario.equals(admin1.getUsuario()) && contraseña.equals(admin1.getContra())){




            System.out.println("Ingreso exitoso");
            System.out.println("1. Crear auto\n2. Modificar auto\n3. Eliminar auto\n4. Ver auto\n5. Ver todos los auto");
            System.out.println("6. Crear empleado\n7. Modificar empleado\n8. Eliminar empleado\n9. Ver empleado\n10. Ver todos los empleados");
            System.out.println("11. Crear cliente\n12. Modificar cliente\n13. Eliminar cliente\n14. Ver cliente\n15. Ver todos los clientes");
            System.out.println("16. Salir "); 
            System.out.print("Ingrese el numero de la accion que quiera ejecutar: ");
            Scanner scn3 = new Scanner(System.in);
            int opcion;
            int salir=16;
            opcion = scn3.nextInt();
            while(opcion!=salir){
            switch(opcion){
                case 1: Clientes.A_Cliente();
                        break;
            }

            System.out.println("1. Crear auto\n2.Modificar auto\n3.Eliminar auto\n4.Ver auto\n5.Ver todos los auto");
            System.out.println("6. Crear empleado\n7.Modificar empleado\n8.Eliminar empleado\n9.Ver empleado\n10.Ver todos los empleados");
            System.out.println("11. Crear cliente\n12.Modificar cliente\n13.Eliminar cliente\n14.Ver cliente\n15.Ver todos los clientes");
            System.out.println("16. Salir ");
            System.out.print("Ingrese el numero de la accion que quiera ejecutar: ");
            opcion = scn.nextInt();


                                }
                                                                                    }
    else{

        if(usuario.equals(cli1.getUsuario_3()) && contraseña.equals(cli1.getContra_3())){
            System.out.println("Ingreso exitoso");
            System.out.println("Seleccione el auto que desea alquilar:");
            int tam = Vehi.size();
            for (int i=0;i<tam;i++){
                int num=i+1;
                System.out.println(num+". "+Vehi.get(i).getModelo());
                num++;
                                   }
            System.out.println("");
            System.out.println("");
            System.out.println("");
            System.out.println("4. Salir");
            int op_auto;
            int salir_2=4;
            Scanner scn4 = new Scanner(System.in);
            op_auto = scn4.nextInt();
            while (op_auto!=salir_2){
            /*switch(op_auto){
                case 1: System.out.println("El auto seleccionado "+auto1.getDisponibilidad()+" esta disponible.");
                        if(auto1.getDisponibilidad().equals("Si")){

                        }
                case 1: System.out.println("El auto seleccionado "+auto1.getDisponibilidad()+" esta disponible.");
                        if(auto1.getDisponibilidad().equals("Si")){

                        }
                case 1: System.out.println("El auto seleccionado "+auto1.getDisponibilidad()+" esta disponible.");
                        if(auto1.getDisponibilidad().equals("Si")){

                        }
                default: System.out.println("Opcion invalida");
                         break;
            }*/
            System.out.println("Seleccione el auto que desea alquilar:");
            for (int i=0;i<tam;i++){
                int num=i+1;
                System.out.println(num+". "+Vehi.get(i).getModelo());
                num++;
                                   }
            System.out.println("");
            System.out.println("");
            System.out.println("");
            System.out.println("4. Salir");
            op_auto = scn4.nextInt();
            }
        }
        else{



            if(usuario.equals(emp1.getUsuario_2()) && contraseña.equals(emp1.getContra_2())){
                int salir_3=4;
                int op_emp=0;
                Scanner scn5 = new Scanner(System.in);
                op_emp=scn5.nextInt();
                while (op_emp!=salir_3){
                System.out.println("Ingreso exitoso");
                System.out.println("Seleccione la opcion que desea ejecutar: ");
                System.out.println("1. Dar de alta a un cliente\n2. Modificar un cliente\n3. Dar de baja a un cliente\n4. Salir");
                /*switch(op_emp){ 


                }*/
                System.out.println("Seleccione la opcion que desea ejecutar:");
                System.out.println("1. Dar de alta a un cliente\n2.Modificar un cliente\n3.Dar de baja a un cliente\n4.Salir");
                op_emp=scn5.nextInt();

                                       }
                                                                                            }
        }
    }


            System.out.println("Datos vacio, vuelva a ingresarlos: ");
            System.out.print("Ingrese nombre de usuario: ");
            usuario = scn.nextLine();
            System.out.print("Ingrese contraseña: ");
            contraseña = scn2.nextLine();
                                                      }
                                                }



                        }

And this is the class from which I want to execute the method:

package Main;

import java.util.ArrayList;
import java.util.Scanner;

public class Administradores {
        private String Usuario;
        private String Contra;
        //public Administradores new_cli;
        public Administradores(String u, String c){
            Usuario = u;
            Contra = c;

        }
        public void A_Cliente(ArrayList<Clientes> Cli){

            System.out.print("Ingrese nombre de usuario del cliente: ");
            Scanner scn = new Scanner(System.in);
            String usuario_cli;
            usuario_cli = scn.nextLine();

            System.out.print("Ingrese contraseña del cliente: ");
            Scanner scn2 = new Scanner(System.in);
            String contraseña_cli;
            contraseña_cli = scn2.nextLine();


            Clientes cliente1 = new Clientes (contraseña_cli,usuario_cli);
            Cli.add(cliente1);
        }
        public void B_Cliente(ArrayList<Clientes> Cli){
            System.out.print("Ingrese el usuario del cliente que desea eliminar: ");
            Scanner scn2 = new Scanner(System.in);
            String usuario_cli_baja;
            usuario_cli_baja = scn2.nextLine();

            Cli.remove(Cli.indexOf(usuario_cli_baja));
            //Preguntar como eliminar el objeto en donde esta ese usuario
            System.out.print("Eliminacion exitosa");
        }
        public void M_Cliente(ArrayList<Clientes> Cli){
            System.out.println("Ingrese nombre de usuario del cliente que desea modificar: ");
            Scanner scn3 = new Scanner(System.in);
            String usuario_cli_mod;
            usuario_cli_mod = scn3.nextLine();

            System.out.print("Ingrese el nuevo usuario del cliente: ");
            Scanner scn4 = new Scanner(System.in);
            String new_usuario_cli;
            new_usuario_cli = scn4.nextLine();


            System.out.print("Ingrese la nueva contrasena del cliente: ");
            Scanner scn5 = new Scanner(System.in);
            String new_contrasena_cli;
            new_contrasena_cli = scn5.nextLine();

            int pos=0;



            //Cli.set()


        }


/**
 * @return the Contra
 */
public String getContra() {
    return Contra;
}

/**
 * @param Contra the Contra to set
 */
public void setContra(String Contra) {
    this.Contra = Contra;
}

/**
 * @return the Usuario
 */
public String getUsuario() {
    return Usuario;
}

/**
 * @param Usuario the Usuario to set
 */
public void setUsuario(String Usuario) {
    this.Usuario = Usuario;
}
}
    
asked by Nicolas Martinez 06.05.2018 в 21:07
source

1 answer

1

From what I see, the code related to the "CRUD" of clients is:

if(usuario.equals(admin1.getUsuario()) && contraseña.equals(admin1.getContra())){




        System.out.println("Ingreso exitoso");
        System.out.println("1. Crear auto\n2. Modificar auto\n3. Eliminar auto\n4. Ver auto\n5. Ver todos los auto");
        System.out.println("6. Crear empleado\n7. Modificar empleado\n8. Eliminar empleado\n9. Ver empleado\n10. Ver todos los empleados");
        System.out.println("11. Crear cliente\n12. Modificar cliente\n13. Eliminar cliente\n14. Ver cliente\n15. Ver todos los clientes");
        System.out.println("16. Salir "); 
        System.out.print("Ingrese el numero de la accion que quiera ejecutar: ");
        Scanner scn3 = new Scanner(System.in);
        int opcion;
        int salir=16;
        opcion = scn3.nextInt();
        while(opcion!=salir){
        switch(opcion){
            case 1: Clientes.A_Cliente();
                    break;
        }

        System.out.println("1. Crear auto\n2.Modificar auto\n3.Eliminar auto\n4.Ver auto\n5.Ver todos los auto");
        System.out.println("6. Crear empleado\n7.Modificar empleado\n8.Eliminar empleado\n9.Ver empleado\n10.Ver todos los empleados");
        System.out.println("11. Crear cliente\n12.Modificar cliente\n13.Eliminar cliente\n14.Ver cliente\n15.Ver todos los clientes");
        System.out.println("16. Salir ");
        System.out.print("Ingrese el numero de la accion que quiera ejecutar: ");
        opcion = scn.nextInt();


                            }
                                                                                }
else{
.
.
.
.

I detect at least three problems:

  • case 1 : Customers.To_Client () should be case 11 : Customers.To_Client ()
  • Clients.A_Client () is incorrect since requires the step of the reference of the structure containing clients , ie Clients.To_Client (Cli)
  • On the other hand the case11: should include a new loop inside to deal with the different options derived from the customer CRUD
  • In summary your code should point to something like this:

       if(usuario.equals(admin1.getUsuario()) && contraseña.equals(admin1.getContra())){
    
    
    
    
            System.out.println("Ingreso exitoso");
            System.out.println("1. Crear auto\n2. Modificar auto\n3. Eliminar auto\n4. Ver auto\n5. Ver todos los auto");
            System.out.println("6. Crear empleado\n7. Modificar empleado\n8. Eliminar empleado\n9. Ver empleado\n10. Ver todos los empleados");
            System.out.println("11. Crear cliente\n12. Modificar cliente\n13. Eliminar cliente\n14. Ver cliente\n15. Ver todos los clientes");
            System.out.println("16. Salir "); 
            System.out.print("Ingrese el numero de la accion que quiera ejecutar: ");
            Scanner scn3 = new Scanner(System.in);
            int opcion;
            int salir=16;
            opcion = scn3.nextInt();
            while(opcion!=salir){
            switch(opcion){
                case 11: 
                {
                   **//Aquí deberías crear un nuevo loop para las diferentes opciones del CRUD de cliente**  
                    Scanner scn4 = new Scanner(System.in);
                    int opcionCRUDCliente;
                    opcion = scn4.nextInt();
                    int salirCRUDCliente = 4;
                    while(opcionCRUDCliente!=salirCRUDCliente)
                    {
                        //**Aquí hacer el CRUD de cliente según la opción solicitada. Ten en cuenta que, por ejemplo, para el caso añadir cliente, el código Clientes.A_Cliente() es incorrecto ya que necesita el paso de la referencia de la array clientes, es decir Clientes.A_Cliente(Cli**) 
                    }
                }
            }
    
            System.out.println("1. Crear auto\n2.Modificar auto\n3.Eliminar auto\n4.Ver auto\n5.Ver todos los auto");
            System.out.println("6. Crear empleado\n7.Modificar empleado\n8.Eliminar empleado\n9.Ver empleado\n10.Ver todos los empleados");
            System.out.println("11. Crear cliente\n12.Modificar cliente\n13.Eliminar cliente\n14.Ver cliente\n15.Ver todos los clientes");
            System.out.println("16. Salir ");
            System.out.print("Ingrese el numero de la accion que quiera ejecutar: ");
            opcion = scn.nextInt();
    
    
                                }
                                                                                    }
    else{
    .
    .
    .
    .
    

    Greetings,

    David.

        
    answered by 07.05.2018 в 12:31