Sei sulla pagina 1di 19

Relaciones entre Clases

Relacin Binaria

Csar Liza Avila

En el Ministerio de Trabajo, desea implementar un software que registre todos los empleadores, y sus respectivos empleados. Existe la posibilidad que una persona sea empleado de varias empresas. Modele esta situacin en un diagrama de clases e implemente su cdigo. Se desea poder consultar dada una compaa que empleados trabajan en ella.

Empleado Empleador
- razonSocial: String - fechaInscripcion: Calendar - empleado: Empleado [] - apeMaterno: String - apePaterno: String - nombres: String - DNI: String
1..N 1..N

+ Empleador(String, Calendar) + getRazonSocial() + setRazonSocial(String) + getFechaInscripcion() + setFechaInscripcion(Calendar) + Empleado[] getEmpleado() + setEmpleado(Empleado[])

- empleador

+ Empleado() + getApeMaterno() + setApeMaterno(String) + getApePaterno() + setApePaterno(String) + getDNI() + setDNI(String DNI) + getNombres() + setNombres(String)

- empleado

package relacionbinaria; import java.util.Calendar; import java.util.Scanner; public class Main { static Empleado [] empleado; static Empleador [] empleador; public static void main(String[] args) { leeEmpleadores(); impEmpleadores(); leeEmpleados(); impEmpleados(); enlazarEmpleadorConEmpleado(); listar(); }

public static void leeEmpleadores() { Scanner lector = new Scanner(System.in); String razonSocial; int dia, mes, annio; Calendar fechaInscripcion; System.out.print("Nro de empleadores: "); int n = lector.nextInt(); empleador = new Empleador[n]; System.out.println("Ingrese empleadores: "); for(int i=0; i<empleador.length; i++) { System.out.println("** Empleador Nro: " + (i+1) ); System.out.print("Razn Social: "); razonSocial= lector.next(); System.out.println("Fecha de Inscripcin: "); fechaInscripcion = Calendar.getInstance(); System.out.print("Dia: "); dia = lector.nextInt(); System.out.print("Mes: "); mes = lector.nextInt(); System.out.print("Ao: "); annio= lector.nextInt(); fechaInscripcion.set(annio, mes-1, dia); empleador[i] = new Empleador(razonSocial, fechaInscripcion); }

public static void impEmpleadores() { Calendar fechaInscripcion; System.out.println("--------------------------------"); System.out.println("RaznSocial FechaDeInscripcin"); System.out.println("--------------------------------"); for(Empleador e: empleador ) { System.out.print( e.getRazonSocial() + "\t" ); fechaInscripcion = e.getFechaInscripcion(); System.out.print( fechaInscripcion.get(Calendar.DAY_OF_MONTH)); System.out.print("/"); System.out.print( fechaInscripcion.get(Calendar.MONTH)+1); System.out.print("/"); System.out.println( fechaInscripcion.get(Calendar.YEAR));

}
}

public static void leeEmpleados() { Scanner lector = new Scanner(System.in); String apeMaterno, apePaterno, nombres, DNI; System.out.println(); System.out.println("Ingresa Empleados"); System.out.print("Nro de empleados: "); int n = lector.nextInt(); empleado = new Empleado[n]; System.out.println("Ingrese empleados: "); for(int i=0; i<empleado.length; i++) { System.out.println("** Empleado Nro: " + (i+1) ); System.out.print("Apellido Paterno: "); apePaterno = lector.next(); System.out.print("Apellido Materno: "); apeMaterno = lector.next(); System.out.print("Nombres: "); nombres = lector.next(); System.out.print("DNI: "); DNI = lector.next(); empleado[i] = new Empleado(apeMaterno, apePaterno, nombres, DNI); } }

public static void impEmpleados() { System.out.println("------------------"); System.out.println("Lista de empleados"); System.out.println("------------------"); for(Empleado e: empleado ) { System.out.print( e.getApePaterno() + " " ); System.out.print( e.getApeMaterno() + " " ); System.out.print( e.getNombres() ); System.out.print( e.getDNI() + " " ); } }

public static void enlazarEmpleadorConEmpleado() { Scanner lector = new Scanner(System.in); String DNI; Empleado[] trab; System.out.println(); System.out.println("Enlaza Empleador con Empleados"); for(Empleador e : empleador) { System.out.println("Razn Social: " + e.getRazonSocial()); System.out.println("Nro de empleados: "); int n = lector.nextInt(); System.out.println("Ingrese DNIs de empleados: "); trab = new Empleado[n]; for(int i=0; i<trab.length; i++) { DNI = lector.next(); for(Empleado t: empleado ) if( t.getDNI().equals(DNI)) { trab[i]= t; break; } else trab[i]= null; } e.setEmpleado(trab); } }

public static void listar() { System.out.println("-----------"); System.out.println("RaznSocial"); System.out.println("-----------"); for(Empleador e: empleador ) { System.out.println( e.getRazonSocial() ); Empleado[] t = e.getEmpleado(); System.out.println("nro " + t.length); for(int i=0; i<t.length; i++) System.out.println(t[i].getApePaterno()); } } } // fin clase main

package relacionbinaria; import java.util.Calendar; public class Empleador { private String razonSocial; private Calendar fechaInscripcion; private Empleado [] empleado; Empleador(String razonSocial, Calendar fechaInscripcion) { this.razonSocial = razonSocial; this.fechaInscripcion = fechaInscripcion; this.empleado = new Empleado[20]; } public Empleado[] getEmpleado() { return empleado; } public void setEmpleado(Empleado[] empleado) { this.empleado = empleado; }

public Calendar getFechaInscripcion() { return fechaInscripcion; } public void setFechaInscripcion(Calendar fechaInscripcion) { this.fechaInscripcion = fechaInscripcion; } public String getRazonSocial() { return razonSocial; } public void setRazonSocial(String razonSocial) { this.razonSocial = razonSocial; } } // fin clase

package relacionbinaria; public class Empleado { private String apeMaterno; private String apePaterno; private String nombres; private String DNI; // private Empleador [ ] empleador; Empleado ( String apeMaterno, String apePaterno, String nombres, String DNI ) { this.apeMaterno = apeMaterno; this.apePaterno = apePaterno; this.nombres = nombres; this.DNI = DNI; this.empleador = new Empleador[20]; } public String getApeMaterno() { return apeMaterno; } public void setApeMaterno(String apeMaterno) { this.apeMaterno = apeMaterno; }

public String getApePaterno() { return apePaterno; } public void setApePaterno(String apePaterno) { this.apePaterno = apePaterno; } /* public Empleador[] getEmpleador() { return empleador; } public void setEmpleador(Empleador[] empleador) { this.empleador = empleador; } */ public String getDNI() { return DNI; } public void setDNI(String DNI) { this.DNI = DNI; } public String getNombres() { return nombres; } public void setNombres(String nombres) { this.nombres = nombres; } } // fin de la clase

Tarea 1:
En el ejemplo anterior haga que dado un empleado muestre todas las empresas en las que trabaja. Sugerencia: La relacin ser en doble direccin, y habra un arreglo en cada clase.

Tarea 2:
En el ejemplo anterior cree una clase Coleccin Empleador que ser un arreglo donde cada elemento es un Empleador. Esta coleccin ser responsable de aadir, eliminar, modificar, buscar, cada uno de los Empleadores y listar todos los empleadores. Asimismo, cree un clase Coleccin Empleado, con las mismas prestaciones.

Potrebbero piacerti anche