Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERIA DE SISTEMAS
GUÍA DE LABORATORIO N° 07
Escuela Profesional: Ingeniería de Sistemas. Asignatura: Programación Orientada a Objetos
Ciclo y Turno: Semestre Académico: 2020 - 2
Docente: Ing. Yuri A. Pomachagua Basualdo Fecha: 27/05/2020
INTRODUCCION
El polimorfismo es una característica de los objetos, y permite obtener muchas múltiples
formas con la finalidad de acceder a los diferentes métodos y atributos a través de una
solo declaración. El tratamiento de excepciones permite manejar los errores generados
en tempo de ejecución.
I. OBJETIVOS
1. Codificar, compilar y ejecutar los ejercicios de aplicación (Clases Abstractas)
2. Conocer la estructura de un programa visual en Java.
IV. IMPORTANTE
Antes de comenzar a manipular el NetBeans 8.2 crear siempre, una carpeta, donde
se guardarán todas las aplicaciones realizadas en el presente laboratorio con el
nombre Laboratorio-06.
Página 1 de 11
Realizar los siguientes programas con Programación Orientada a Objetos utilizando clases
abstractas
PREGUNTA_1
EJERCICIO.- En una empresa de viajes se requiere obtener lo que pagar el pasajero hacia diversos
destinos y tiene la siguiente política de negocios.
CATEGORIAS
DESTINO CLASE A 1.3*COSTO_BASE
CLASE B COSTO_BASE
DESTINO COSTO_BASE
AREQUIPA 150 DESCUENTOS
IQUITOS 250 CONVENIO 8%*COSTO_BASE
HUANCAYO 100 JUBILADO 12%*COSTO_BASE
MILITAR 50%*COSTO_BASE
Página 2 de 11
else if (nomdes.equalsIgnoreCase("HUANCAYO"))
return 100;
return 0;
}
}
class Categorias extends Destino{
protected int clase;
public Categorias(String nomdes,int clase)
{
super(nomdes);
this.clase=clase;
}
Página 3 de 11
String destino;double pagodest,pagocategorizado,pagodes;
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
destino=jComboBox1.getSelectedItem().toString();
Categorias cat =new Categorias(destino,1);
jLabel6.setText(String.valueOf(cat.getCostoBase()));
Página 4 de 11
PREGUNTA_2
TIENDA A TIENDA B
AumentoPrecioBase(%) AumentoPrecioBase(%)
Fierro 3% Fierro 8%
Ladrillo 5% Ladrillo 9%
Arena 7% Arena 10%
Si la cantidad de vendida es más de Si la cantidad de vendida es más
100 tiene los siguientes descuentos de 200 tiene los siguientes
DescuentodelImporte(%) descuentos
Fierro 5% DescuentodelImporte(%)
Ladrillo 7% Fierro 6%
Arena 8% Ladrillo 8%
Arena 8%
SOLUCION:
public abstract class Tienda {
protected int material;
Página 5 de 11
protected int cantidad;
protected int tipo;
Página 6 de 11
}
}
TiendaA
package javaejemplopractica;
public class TiendaA extends Tienda {
public TiendaA(int material, int cantidad, int tipo) {
super(material, cantidad, tipo);
}
@Override
public double PrecioBaseAumentado() {
double pa=0;
switch(getMaterial())
{
case 0: pa=PrecioBase()*1.03;
break;
case 1: pa=PrecioBase()*1.05;break;
case 2: pa=PrecioBase()+(PrecioBase()*0.07);break;
default:pa=0;
}
System.out.println("El valor de material es en tienda a "+material);
System.out.println("El valor de precio aum "+pa);
return pa;
}
@Override
public double Importe() {
double imp=0;
imp=getCantidad()*PrecioBaseAumentado();
return imp;
}
@Override
public double DescuentoImporte()
{
Página 7 de 11
double des=0;
if(getCantidad()>100)
switch(getMaterial())
{
case 0: des=Importe()*0.05;break;
case 1: des=Importe()*0.07;break;
case 2: des=Importe()*0.08;break;
}
else des=0;
return des;
}
@Override
public double Neto() {
double des=0;
des=Importe()-DescuentoImporte();
return des;
}
}
TiendaB
package javaejemplopractica;
public class TiendaB extends Tienda{
Página 8 de 11
@Override
public double Importe() {
double imp=0;
imp=getCantidad()*PrecioBaseAumentado();
return imp;
}
@Override
public double DescuentoImporte()
{
double des=0;
if(getCantidad()>200)
switch(getMaterial())
{
case 0: des=Importe()*0.06;break;
case 1: des=Importe()*0.08;break;
case 2: des=Importe()*0.08;break;
}
else des=0;
return des;
}
@Override
public double Neto() {
double des=0;
des=Importe()-DescuentoImporte();
return des;
}
}
FORMULARIO
Página 9 de 11
private void jbtnAplicarActionPerformed(java.awt.event.ActionEvent evt) {
int material= jcmbMaterial.getSelectedIndex();
int cantidad= Integer.parseInt(jtxtCantidad.getText());
int tipo= jcmbTipo.getSelectedIndex();
System.out.println("material "+material);
switch(tipo)
{case 0:
{ TiendaA a= new TiendaA(material, cantidad, 1);
jLabel10.setText(String.valueOf(a.PrecioBase()));
jLabel11.setText(String.valueOf(a.PrecioBaseAumentado()));
jLabel12.setText(String.valueOf(a.Importe()));
jLabel13.setText(String.valueOf(a.DescuentoImporte()));
jLabel14.setText(String.valueOf(a.Neto())); break;
}
case 1:
{
TiendaB b= new TiendaB(material, cantidad, 2);
jLabel10.setText(String.valueOf(b.PrecioBase()));
jLabel11.setText(String.valueOf(b.PrecioBaseAumentado()));
jLabel12.setText(String.valueOf(b.Importe()));
Página 10 de 11
jLabel13.setText(String.valueOf(b.DescuentoImporte()));
jLabel14.setText(String.valueOf(b.Neto()));break;
}
}
}
PREGUNTA_3
Escribir un programa para administrar los datos del personal de la empresa UTP.Del Empleado se
conoce: número de DNI, nombre, apellidos y año de ingreso.
Existen dos categorías de personal: el personal con salario fijo y el personal a comisión. Los empleados
con salario fijo tienen un sueldo básico y un porcentaje adicional en función del número de años que
llevan: menos de dos años salario base, de 2 a 3 años: 7% más; de 4 a 7 años: 10% más; de 8 a 15 años:
17% más y más de 15 años: 22% más. Los empleados a comisión tienen un salario mínimo que será
constante para todos los empleados de este tipo e igual a S/ 910.00, un número de clientes captados y
un monto por cada cliente captado. El salario se obtiene multiplicando los clientes captados por el
monto por cliente, si el salario por los clientes captados no llega al salario mínimo, cobrará esta
cantidad.
Se contará con una clase padre Empleado de la cual no se podrán crear objetos y de la que heredan las
clases EAsalariado y EComision. En todas las clases debe haber un constructor con parámetros para
todos los atributos y otro vacío. En todos deben crearse los getters and setters correspondientes.
Empleado contará con un método imprimir() y un método obtenerSalario().
Crear una clase Principal donde los dos primeros se crearán utilizando el constructor con todos los
parámetros y los dos últimos con el constructor vacío y utilizando los setters adecuados.
Página 11 de 11