SlideShare una empresa de Scribd logo
Problema
Una clase abstracta de nombre Empleado que tiene los siguientes atributos: apellidos, nombres, DNI. Además construya sus
métodos get y set (Encapsulamiento) y también declare los métodos abstractos como sueldo base y bonificación, además
construya métodos no abstractos como descuentos, cálculo del sueldo bruto: sueldo base + bonificación y del sueldo neto
que se calcula de: sueldo bruto – descuentos.
Construya una interface que permita manejar las siguientes constantes, el descuento de porcentajes del 17% para el AFP.
Que serán solo aplicables a la subclase Operario y Administrativo.
Luego construya la subclase Operario de la clase Empleado que tiene los atributos como: Código , categoría (A, B y C),
Turno (Mañana, tarde y noche), horas adicionales laborables. Construya su constructor y los metodos setter y get
(encapsulamiento). Para esta clase desarrolle los métodos abstractos heredados y que permitan hacer lo siguiente:
El sueldo base se calcula de la siguiente tabla
Categoría SUELDO BASE
MAÑANA TARDE NOCHE
A 1200 1300 1800
B 1400 1500 2000
C 1600 1700 2200
Las bonificaciones al operario se realizan según las horas adicionales laborables por cada hora adicional al
operario le pagan 20 soles cualquiera que sea su categoría y su horario de laboral.
Luego construya una subclase Administrativo de la clase Empleado que tendrá los atributos como: Código,
Categoría (Secretaria y Asistente), Condición (Contratado, Estable, Servicios No personales). Construya su
constructor y los métodos setter y getter (encapsulamiento). Para esta clase desarrolle los métodos abstractos
heredados y que permitan hacer lo siguiente:
El sueldo base se calcula de la siguiente tabla
Sueldo base
Categoría
Contratado Estable
Servicios no
Personales
Secretaria 2000 3000 1800
Asistente 2500 3900 2200
Los administrativos reciben una bonificación de 15% y 20% según la categoria
El descuento se aplica de acuerdo a las constantes establecidas.
Clases a Implementar
+SueldoBase() : double
+Bonificacion() : double
+Descuento() : double
+SueldoBruto() : double
+SueldoNeto() : double
-apellidos : string
-nombres : string
-dni : string
Empleado
+SueldoBase() : double
+Bonificacion() : double
-codigo : string
-categoria : char
-turno : char
-horasadicionales : int
Operario
+afp() : double
«interface»
Constantes
+SueldoBase() : double
+Bonificacion() : double
-codigo : string
-categoria : char
-condicion : char
Administrativo
//clase padre EMPLEADO
public abstract class Empleado {
//atributos privados
private String apellidos;
private String nombres;
private String dni;
//constructor
public Empleado(String apellidos, String nombres, String dni) {
this.apellidos = apellidos;
this.nombres = nombres;
this.dni = dni;
}
//encapsulamiento
//se hace por cada atributo
public String getApellidos() {
return apellidos;
}
public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}
public String getNombres() {
return nombres;
}
public void setNombres(String nombres) {
this.nombres = nombres;
}
public String getDNI() {
return dni;
}
public void setDNI(String dni) {
this.dni = dni;
}
//metodos abstractos
//se definen en la clase hija
public abstract double SueldoBase();
public abstract double Bonificacion();
//metodos no abstractos
public double Descuento()
{
return this.SueldoBase()*Constantes.afp;
}
public double SueldoBruto()
{
return this.SueldoBase()+this.Bonificacion();
}
public double SueldoNeto()
{
return this.SueldoBruto()-this.Descuento();
}
}
//clase hija ADMINISTRATIVO
public class Administrativo extends Empleado {
//atributos privados
private String codigo;
private char categoria;
private char condicion;
//constructor
public Administrativo(String codigo,String apellidos, String nombres, String dni,
char categoria, char condicion) {
super(apellidos, nombres, dni);
this.codigo = codigo;
this.categoria = categoria;
this.condicion = condicion;
}
//encapsulamiento
//se hace por cada atributo
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public char getCategoria() {
return categoria;
}
public void setCategoria(char categoria) {
this.categoria = categoria;
}
public char getCondicion() {
return condicion;
}
public void setCondicion(char condicion) {
this.condicion = condicion;
}
//metodos definidos de la clase PADRE
@Override
public double SueldoBase() {
// TODO Auto-generated method stub
int sueldobase=0;
switch (this.categoria)
{
case 'S':
{
switch (this.condicion)
{
case 'C':{sueldobase= 2000; break;}
case 'E':{sueldobase= 3000; break;}
case 'S':{sueldobase= 1800; break;}
}
}break;
case 'A':
{
switch (this.condicion)
{
case 'C':{sueldobase= 2500; break;}
case 'E':{sueldobase= 3900; break;}
case 'S':{sueldobase= 2200; break;}
}
}break;
}
return sueldobase;
}
@Override
public double Bonificacion() {
// TODO Auto-generated method stub
double bonificacion=0;
switch (this.categoria)
{
case 'S':{bonificacion=0.15; break;}
case 'T':{bonificacion= 0.2; break;}
}
return this.SueldoBase()*bonificacion;
}
}
//interface CONSTANTES
public interface Constantes {
double afp=0.17;
}
//clase hija OPERARIO
public class Operario extends Empleado {
//atributos privados
private String codigo;
private char categoria;
private char turno;
private int horasadicionales;
//constructor
public Operario(String apellidos, String nombres, String dni,
String codigo, char categoria, char turno, int horasadicionales) {
super(apellidos, nombres, dni);
this.codigo = codigo;
this.categoria = categoria;
this.turno = turno;
this.horasadicionales = horasadicionales;
}
//encapsulamiento
//se hace por cada atributo
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public char getCategoria() {
return categoria;
}
public void setCategoria(char categoria) {
this.categoria = categoria;
}
public char getTurno() {
return turno;
}
public void setTurno(char turno) {
this.turno = turno;
}
public int getHorasadicionales() {
return horasadicionales;
}
public void setHorasadicionales(int horasadicionales) {
this.horasadicionales = horasadicionales;
}
//metodos definidos de la clase PADRE
@Override
public double SueldoBase() {
// TODO Auto-generated method stub
int sueldobase=0;
switch (this.categoria)
{
case 'A':
{
switch (this.turno)
{
case 'M':{sueldobase= 1200; break;}
case 'T':{sueldobase= 1300; break;}
case 'N':{sueldobase= 1800; break;}
}
}break;
case 'B':
{
switch (this.turno)
{
case 'M':{sueldobase= 1400; break;}
case 'T':{sueldobase= 1500; break;}
case 'N':{sueldobase= 2000; break;}
}
}break;
case 'C':
{
switch (this.turno)
{
case 'M':{sueldobase= 1600; break;}
case 'T':{sueldobase= 1700; break;}
case 'N':{sueldobase= 2200; break;}
}
}break;
}
return sueldobase;
}
@Override
public double Bonificacion() {
// TODO Auto-generated method stub
return this.horasadicionales*20;
}
}
Considerar dos actividades para el diseño de las intefaces en android, encontrar el sueldo netoa pagar por cada operario y
administrativo
Activity OPERARIO
//Codigo JAVA para activity operario
public class activity_operario extends Activity {
//declaro los controles del activity
EditText edtCodigo;
EditText edtApellidos;
EditText edtNombres;
EditText edtDNI;
EditText edtHorasadicionales;
TextView txvSueldoNeto;
Spinner spnCategoria;
Spinner spnTurno;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//establesco el activity que se va a mostrar
setContentView(R.layout.activity_operario);
//enlazo los controles del activity
edtCodigo= (EditText)findViewById(R.id.edtCodigo);
edtApellidos= (EditText)findViewById(R.id.edtApellidos);
edtNombres= (EditText)findViewById(R.id.edtNombres);
edtDNI= (EditText)findViewById(R.id.edtDNI);
edtHorasadicionales= (EditText)findViewById(R.id.edtHorasadicionales);
txvSueldoNeto= (TextView)findViewById(R.id.txvSueldoNeto);
spnCategoria= (Spinner)findViewById(R.id.spnCategoria);
spnTurno= (Spinner)findViewById(R.id.spnCondicion);
//lleno el Spiner(COMBO) de las categorias
String []Categorias={"A","B","C"};
ArrayAdapter<String> opcionesCategoria=new
ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,Categorias);
spnCategoria.setAdapter(opcionesCategoria);
//lleno el Spiner(COMBO) de los turnos
String []Turnos={"Mañana","Tarde","Noche"};
ArrayAdapter<String> opcionesTurno=new
ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,Turnos);
spnTurno.setAdapter(opcionesTurno);
}
//metodo que calcula el sueldo neto
public void Calcular(View view)
{
//creo un objeto de la clase Operario
Operario operario=new Operario( edtApellidos.getText().toString(),
edtNombres.getText().toString(),
edtDNI.getText().toString(),
edtCodigo.getText().toString(),
spnCategoria.getSelectedItem().toString().charAt(0),
spnTurno.getSelectedItem().toString().charAt(0),
Integer.parseInt(edtHorasadicionales.getText().toString())
);
txvSueldoNeto.setText("Sueldo Neto: S/."+operario.SueldoNeto());
}
//esto se genera automaticamente obviar
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Activity ADMINISTRATIVO
//Codigo JAVA para activity operario
public class activity_administrativo extends Activity {
//declaro los controles del activity
TextView txvCodigo;
EditText edtApellidos;
EditText edtNombres;
EditText edtDNI;
TextView txvSueldoNeto;
Spinner spnCategoria;
Spinner spnCondicion;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//establesco el activity que se va a mostrar
setContentView(R.layout.activity_administrativo);
//enlazo los controles del activity
txvCodigo= (TextView)findViewById(R.id.txvCodigo);
edtApellidos= (EditText)findViewById(R.id.edtApellidos);
edtNombres= (EditText)findViewById(R.id.edtNombres);
edtDNI= (EditText)findViewById(R.id.edtDNI);
txvSueldoNeto= (TextView)findViewById(R.id.txvSueldoNeto);
spnCategoria= (Spinner)findViewById(R.id.spnCategoria);
spnCondicion= (Spinner)findViewById(R.id.spnCondicion);
//lleno el Spiner(COMBO) de las categorias
String []Categorias={"Secretaria","Asistente"};
ArrayAdapter<String> opcionesCategoria=new
ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,Categorias);
spnCategoria.setAdapter(opcionesCategoria);
//lleno el Spiner(COMBO) de las condiciones
String []Condiciones={"Contratado","Estable","Servicios no personales"};
ArrayAdapter<String> opcionesCondiciones=new
ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,Condiciones);
spnCondicion.setAdapter(opcionesCondiciones);
}
//metodo que calcula el sueldo neto
public void Calcular(View view)
{
//creo un objeto de la clase Administrativo
Administrativo administrativo=new Administrativo(edtApellidos.getText().toString(),
edtNombres.getText().toString(),
edtDNI.getText().toString(),
spnCategoria.getSelectedItem().toString().charAt(0),
spnCondicion.getSelectedItem().toString().charAt(0)
);
txvCodigo.setText(administrativo.getCodigo());
txvSueldoNeto.setText("Sueldo Neto: S/."+administrativo.SueldoNeto());
}
//esto se genera automaticamente obviar
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

