Java - Resolver Ejercicios

 
Vista:
sin imagen de perfil

Resolver Ejercicios

Publicado por Luan (1 intervención) el 25/03/2023 06:28:14
Quisiera ayuda para resolver este problema ya que es bastante largo y se me complica resolverlo por completo

Desarrollar una aplicación que simule los pagos de una empresa. Considerar las siguientes instrucciones:
1. Definir una clase que tenga como nombre el apellido paterno del alumno. La clase debe ser pública y debe tener su correspondiente archivo “apellidopaterno.java”. La clase debe tener su método “main”.
2. Dentro del mismo archivo del numeral 1.
3. Definir una interface “Pagable” con las siguientes consideraciones:
a. Debe tener 2 atributos constantes de tipo double que indiquen los porcentajes de descuentos a aplicar por la empresa. 8% = 0.08 y 7% = 0.07.
b. Debe tener 2 métodos abstractos: registrarFaltas() y asignarSeguro(), como se muestra en la figura.
4. Definir una clase “Empleado” con las siguientes consideraciones:
a. Debe ser una clase abstracta “abstract” y debe implementar la interface “Pagable”. También debe ser una clase sellada “sealed” y permitir las subclases “Gerente” y “Vendedor”.
b. Debe tener los atributos indicados en la figura encapsulados.
c. Debe tener un método constructor con 2 parámetros donde se reciban los valores de los atributos “nombre” y “sueldoBase”. Los atributos restantes recibarán sus valores por defecto.
d. Los métodos que implemente de la interface deben ser finales “final”. El método registrarFaltas() debe incrementar el valor del atributo “diasFaltas”, recibiendo un parámetro con el número de faltas a incrementar. El método asignarSeguro() debe asignar el valor contrario al que tiene el atributo “seguro”, es decir si tiene seguro, se le debe quitar y si no tiene se le debe asignar.
e. Debe tener los métodos getters y setters necesarios. Todos los atributos con excepción de “nombre” deben ser de solo lectura.
f. Debe tener un método abstracto: calcularSueldo().
5. Definir una clase “Gerente” con las siguientes consideraciones:
a. Debe ser una subclase de la clase “Empleado” y debe definirse como no sellada “non-sealed”.
b. Debe tener los atributos indicados en la figura encapsulados.
c. Debe tener un método constructor con 4 parámetros donde se reciban los valores de los atributos “nombre”, “sueldoBase”, “area” y “bonificacion”. Con los parámetros de la clase padre se debe llamar al constructor de la clase padre. A los atributos propios se le asignará su valor directamente con los parámetros recibidos.
d. Debe sobrescribir el método calcularSueldo() y devolver el valor calculado. El cálculo se realiza de la siguiente forma:
sueldoBase + bonificacion – (sueldoBase/30*diasFaltas) – (sueldoBase*IMPUESTO) – (sueldoBase*SEGURO)
El seguro solo se descuenta si al empleado se le asignó seguro. El atributo “seguro” debe estar en verdadero.
“IMPUESTO” y ”SEGURO” son las constantes heredadas de la interface.
e. Debe sobrescribir el método “toString” y devolver una cadena de caracteres de la siguiente forma:
[Gerente: Raul Sosa, Area: RRHH, Sueldo Base: 2500.0, Seguro: Sí, Faltas: 0, Bonificación: 1000.0, Sueldo Neto: 3125.0]
* Los valores mostrados son solo ejemplos.
Se debe utilizar un arreglo dinámico de tipo String almacenando en cada elemento una cadena de caracteres con el correspondiente atributo convertido en String, con el formato: “nombreAtributo: valorAtributo”. Para los valores booleanos convertir en “Sí” para verdadero y en “No” para falso. Por último, devolver el arreglo, utilizando de forma explicita su método “toString”.
6. Definir una clase “Vendedor” con las siguientes consideraciones:
a. Debe ser una subclase de la clase “Empleado” y debe definirse como “final”.
b. Debe tener los atributos indicados en la figura encapsulados.
c. Debe tener un método constructor con 3 parámetros donde se reciban los valores de los atributos “nombre”, “sueldoBase” y “comision”. Con los parámetros de la clase padre se debe llamar al constructor de la clase padre. Al atributo “meta” se le asignará su valor por defecto y al atributo “comision” se le asignará su valor directamente con el parámetro recibido.
d. Debe sobrescribir el método calcularSueldo() y devolver el valor calculado. El cálculo se realiza de la siguiente forma:
sueldoBase + comision – (sueldoBase/30*diasFaltas) – (sueldoBase*IMPUESTO) – (sueldoBase*SEGURO)
La comisión solo se asigna si llegó a la meta. El atributo “meta” debe tener el valor de verdadero.
El seguro solo se descuenta si al empleado se le asignó seguro. El atributo “seguro” debe estar en el valor de verdadero.
“IMPUESTO” y ”SEGURO” son las constantes heredadas de la interface.
e. Debe sobrescribir el método “toString” y devolver una cadena de caracteres de la siguiente forma:
[Vendedor: Ana Diaz, Sueldo Base: 900.0, Seguro: No, Faltas: 5, Meta: No, Comision: 1000.0, Sueldo Neto: 678.0]
* Los valores mostrados son solo ejemplos.
Se debe utilizar un arreglo dinámico de tipo String almacenando en cada elemento una cadena de caracteres con el correspondiente atributo convertido en String, con el formato: “nombreAtributo: valorAtributo”. Para los valores booleanos convertir en “Sí” para verdadero y en “No” para falso. Por último, devolver el arreglo, utilizando de forma explicita su método “toString”.
7. El método “main” debe tener las siguientes consideraciones:
a. Debe crear un arreglo estático del tipo “Empleado” con 6 elementos, 3 instancias de la clase “Gerente” y 3 instancias de la clase “Vendedor”.
b. Se debe modificar algunos de los elementos del arreglo utilizando los métodos asignarSeguro() y registrarFaltas().
c. Se debe recorrer el arreglo para mostrar todos sus elementos.
d. Todo el código debe estar protegido de suceder una excepción. De suceder una excepción debe mostrar el mensaje de error y el programa debe terminar correctamente.
e. El resultado debe ser como en la siguiente imagen:


ec3-Daa
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