Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2018, 09:49
dbzbr
 
Fecha de Ingreso: mayo-2015
Mensajes: 30
Antigüedad: 9 años
Puntos: 0
Asignar array a un objeto

En el siguiente ejemplo consta de dar de alta a empleados en un array y también las dietas de los empleados, necesito asignarle dietas a los empleados, por ejemplo al introducir una nueva dieta se pida el numero de dni del empleado para asignarsela.

¿Cómo se podría hacer?.

Main

Código Java:
Ver original
  1. package javaapplication36;
  2.  
  3. import java.util.InputMismatchException;
  4. import java.util.Scanner;
  5.  
  6. public class javaapplication36 {
  7.  
  8.     public static void main(String[] args) {
  9.  
  10.         Scanner teclado = new Scanner(System.in);
  11.  
  12.         boolean salir = false;
  13.         int opcion;
  14.  
  15.         Empleado empleado = new Empleado();
  16.  
  17.         Dieta dieta = new Dieta();
  18.  
  19.         Empleado arrayEmpleado [] = new Empleado [5];
  20.  
  21.         Dieta arrayDieta [] = new Dieta [5];
  22.  
  23.         int contadorEmpleado = 0;
  24.  
  25.         int contadorDieta = 0;
  26.  
  27.         while (!salir) {
  28.  
  29.             System.out.println("1. Dar alta Empleado");
  30.             System.out.println("2. Asignar Dieta");
  31.             System.out.println("3. Consultar Empleado");
  32.             System.out.println("5. Salir");
  33.  
  34.             String dni,nombre,fecha,descripcion,cargo;
  35.             double nomina,importe;
  36.  
  37.             try {
  38.  
  39.                 System.out.println("Escribe una de las opciones");
  40.                 opcion = teclado.nextInt();
  41.  
  42.                 switch (opcion) {
  43.                     case 1:
  44.  
  45.                         if (contadorEmpleado < arrayEmpleado.length) {
  46.  
  47.                         System.out.print("Introduce el dni del empleado : ");
  48.                         dni = teclado.next();
  49.  
  50.                         System.out.print("Introduce el nombre del empleado : ");
  51.                         nombre = teclado.next();
  52.  
  53.                         System.out.print("Introduce el cargo del empleado :  ");
  54.                         cargo = teclado.next();
  55.  
  56.                         System.out.print("Introduce la nomina del empleado :  ");
  57.                         nomina = teclado.nextDouble();
  58.  
  59.                         empleado = new Empleado(dni,nombre,cargo,nomina);
  60.  
  61.                         arrayEmpleado [contadorEmpleado] = empleado;
  62.                         contadorEmpleado++;
  63.  
  64.                         System.out.print("Empleado registrada correctamente");
  65.                         System.out.println();
  66.  
  67.                     }else{
  68.  
  69.                         System.out.print("Se han alcanzado el máximo de empleados registrados");
  70.                         System.out.println();
  71.                     }  
  72.  
  73.                         break;
  74.  
  75.                     case 2:
  76.  
  77.                         if (contadorDieta < arrayDieta.length) {
  78.  
  79.                         System.out.print("Introduce la fecha de la dieta : ");
  80.                         fecha = teclado.next();
  81.  
  82.                         System.out.print("Introduce la descripcion de la dieta : ");
  83.                         descripcion = teclado.next();
  84.  
  85.                         System.out.print("Introduce el importe de la dieta :  ");
  86.                         importe = teclado.nextDouble();
  87.  
  88.                         dieta = new Dieta(fecha,descripcion,importe);
  89.  
  90.                         arrayDieta [contadorDieta] = dieta;
  91.                         contadorEmpleado++;
  92.  
  93.                         System.out.print("Dieta registrada correctamente");
  94.                         System.out.println();
  95.  
  96.                     }else{
  97.  
  98.                         System.out.print("Se han alcanzado el máximo de dietas registradas");
  99.                         System.out.println();
  100.                     }  
  101.  
  102.                     break;
  103.  
  104.                     case 3:
  105.  
  106.                         if (contadorEmpleado > 0){
  107.  
  108.                             for (int i = 0; i < contadorEmpleado; i++){
  109.  
  110.                                 System.out.print(arrayEmpleado[i]);
  111.                                  System.out.println();
  112.                             }
  113.                         System.out.println();
  114.                         }
  115.  
  116.                         break;
  117.  
  118.                     case 4:
  119.                         salir = true;
  120.                         break;
  121.                     default:
  122.                         System.out.println("Solo números entre 1 y 4");
  123.                 }
  124.             } catch (InputMismatchException e) {
  125.                 System.out.println("Debes insertar un número");
  126.                 teclado.next();
  127.             }
  128.         }
  129.     }
  130. }

Empleado

Código Java:
Ver original
  1. package javaapplication36;
  2.  
  3. public class Empleado {
  4.  
  5.     private String dni;
  6.     private String nombre;
  7.     private String cargo;
  8.     private double nomina;
  9.  
  10.     public Empleado(String dni, String nombre, String cargo, double nomina) {
  11.         this.dni = dni;
  12.         this.nombre = nombre;
  13.         this.cargo = cargo;
  14.         this.nomina = nomina;
  15.     }
  16.  
  17.     public Empleado() {
  18.     }
  19.  
  20.     public String getDni() {
  21.         return dni;
  22.     }
  23.  
  24.     public void setDni(String dni) {
  25.         this.dni = dni;
  26.     }
  27.  
  28.     public String getNombre() {
  29.         return nombre;
  30.     }
  31.  
  32.     public void setNombre(String nombre) {
  33.         this.nombre = nombre;
  34.     }
  35.  
  36.     public String getCargo() {
  37.         return cargo;
  38.     }
  39.  
  40.     public void setCargo(String cargo) {
  41.         this.cargo = cargo;
  42.     }
  43.  
  44.     public double getNomina() {
  45.         return nomina;
  46.     }
  47.  
  48.     public void setNomina(double nomina) {
  49.         this.nomina = nomina;
  50.     }
  51.  
  52.     @Override
  53.     public String toString() {
  54.         return "Empleado{" + "dni=" + dni + ", nombre=" + nombre + ", cargo=" + cargo + ", nomina=" + nomina + '}';
  55.     }
  56. }

Dieta

Código Java:
Ver original
  1. package javaapplication36;
  2.  
  3. public class Dieta {
  4.  
  5.     String fecha;
  6.     String descripcion;
  7.     double importe;
  8.  
  9.     public Dieta(String fecha, String descripcion, double importe) {
  10.         this.fecha = fecha;
  11.         this.descripcion = descripcion;
  12.         this.importe = importe;
  13.     }
  14.  
  15.     public Dieta() {
  16.     }
  17.  
  18.     public String getFecha() {
  19.         return fecha;
  20.     }
  21.  
  22.     public void setFecha(String fecha) {
  23.         this.fecha = fecha;
  24.     }
  25.  
  26.     public String getDescripcion() {
  27.         return descripcion;
  28.     }
  29.  
  30.     public void setDescripcion(String descripcion) {
  31.         this.descripcion = descripcion;
  32.     }
  33.  
  34.     public double getImporte() {
  35.         return importe;
  36.     }
  37.  
  38.     public void setImporte(double importe) {
  39.         this.importe = importe;
  40.     }
  41.  
  42.     @Override
  43.     public String toString() {
  44.         return "Dieta{" + "fecha=" + fecha + ", descripcion=" + descripcion + ", importe=" + importe + '}';
  45.     }
  46. }