Más contenido relacionado

La actualidad más candente

Ejercicio parciall 2
Ejercicio parciall 2Ejercicio parciall 2
Ejercicio parciall 2
Rodrigo Rodriguez
 
Sql ejercicios resueltos
Sql ejercicios resueltosSql ejercicios resueltos
Sql ejercicios resueltos
Jhon Jairo Pertuz Arenilla
 
Consultas básicas en sql server
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql server
Rodrigo Alfaro Pinto
 
Operadores poo
Operadores pooOperadores poo
Operadores poo
RochaJaqueline
 
Mapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benitaMapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benitaTAtiizz Villalobos
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicojosecuartas
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
basilioj
 
esto es de transformacion del modelo relacional
esto es  de transformacion del modelo relacionalesto es  de transformacion del modelo relacional
esto es de transformacion del modelo relacionalBrahyan Marquez
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y NodosBoris Salleg
 
Dokumen.site ejercicios resueltos-sqlpdf
Dokumen.site ejercicios resueltos-sqlpdfDokumen.site ejercicios resueltos-sqlpdf
Dokumen.site ejercicios resueltos-sqlpdf
Arlin11
 
Un ejemplo de diagrama de clases
Un ejemplo de diagrama de clasesUn ejemplo de diagrama de clases
Un ejemplo de diagrama de clases
Facultad de Ciencias y Sistemas
 
