ejercicio 1 java basic persona y empresa
TRANSCRIPT
-
7/23/2019 Ejercicio 1 Java Basic Persona y Empresa
1/5
EJERCICIO 1. PERSONA y EMPRESA
Vamos a crear una clase Persona (Persona.java) dentro de un nuevo paquete llamado
org.clases.ejercicio1. Las caractersticas de esta clase son las que se describen a continuacin:
Una persona tiene un nombre, una edad, un DNI, un sexo(hombre o mujer), unpesoy
una altura. Recordar que estos atributos no deben ser accesibles fuera de la clase
(pista: visibilidad). El tipo de atributo para cada uno es libre, pero pensad cual es el
ms adecuado.
Generar tresconstructores: uno por defecto(sin parmetros); otro en que se le pasen
por parmetro el nombre, la edad y el sexo; por ltimo, otro que reciba como
parmetros el nombre, la edad, el sexo, el peso y la altura. Como podis observar,
ninguno de los constructores recibe como parmetro el DNI, por lo que los tres
constructores debern generar el DNI de forma aleatoria, y para cada nmero de DNI,
incluirle su letra correspondiente (hay que crear el mtodo generarDni(), y ste, ser
llamado en los constructores).
Generar los mtodos Getters y Setterspara cada uno de los atributos, excepto para el
DNI, que slo tendr el mtodo Get.
Los mtodos a implementar son:
o generarDni()Mtodo privado. Genera de forma aleatoria un nmero de DNI
y su letra correspondiente. (Consejo: generar primeramente el nmero de dni
de 8 dgitos y posteriormente, calcular la letra. Ms informacin:INFO DNI).
o calcularIMC()Mtodo pblico. Calcular si la persona est en su peso ideal
( =
( )2, atendiendo a la informacin descrita en la pginaINFO
IMC. El mtodo deber devolver -1 si est por debajo de su peso ideal, 0 si
est en su peso ideal y 1 si est por encima de su peso ideal.
o esMayorDeEdad()Mtodo pblico. Indica si es mayor de edad, devuelve un
booleano.
o comprobarSexo(char sexo)Mtodo privado. Comprueba que el sexo
introducido es correcto (Ho M). En caso de no serlo, se establecer como
H.
o toString()Mtodo pblico. Devuelve toda la informacin del objeto.
http://www.letradni.com.es/http://www.letradni.com.es/http://www.letradni.com.es/https://es.wikipedia.org/wiki/%C3%8Dndice_de_masa_corporalhttps://es.wikipedia.org/wiki/%C3%8Dndice_de_masa_corporalhttps://es.wikipedia.org/wiki/%C3%8Dndice_de_masa_corporalhttps://es.wikipedia.org/wiki/%C3%8Dndice_de_masa_corporalhttps://es.wikipedia.org/wiki/%C3%8Dndice_de_masa_corporalhttps://es.wikipedia.org/wiki/%C3%8Dndice_de_masa_corporalhttp://www.letradni.com.es/ -
7/23/2019 Ejercicio 1 Java Basic Persona y Empresa
2/5
Tambin vamos a crear la clase Empresa (Empresa.java), que estar compuesta por:
Tres atributos(nombre, direccin y un array de tipo Persona).
Habr que generar dos constructores: el primero, por defecto, donde las variables
nombre y direccin estarn a vaco y el array inicializado a un tamao de 10; el
segundo constructor, recibir por parmetro el nombre y la direccin, as como el
tamao al que se deber inicializar el array.
Mtodos Getters y Setters
Los siguientes mtodos, todos pblicos:
o
numPersonas()Devuelve el nmero de personas que hay en la empresa
o numLibres()Devuelve el nmero de puestos vacantes en la empresa
o sitioLibre()Indicar la primera posicin en el array donde existirn huecos
libres para emplazar a una persona. Si no existen sitios libres, devolver -1.
o esLlena()Devuelve un booleano indicando si existen sitios libres para
emplazar a una persona.
o haySitio()Devuelve un booleano indicando si existen o no huecos libres.
o esVacia()Devuelve un booleano indicando si no existe ninguna persona en
la empresa.
o vaciar()Este mtodo se encarga de vaciar la empresa de personas.
o anadirPersona(Persona p)Mtodo que se encarga de aadir una persona al
array en el primer hueco libre siempre que existan huecos libres. Devuelve
true si se ha podido insertar y false en caso contrario.
o eliminarPersona(Persona p)Mtodo encargado de eliminar una persona
del array de personas si existe. En tal caso, libera esa posicin del array
(convirtindolo en null) y devolviendo la Persona eliminada. En caso de no
existir la persona, se devolver null. (Recordar que una persona que
identificar por su documento de identidad).
o
ampliarTamanoEmpresa(int n)Dado que la empresa tiene un tamao
establecido, este mtodo se encargar de ampliar el tamao de la misma, sin
-
7/23/2019 Ejercicio 1 Java Basic Persona y Empresa
3/5
perder la informacin almacenada, as como respetando el orden de los
elementos existentes en el array previa a la ampliacin.
o compactar()Este mtodo ser el encargado de agrupar todas las personas
existentes en la empresa en las primeras posiciones del array y dejando libres
las posiciones finales.
o
eliminarSitiosLibres()Mtodo encargado de reducir el tamao de laempresa para ajustarlo al nmero de personas que lo constituyen
previamente, eliminando los espacios libres y, en consecuencia,
decrementando el tamao del array hasta su valor mnimo.
o personasConInicialNombre(char inicial)Este mtodo ser el encargado de
devolver un array de personas cuyo inicial del nombre comience por el
carcter pasado por parmetro.
o
personasMayoresDeEdad()Mtodo encargado de devolver un array de
Personas que sean mayores de edad.
o personasConSobrepeso()Devuelve un array de Personas que tengan un
IMC superior al ideal.o personasConInfrapeso()Devuelve un array de Personas que tengan un IMC
inferior al ideal.
o toString()Devuelve toda la informacin relativa a la empresa, es decir,
nombre, direccin y la informacin relativa a todos las personas que forman
parte de la empresa.
-
7/23/2019 Ejercicio 1 Java Basic Persona y Empresa
4/5
Ejemplo grfico de algunos mtodos:
Como aclaracin, el array de Personas puede presentarse de la siguiente forma, y el mtodo
compactar()y el mtodo eliminarSitiosLibres()como se puede visualizar en el esquema:
-
7/23/2019 Ejercicio 1 Java Basic Persona y Empresa
5/5
Para corroborar el correcto funcionamiento de la aplicacin, ser necesario hacer uso del TEST
de JUnit4 denominado EmpresaTestJUnit4.java. Dicho test est subdividido en diversos
apartados que comprueban el correcto funcionamiento de la aplicacin. Se espera que el
resultado obtenido sea Optimo, verificndose mediante la ejecucin del mismo y obteniendo
un resultado tal y como el que se muestra a continuacin.
ENVIAR LAS CLASES (Persona.java y Empresa.java) A MI [email protected]
Un saludo y FELIZ NAVIDAD.
mailto:[email protected]:[email protected]:[email protected]:[email protected]