Utilizando estructura de repetición for (una de las tantas) para
cargar y mostrar Asambleista:
import java.util.Scanner;
public class EjAsambleista {
//un Scanner para cada tipo de dato
private static Scanner scannerInt;
private static Scanner scannerDouble;
private static Scanner scannerString;
private static Asambleista[] asambleistas;//array para guardar objetos de tipo Asambleista
public static void main(String[] args) {
//inicializamos Scanners
scannerInt =new Scanner(System.in);
scannerDouble =new Scanner(System.in);
scannerString =new Scanner(System.in);
cargarAsambleistas();
mostrarAsambleistas();
}
private static void cargarAsambleistas(){
int cantAsambl;
System.out.println("Cuántos Asambleístas desea agregar?");
cantAsambl =scannerInt.nextInt();
asambleistas =new Asambleista[cantAsambl];
for (int i = 0; i < cantAsambl; i++) {
System.out.println("Asableísta Nº "+(i+1));
System.out.println("Ingrese cédula:");
int cedulaEntrada =scannerInt.nextInt();
System.out.println("Ingrese nombre:");
String nombreEntrada =scannerString.nextLine();
System.out.println("Ingrese región:");
String regionEntrada =scannerString.nextLine();
System.out.println("Ingrese sueldo:");
double sueldoEntrada =scannerDouble.nextDouble();
System.out.println("Ingrese bono:");
double bonoEntrada =scannerDouble.nextDouble();
Asambleista asamble =new Asambleista();
asamble.establecerCedula(cedulaEntrada);
asamble.establecerNombres(nombreEntrada);
asamble.establecerRegion(regionEntrada);
asamble.establecerSueldo(sueldoEntrada);
asamble.establecerBono(bonoEntrada);
asamble.calcularSueldoFinal();
//ya tenemos el objeto Asambleista seteado, ahora lo guardamos en el array
//asambleistas en la posición i
asambleistas[i] =asamble;
System.out.println("Asambleísta Nº "+(i+1)+" guardado exitosamnte!");
}
}
private static void mostrarAsambleistas(){
System.out.println("*** Lista de Asambleístas ***");
int longitudArray =asambleistas.length;
for (int i = 0; i < longitudArray; i++) {
System.out.println("Nº "+(i+1)+"- Cédula: "+asambleistas[i].obtenerCedula()
+", Nombre: "+asambleistas[i].obtenerNombres()+", Región: "+asambleistas[i].obtenerRegion()
+", Sueldo: "+asambleistas[i].obtenerSueldo()+", Bono: "+asambleistas[i].obtenerBono()
+", Sueldo final: "+asambleistas[i].obtenerSueldoFinal());
}
}
}
class Asambleista {
private String nombres;
private int cedula;
private String region;
private double sueldo;
private double bono;
private double sueldofinal;
public void establecerNombres(String nom){
nombres = nom;
}
public void establecerCedula(int ced){
cedula = ced;
}
public void establecerRegion(String reg){
region = reg;
}
public void establecerSueldo(Double sue){
sueldo = sue;
}
public void establecerBono(double bon){
bono = bon;
}
public void calcularSueldoFinal(){
//los String se comparan con método equals(), equalsIgnoreCase() además
//lo hace ignorando mayuscula-minúscula
if (region.equalsIgnoreCase("sierra")){
sueldofinal = sueldo + (sueldo + bono)*30/100;//habías olvidado sumar sueldo
}
else if(region.equalsIgnoreCase("costa")){
sueldofinal = sueldo + (sueldo + bono)*25/100;
}
else if(region.equalsIgnoreCase("amazónica")){
sueldofinal = sueldo + (sueldo + bono)*20/100;
}
else System.out.println("La región no es válida");
}
public String obtenerNombres(){
return nombres;
}
public int obtenerCedula(){
return cedula;
}
public String obtenerRegion(){
return region;
}
public double obtenerSueldo(){
return sueldo;
}
public double obtenerBono(){
return bono;
}
public double obtenerSueldoFinal(){
return sueldofinal;
}
}