Modelado con erwin
Modelado con erwinModelado con erwin
Modelado con erwinLuis Jherry
 
Bases de Datos - Parte 5/10 Modelo relacional
Bases de Datos - Parte 5/10 Modelo relacionalBases de Datos - Parte 5/10 Modelo relacional
Bases de Datos - Parte 5/10 Modelo relacionalCarlos Castillo (ChaTo)
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
Angel Vázquez Patiño
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
Maria Garcia
 
Bases de Datos - Parte 6/10 Álgebra relacional
Bases de Datos - Parte 6/10 Álgebra relacionalBases de Datos - Parte 6/10 Álgebra relacional
Bases de Datos - Parte 6/10 Álgebra relacionalCarlos Castillo (ChaTo)
 
Red NEURONAL MADALINE
Red NEURONAL MADALINERed NEURONAL MADALINE
Red NEURONAL MADALINEESCOM
 

La actualidad más candente (20)

Ejercicio parciall 2
Ejercicio parciall 2Ejercicio parciall 2
Ejercicio parciall 2
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Sql ejercicios resueltos
Sql ejercicios resueltosSql ejercicios resueltos
Sql ejercicios resueltos
 
Consultas básicas en sql server
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql server
 
Operadores poo
Operadores pooOperadores poo
Operadores poo
 
Mapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benitaMapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benita
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
Como Documentar Casos De Uso
Como Documentar Casos De UsoComo Documentar Casos De Uso
Como Documentar Casos De Uso
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
 
esto es de transformacion del modelo relacional
esto es  de transformacion del modelo relacionalesto es  de transformacion del modelo relacional
esto es de transformacion del modelo relacional
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y Nodos
 
Dokumen.site ejercicios resueltos-sqlpdf
Dokumen.site ejercicios resueltos-sqlpdfDokumen.site ejercicios resueltos-sqlpdf
Dokumen.site ejercicios resueltos-sqlpdf
 
Un ejemplo de diagrama de clases
Un ejemplo de diagrama de clasesUn ejemplo de diagrama de clases
Un ejemplo de diagrama de clases
 
Modelado con erwin
Modelado con erwinModelado con erwin
Modelado con erwin
 
Bases de Datos - Parte 5/10 Modelo relacional
Bases de Datos - Parte 5/10 Modelo relacionalBases de Datos - Parte 5/10 Modelo relacional
Bases de Datos - Parte 5/10 Modelo relacional
 
Ejercicio 11
Ejercicio 11Ejercicio 11
Ejercicio 11
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Bases de Datos - Parte 6/10 Álgebra relacional
Bases de Datos - Parte 6/10 Álgebra relacionalBases de Datos - Parte 6/10 Álgebra relacional
Bases de Datos - Parte 6/10 Álgebra relacional
 
Red NEURONAL MADALINE
Red NEURONAL MADALINERed NEURONAL MADALINE
Red NEURONAL MADALINE
 

Similar a Computo movil ejercicio clases resuelto

145158049 guia-sobre-boleta-de-renumeracion-de-construccion-civil-uso-del-com...
145158049 guia-sobre-boleta-de-renumeracion-de-construccion-civil-uso-del-com...145158049 guia-sobre-boleta-de-renumeracion-de-construccion-civil-uso-del-com...
145158049 guia-sobre-boleta-de-renumeracion-de-construccion-civil-uso-del-com...
Victor García
 
Ejercicios resueltos de java
Ejercicios resueltos de javaEjercicios resueltos de java
Ejercicios resueltos de javaFaral TF
 
Informe tecnico de la unidad 1
Informe tecnico de la unidad 1Informe tecnico de la unidad 1
Informe tecnico de la unidad 1
Eliu Osseas Puc Puc
 
3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetos3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetosluis freddy
 
Ejercicios tpc
Ejercicios tpcEjercicios tpc
Ejercicios tpcemidacent
 
Ejercicios tpc
Ejercicios tpcEjercicios tpc
Ejercicios tpcemidacent
 
Ejercicio Diagrama Clase Codigo Metodos
Ejercicio Diagrama Clase Codigo MetodosEjercicio Diagrama Clase Codigo Metodos
Ejercicio Diagrama Clase Codigo Metodosmtemarialuisa
 
Programacion semestral
Programacion semestralProgramacion semestral
Programacion semestral
María C. Plata
 
Profesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTBProfesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTB
Gloria Isabel Bautista Lasprilla
 
Laboratorio1 entrada-salida de datos / Lenguance C
Laboratorio1   entrada-salida de datos / Lenguance CLaboratorio1   entrada-salida de datos / Lenguance C
Laboratorio1 entrada-salida de datos / Lenguance C
Alejandro Enrique Téllez López
 
2022-1 SEMANA 1 Función real de variable real.pdf
2022-1 SEMANA 1 Función real de variable real.pdf2022-1 SEMANA 1 Función real de variable real.pdf
2022-1 SEMANA 1 Función real de variable real.pdf
david delgado osores
 
Ecuaciones Cuadraticas
Ecuaciones CuadraticasEcuaciones Cuadraticas
Ecuaciones Cuadraticas
eccutpl
 
Ejercicios de programación.
Ejercicios de programación.Ejercicios de programación.
Ejercicios de programación.
Javier Cuenca
 
Problemas propuestos clase 0-1
Problemas propuestos  clase 0-1Problemas propuestos  clase 0-1
Problemas propuestos clase 0-1Jefferson Prieto
 
Problemas propuestos clase 0-1
Problemas propuestos  clase 0-1Problemas propuestos  clase 0-1
Problemas propuestos clase 0-1Jefferson Prieto
 
Problemas propuestos clase 0-1
Problemas propuestos  clase 0-1Problemas propuestos  clase 0-1
Problemas propuestos clase 0-1Jefferson Prieto
 

Similar a Computo movil ejercicio clases resuelto (20)

145158049 guia-sobre-boleta-de-renumeracion-de-construccion-civil-uso-del-com...
145158049 guia-sobre-boleta-de-renumeracion-de-construccion-civil-uso-del-com...145158049 guia-sobre-boleta-de-renumeracion-de-construccion-civil-uso-del-com...
145158049 guia-sobre-boleta-de-renumeracion-de-construccion-civil-uso-del-com...
 
Ejercicios resueltos de java
Ejercicios resueltos de javaEjercicios resueltos de java
Ejercicios resueltos de java
 
Informe tecnico de la unidad 1
Informe tecnico de la unidad 1Informe tecnico de la unidad 1
Informe tecnico de la unidad 1
 
3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetos3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetos
 
Ejercicios tpc
Ejercicios tpcEjercicios tpc
Ejercicios tpc
 
Ejercicios tpc
Ejercicios tpcEjercicios tpc
Ejercicios tpc
 
Ejercicio Diagrama Clase Codigo Metodos
Ejercicio Diagrama Clase Codigo MetodosEjercicio Diagrama Clase Codigo Metodos
Ejercicio Diagrama Clase Codigo Metodos
 
Programacion semestral
Programacion semestralProgramacion semestral
Programacion semestral
 
Presentacion
PresentacionPresentacion
Presentacion
 
Unidad 3: Herencia Ejercicio 3
Unidad 3: Herencia Ejercicio 3Unidad 3: Herencia Ejercicio 3
Unidad 3: Herencia Ejercicio 3
 
Unidad 2: Clases y objetos Ejercicio 3
Unidad 2: Clases y objetos Ejercicio 3Unidad 2: Clases y objetos Ejercicio 3
Unidad 2: Clases y objetos Ejercicio 3
 
Profesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTBProfesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTB
 
Laboratorio1 entrada-salida de datos / Lenguance C
Laboratorio1   entrada-salida de datos / Lenguance CLaboratorio1   entrada-salida de datos / Lenguance C
Laboratorio1 entrada-salida de datos / Lenguance C
 
2022-1 SEMANA 1 Función real de variable real.pdf
2022-1 SEMANA 1 Función real de variable real.pdf2022-1 SEMANA 1 Función real de variable real.pdf
2022-1 SEMANA 1 Función real de variable real.pdf
 
Ecuaciones Cuadraticas
Ecuaciones CuadraticasEcuaciones Cuadraticas
Ecuaciones Cuadraticas
 
Ejercicios de programación.
Ejercicios de programación.Ejercicios de programación.
Ejercicios de programación.
 
Problemas propuestos clase 0-1
Problemas propuestos  clase 0-1Problemas propuestos  clase 0-1
Problemas propuestos clase 0-1
 
Problemas propuestos clase 0-1
Problemas propuestos  clase 0-1Problemas propuestos  clase 0-1
Problemas propuestos clase 0-1
 
Problemas propuestos clase 0-1
Problemas propuestos  clase 0-1Problemas propuestos  clase 0-1
Problemas propuestos clase 0-1
 
Practica de programacion 21 28
Practica de programacion 21 28Practica de programacion 21 28
Practica de programacion 21 28
 

Computo movil ejercicio clases resuelto

  • 1. Problema Una clase abstracta de nombre Empleado que tiene los siguientes atributos: apellidos, nombres, DNI. Además construya sus métodos get y set (Encapsulamiento) y también declare los métodos abstractos como sueldo base y bonificación, además construya métodos no abstractos como descuentos, cálculo del sueldo bruto: sueldo base + bonificación y del sueldo neto que se calcula de: sueldo bruto – descuentos. Construya una interface que permita manejar las siguientes constantes, el descuento de porcentajes del 17% para el AFP. Que serán solo aplicables a la subclase Operario y Administrativo. Luego construya la subclase Operario de la clase Empleado que tiene los atributos como: Código , categoría (A, B y C), Turno (Mañana, tarde y noche), horas adicionales laborables. Construya su constructor y los metodos setter y get (encapsulamiento). Para esta clase desarrolle los métodos abstractos heredados y que permitan hacer lo siguiente: El sueldo base se calcula de la siguiente tabla Categoría SUELDO BASE MAÑANA TARDE NOCHE A 1200 1300 1800 B 1400 1500 2000 C 1600 1700 2200 Las bonificaciones al operario se realizan según las horas adicionales laborables por cada hora adicional al operario le pagan 20 soles cualquiera que sea su categoría y su horario de laboral. Luego construya una subclase Administrativo de la clase Empleado que tendrá los atributos como: Código, Categoría (Secretaria y Asistente), Condición (Contratado, Estable, Servicios No personales). Construya su constructor y los métodos setter y getter (encapsulamiento). Para esta clase desarrolle los métodos abstractos heredados y que permitan hacer lo siguiente: El sueldo base se calcula de la siguiente tabla Sueldo base Categoría Contratado Estable Servicios no Personales Secretaria 2000 3000 1800 Asistente 2500 3900 2200 Los administrativos reciben una bonificación de 15% y 20% según la categoria El descuento se aplica de acuerdo a las constantes establecidas. Clases a Implementar +SueldoBase() : double +Bonificacion() : double +Descuento() : double +SueldoBruto() : double +SueldoNeto() : double -apellidos : string -nombres : string -dni : string Empleado +SueldoBase() : double +Bonificacion() : double -codigo : string -categoria : char -turno : char -horasadicionales : int Operario +afp() : double «interface» Constantes +SueldoBase() : double +Bonificacion() : double -codigo : string -categoria : char -condicion : char Administrativo
  • 2. //clase padre EMPLEADO public abstract class Empleado { //atributos privados private String apellidos; private String nombres; private String dni; //constructor public Empleado(String apellidos, String nombres, String dni) { this.apellidos = apellidos; this.nombres = nombres; this.dni = dni; } //encapsulamiento //se hace por cada atributo public String getApellidos() { return apellidos; } public void setApellidos(String apellidos) { this.apellidos = apellidos; } public String getNombres() { return nombres; } public void setNombres(String nombres) { this.nombres = nombres; } public String getDNI() { return dni; } public void setDNI(String dni) { this.dni = dni; } //metodos abstractos //se definen en la clase hija public abstract double SueldoBase(); public abstract double Bonificacion(); //metodos no abstractos public double Descuento() { return this.SueldoBase()*Constantes.afp; } public double SueldoBruto() { return this.SueldoBase()+this.Bonificacion(); } public double SueldoNeto() { return this.SueldoBruto()-this.Descuento(); } }
  • 3. //clase hija ADMINISTRATIVO public class Administrativo extends Empleado { //atributos privados private String codigo; private char categoria; private char condicion; //constructor public Administrativo(String codigo,String apellidos, String nombres, String dni, char categoria, char condicion) { super(apellidos, nombres, dni); this.codigo = codigo; this.categoria = categoria; this.condicion = condicion; } //encapsulamiento //se hace por cada atributo public String getCodigo() { return codigo; } public void setCodigo(String codigo) { this.codigo = codigo; } public char getCategoria() { return categoria; } public void setCategoria(char categoria) { this.categoria = categoria; } public char getCondicion() { return condicion; } public void setCondicion(char condicion) { this.condicion = condicion; } //metodos definidos de la clase PADRE @Override public double SueldoBase() { // TODO Auto-generated method stub int sueldobase=0; switch (this.categoria) { case 'S': { switch (this.condicion) { case 'C':{sueldobase= 2000; break;} case 'E':{sueldobase= 3000; break;} case 'S':{sueldobase= 1800; break;} } }break; case 'A': { switch (this.condicion)
  • 4. { case 'C':{sueldobase= 2500; break;} case 'E':{sueldobase= 3900; break;} case 'S':{sueldobase= 2200; break;} } }break; } return sueldobase; } @Override public double Bonificacion() { // TODO Auto-generated method stub double bonificacion=0; switch (this.categoria) { case 'S':{bonificacion=0.15; break;} case 'T':{bonificacion= 0.2; break;} } return this.SueldoBase()*bonificacion; } } //interface CONSTANTES public interface Constantes { double afp=0.17; }
  • 5. //clase hija OPERARIO public class Operario extends Empleado { //atributos privados private String codigo; private char categoria; private char turno; private int horasadicionales; //constructor public Operario(String apellidos, String nombres, String dni, String codigo, char categoria, char turno, int horasadicionales) { super(apellidos, nombres, dni); this.codigo = codigo; this.categoria = categoria; this.turno = turno; this.horasadicionales = horasadicionales; } //encapsulamiento //se hace por cada atributo public String getCodigo() { return codigo; } public void setCodigo(String codigo) { this.codigo = codigo; } public char getCategoria() { return categoria; } public void setCategoria(char categoria) { this.categoria = categoria; } public char getTurno() { return turno; } public void setTurno(char turno) { this.turno = turno; } public int getHorasadicionales() { return horasadicionales; } public void setHorasadicionales(int horasadicionales) { this.horasadicionales = horasadicionales; } //metodos definidos de la clase PADRE @Override public double SueldoBase() { // TODO Auto-generated method stub int sueldobase=0; switch (this.categoria) { case 'A': {
  • 6. switch (this.turno) { case 'M':{sueldobase= 1200; break;} case 'T':{sueldobase= 1300; break;} case 'N':{sueldobase= 1800; break;} } }break; case 'B': { switch (this.turno) { case 'M':{sueldobase= 1400; break;} case 'T':{sueldobase= 1500; break;} case 'N':{sueldobase= 2000; break;} } }break; case 'C': { switch (this.turno) { case 'M':{sueldobase= 1600; break;} case 'T':{sueldobase= 1700; break;} case 'N':{sueldobase= 2200; break;} } }break; } return sueldobase; } @Override public double Bonificacion() { // TODO Auto-generated method stub return this.horasadicionales*20; } }
  • 7. Considerar dos actividades para el diseño de las intefaces en android, encontrar el sueldo netoa pagar por cada operario y administrativo Activity OPERARIO
  • 8. //Codigo JAVA para activity operario public class activity_operario extends Activity { //declaro los controles del activity EditText edtCodigo; EditText edtApellidos; EditText edtNombres; EditText edtDNI; EditText edtHorasadicionales; TextView txvSueldoNeto; Spinner spnCategoria; Spinner spnTurno; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //establesco el activity que se va a mostrar setContentView(R.layout.activity_operario); //enlazo los controles del activity edtCodigo= (EditText)findViewById(R.id.edtCodigo); edtApellidos= (EditText)findViewById(R.id.edtApellidos); edtNombres= (EditText)findViewById(R.id.edtNombres); edtDNI= (EditText)findViewById(R.id.edtDNI); edtHorasadicionales= (EditText)findViewById(R.id.edtHorasadicionales); txvSueldoNeto= (TextView)findViewById(R.id.txvSueldoNeto); spnCategoria= (Spinner)findViewById(R.id.spnCategoria); spnTurno= (Spinner)findViewById(R.id.spnCondicion); //lleno el Spiner(COMBO) de las categorias String []Categorias={"A","B","C"}; ArrayAdapter<String> opcionesCategoria=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,Categorias); spnCategoria.setAdapter(opcionesCategoria); //lleno el Spiner(COMBO) de los turnos String []Turnos={"Mañana","Tarde","Noche"}; ArrayAdapter<String> opcionesTurno=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,Turnos); spnTurno.setAdapter(opcionesTurno); } //metodo que calcula el sueldo neto public void Calcular(View view) { //creo un objeto de la clase Operario Operario operario=new Operario( edtApellidos.getText().toString(), edtNombres.getText().toString(), edtDNI.getText().toString(), edtCodigo.getText().toString(), spnCategoria.getSelectedItem().toString().charAt(0), spnTurno.getSelectedItem().toString().charAt(0), Integer.parseInt(edtHorasadicionales.getText().toString()) ); txvSueldoNeto.setText("Sueldo Neto: S/."+operario.SueldoNeto()); } //esto se genera automaticamente obviar @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
  • 10. //Codigo JAVA para activity operario public class activity_administrativo extends Activity { //declaro los controles del activity TextView txvCodigo; EditText edtApellidos; EditText edtNombres; EditText edtDNI; TextView txvSueldoNeto; Spinner spnCategoria; Spinner spnCondicion; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //establesco el activity que se va a mostrar setContentView(R.layout.activity_administrativo); //enlazo los controles del activity txvCodigo= (TextView)findViewById(R.id.txvCodigo); edtApellidos= (EditText)findViewById(R.id.edtApellidos); edtNombres= (EditText)findViewById(R.id.edtNombres); edtDNI= (EditText)findViewById(R.id.edtDNI); txvSueldoNeto= (TextView)findViewById(R.id.txvSueldoNeto); spnCategoria= (Spinner)findViewById(R.id.spnCategoria); spnCondicion= (Spinner)findViewById(R.id.spnCondicion); //lleno el Spiner(COMBO) de las categorias String []Categorias={"Secretaria","Asistente"}; ArrayAdapter<String> opcionesCategoria=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,Categorias); spnCategoria.setAdapter(opcionesCategoria); //lleno el Spiner(COMBO) de las condiciones String []Condiciones={"Contratado","Estable","Servicios no personales"}; ArrayAdapter<String> opcionesCondiciones=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,Condiciones); spnCondicion.setAdapter(opcionesCondiciones); } //metodo que calcula el sueldo neto public void Calcular(View view) { //creo un objeto de la clase Administrativo Administrativo administrativo=new Administrativo(edtApellidos.getText().toString(), edtNombres.getText().toString(), edtDNI.getText().toString(), spnCategoria.getSelectedItem().toString().charAt(0), spnCondicion.getSelectedItem().toString().charAt(0) ); txvCodigo.setText(administrativo.getCodigo()); txvSueldoNeto.setText("Sueldo Neto: S/."+administrativo.SueldoNeto()); } //esto se genera automaticamente obviar @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }