Java - Arreglos, Que hacer en este caso.

 
Vista:
Imágen de perfil de carlos

Arreglos, Que hacer en este caso.

Publicado por carlos (18 intervenciones) el 01/12/2022 13:45:25
buen día, ayuda con este ejercicio de arreglos ya que al imprimir me aparece la misma informacion, aunque digite dos ingresos diferentes, y como hacer en sueldo para que al colocar un negativo no lo deje continuar sino hasta que vuelva ingresar un valor positivo continua y imprima la INFO.

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

public class ListaEmpleados {

Scanner sc = new Scanner(System.in);
private ArrayList<Empleado> empleadoList = new ArrayList<>();
public void ingresoEmpleados () {


Empleado empleado = new Empleado();


int num = 0;

do {
System.out.println("\nIngrese la cantidad de empleados\n");
num = sc.nextInt();
} while (num < 1);

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

Utilidades.imprimirMensaje("Ingrese el nombre del empleado");
empleado.setNombre(Utilidades.capturarDatos());
Utilidades.imprimirMensaje("Ingrese el Apellido del empleado");
empleado.setApellido(Utilidades.capturarDatos());
Utilidades.imprimirMensaje("Ingrese el Cargo del empleado");
empleado.setCargo(Utilidades.capturarDatos());

//do {
Utilidades.imprimirMensaje("Ingrese el sueldo del empleado");
empleado.setSueldo(Double.parseDouble(Utilidades.capturarDatos()));
// } while ();

empleadoList.add(empleado);

}
}

public void empleadosCompletos () {


System.out.println("\n\t Los empleados son: \t\n");

for (Empleado employee : empleadoList) {

System.out.println(employee.toString());
}

}


public void calcularSalario() {

for (int i = 0; i < empleadoList.size(); i++) {
if (empleadoList.get(i).getSueldo() < 1000000){
System.out.println("*" + empleadoList.get(i).getNombre());
}else{
System.out.println(empleadoList.get(i).getNombre());
}

}

}

}
-------------------------------------------------------------------------------------------------------------------------------------------------------

public class Empleado {


private String nombre;
private String apellido;
private String cargo;
private double sueldo;


/* Construtor */



/* Metodos */

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getApellido() {
return apellido;
}

public void setApellido(String apellido) {
this.apellido = apellido;
}

public String getCargo() {
return cargo;
}

public void setCargo(String cargo) {
this.cargo = cargo;
}

public double getSueldo() {
return sueldo;
}

public void setSueldo(double sueldo) {
this.sueldo = sueldo;
}

@Override
public String toString() {
return "Empleado{" +
"nombre='" + nombre + '\'' +
", apellido='" + apellido + '\'' +
", cargo='" + cargo + '\'' +
", sueldo=" + sueldo +
'}';
}




}

-------------------------------------------------------------------------------

import java.util.Scanner;

public class Utilidades {

private static Scanner sc = new Scanner(System.in); // el in es para datos de entrada, out datos sde salida //

public static String capturarDatos (){

return sc.nextLine();

}

public static void imprimirMensaje (String mensaje){

System.out.println(mensaje);

}



}
.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Arreglos, Que hacer en este caso.

Publicado por Yamil Bracho (17 intervenciones) el 01/12/2022 14:16:16
Hay varias maneras de plantear esa logica. Por ejemplo:


boolean salir = false;
do {
Utilidades.imprimirMensaje("Ingrese el sueldo del empleado");
double dueldo = Double.parseDouble(Utilidades.capturarDatos());
if (sueldo >= 0) {
empleado.setSueldo(sueldo);
salir = true;
} else {
// Mensaje de error
}
} while (!salir);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de carlos

Arreglos, Que hacer en este caso.

Publicado por carlos (18 intervenciones) el 01/12/2022 21:07:55
muchas gracias por tu ayuda, una duda es que esta imprimiendo dos veces la misma información pero ingreso INFO diferente cuando quiero registra 2 o mas empleados. imprime la ultima información


Empleado{nombre='juana de arco maria de los angeles', apellido='mar', cargo='as', sueldo=10.0}
Empleado{nombre='juana de arco maria de los angeles', apellido='mar', cargo='as', sueldo=10.0}
*juana de arco maria de los angeles
*juana de arco maria de los angeles
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Arreglos, Que hacer en este caso.

Publicado por Yamil Bracho (17 intervenciones) el 02/12/2022 14:36:18
Bueno deberias crear el empleado en el ciclo donde lees su informacion.
O sea mueve la senetencia Empleado empleado = new Empleado();a cilco donde lees los empleados

for (int i = 0; i < num; i++) {
Empleado empleado = new Empleado()
Utilidades.imprimirMensaje("Ingrese el nombre del empleado");
...
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de carlos

Arreglos, Que hacer en este caso.

Publicado por carlos (18 intervenciones) el 02/12/2022 23:45:37
si, es algo tan simple, pero tan importante... muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar