INSTITUTO DE EDUCACIÓN SUPERIOR PRIVADO CIBERTEC
DIRECCIÓN ACADÉMICA
CARRERAS PROFESIONALES
CURSO : 1814 – Algoritmos y Estructura de Datos
PROFESOR : Edson Lhi Ugaz
SEMESTRE : 2020 – 92 NOTA
CICLO : Segundo
SECCIÓN : T2DL
GRUPO : 01
FECHA : Jueves, 12 de Noviembre de 2020
ALUMNO (A): Cinthia Katerin Huamanttica Arellano
SEGUNDO CASO PRÁCTICO – CL2
Logro:
Tenga presente que el logro de esta evaluación es que usted estimado estudiante, haga uso de las
etapas de desarrollo de un algoritmo y pseudocódigo, construya interfaces graficas de usuario
(GUI) y desarrolle el código usando Eclipse y Java, donde estará incluido el uso de los Arreglos
Lineales y sus operaciones complementarias Eclipse y Java.
Consideraciones generales:
El desarrollo de la evaluación es personal.
Considerar el orden, la limpieza y la claridad de las respuestas.
Respetar la entrega del presente examen desarrollado hasta máximo el domingo 15 de noviembre,
a horas 12:00am.
Consolidado
Puntaje Llenar solo en caso de Recalificación justificada
Pregunta
Máximo Obtenido Sustento Puntaje
1 10
2 10
Nota Recalificada
IES PRIVADO CIBERTEC 1
Pregunta 1 (10 puntos)
Diseñe la clase Empleado en el paquete CL2 con los siguientes atributos privados:
codigo (int)
nombre (String)
categoria (int)
número de celular (int).
Implemente, además:
Una variable privada de clase que cuente la cantidad de objetos tipo Empleado creados (int).
Una variable privada de clase que acumule la suma de los sueldos netos (double).
Una constante pública de clase para un factor de descuento (double). Con un bloque de inicialización
static para asignarle a la constante el valor 0.13 e inicializar con cero las variables privadas de clase.
Un constructor que inicialice a todos los atributos cuente la cantidad de objetos creados y acumule los
sueldos netos. Haga uso de la referencia this.
Un constructor con dos parámetros que inicialice sólo los atributos codigo y nombre, invocando al
primer constructor usando la referencia this, enviando con el valor 2 la categoría y con 953641214 el
número de celular.
Un constructor con un parámetro que inicialice sólo los atributo nombre, invocando al primer
constructor usando la referencia this, enviando con el valor 1 la categoría y con 953641214 el número
de celular.
Un constructor sin parámetros que invoque al segudo constructor usando la referencia this, enviando
con 54321 el código y con “Pedro López” el nombre.
Métodos de acceso público set para todos los atributos privados. Use la referencia this.
Métodos de acceso público get para todos los atributos privados.
Métodos públicos de clase set/get para las variables privadas de clase.
Un método sueldoBruto() que retorne el sueldo bruto del empleado sabiendo que:
categoría sueldo bruto
0 S/. 1000.0
1 S/. 1500.0
2 S/. 2500.0
3 S/. 3000.0
Un método que retorne el descuento (aplicado al sueldo bruto).
Un método que retorne el sueldo neto (sueldo bruto – descuento).
En la clase principal, a la pulsación del botón Procesar:
Declare, cree e inicialice tres objetos de tipo Empleado (con datos fijos) haciendo uso de los tres
constructores.
Invoque a un método listado que reciba (como parámetro) la referencia a un objeto de tipo Empleado y
visualice sus datos completos.
Muestre el factor de descuento, la cantidad de objetos creados y la suma de los sueldos netos
Rúbrica de Pregunta 1
Punto Excelente: 10 En Proceso:
Bueno: 8 puntos Regular: 5 puntos
s puntos 3 punto
Dibuja la GUI Dibuja la GUI Dibuja la GUI Dibuja la GUI
Declara variables Declara variables Declara variables Declara
10 Efectúa la entrada de Efectúa la entrada de Efectúa la entrada de datos variables
datos datos
punto Efectúa el proceso de Efectúa el proceso de
cálculo cálculo.
s
Muestra resultados
IES PRIVADO CIBERTEC 2
PREGUNTA 02 (10 puntos)
Diseñe la clase ArregloCodigos en el paquete CL2 con el atributo privado
codigo (int) de tipo arreglo lineal
privado indice (int).
Implemente, además:
Un Constructor sin parámetros que reserve 10 espacios en código e inicialice con 0 al índice.
Un método tamaño que retorne la cantidad de datos ingresados hasta ese momento.
Un método obtener que reciba una posición y retorne el código registrado en dicha posición.
Un método privado ampliarArreglo que extienda el arreglo en diez espacios más.
Un método adicionar que reciba un código y lo registre en la posición que corresponda.
Verifique primero si el arreglo está lleno para invocar al método ampliarArreglo.
Un método intercambiarSegPen que cambie de lugar al segundo y penúltimo código del arreglo.
Un método eliminarPrimero que retire el primer código del arreglo.
Un método posCodigo que retorne la posición del último código que se encuentre en el rango de 1000 a
1111. En caso no exista retorne -1.
Un método intercambiarCodigo que cambie de lugar al último código que se encuentre en el rango de
1000 a 1111 con el tercer código del arreglo.
Un método eliminarCodigo que retire del arreglo al último código que se encuentre en el rango de
1000 a 1111.
En la clase principal:
Declare y cree el objeto global ac de tipo ArregloCodigos.
Implemente un método listar que visualice los códigos registrados hasta ese momento.
A la pulsación del botón Adicionar lea un código por GUI y adiciónelo al arreglo. Invoque luego al
método listar.
A la pulsación del botón Intercambiar 1 invoque al método intercambiarSegPen e invoque al método
listar. En caso de que no sea posible muestre el mensaje respectivo.
A la pulsación del botón Eliminar 1 invoque al método eliminarPrimero. En caso de que el arreglo
esté vacío muestre el mensaje respectivo.
A la pulsación del botón Intercambiar 2 invoque al método intercambiarCodigo. En caso de que no
sea posible visualice un mensaje al respecto.
A la pulsación del botón Eliminar 2 invoque al método eliminarCodigo. En caso de que no sea posible
visualice un mensaje al respecto.
Rúbrica
Punto Excelente: 10 En Proceso:
Bueno: 8 puntos Regular: 5 puntos
s puntos 2 punto
Dibuja la GUI Dibuja la GUI Dibuja la GUI Dibuja la GUI
Declara variables Declara variables Declara variables Declara
10 Efectúa la entrada de Efectúa la entrada de Efectúa la entrada de datos variables
datos datos
punto Efectúa el proceso de Efectúa el proceso de
cálculo cálculo.
s
Muestra resultados
IES PRIVADO CIBERTEC 3
Hoja de Solución
De acuerdo con los diseños de los formularios y el código generado, proceda a pegar cada
solución de acuerdo con la pregunta planteada.
Capture los JFrame con los resultados y copie el código de la clase y el Botón Procesar.
Solución 1 (10 puntos)
Codigo:
package CL2;
public class Empleado {
//Atributos
private int codigo;
private String nombre;
private int categoria;
private int numCelular;
//Variables de clase
private static int cantSueldos;
private static double sumaNetos;
public static final double DESCUENTO;
static {
cantSueldos = 0;
IES PRIVADO CIBERTEC 4
sumaNetos = 0.0;
DESCUENTO = 0.13;
}
public Empleado(int codigo, String nombre, int categoria, int numCelular) {
super();
this.codigo = codigo;
this.nombre = nombre;
this.categoria = categoria;
this.numCelular = numCelular;
cantSueldos++;
sumaNetos+=sueldoNeto();
}
public Empleado(int codigo, String nombre) {
this(codigo, nombre, 2,953641214);
}
public Empleado( String nombre) {
this(002, nombre, 1,953641214);
}
public Empleado() {
this(54321,"Pedro López");
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getCategoria() {
return categoria;
}
public void setCategoria(int categoria) {
this.categoria = categoria;
}
public int getNumCelular() {
return numCelular;
}
public void setNumCelular(int numCelular) {
this.numCelular = numCelular;
}
public static int getCantSueldos() {
return cantSueldos;
}
IES PRIVADO CIBERTEC 5
public static void setCantSueldos(int cantSueldos) {
Empleado.cantSueldos = cantSueldos;
}
public static double getSumaNetos() {
return sumaNetos;
}
public static void setSumaNetos(double sueldoNetos) {
Empleado.sumaNetos = sueldoNetos;
}
public static double getDescuento() {
return DESCUENTO;
}
//Metodos
public double sueldoBruto(){
int sueldo=0;
if(categoria==0)
sueldo = 1000;
else if (categoria==1)
sueldo = 1500;
else if(categoria==2)
sueldo = 2500;
else if(categoria==3)
sueldo = 3000;
return Math.round((sueldo)*100d)/100d;
}
public double descuento(){
return Math.round((sueldoBruto()*DESCUENTO)*100d)/100d;
}
public double sueldoNeto(){
return Math.round((sueldoBruto()-descuento())*100d)/100d;
}
Boton Procesar
protected void actionPerformedBtnNewButton(ActionEvent arg0) {
Empleado a = new Empleado (5689,"Raul Diezcanseco",1,963584561);
listado(a);
Empleado b = new Empleado (5659,"Rosa Palacios");
listado(b);
Empleado c = new Empleado ();
listado(c);
imprimir("------------------------------------");
imprimir("Cantidad de empleados : " + Empleado.getCantSueldos());
imprimir("Total de sueldo : " + Empleado.getSumaNetos());
imprimir("------------------------------------");
imprimir();
}
IES PRIVADO CIBERTEC 6
Metodo listar
void listado(Empleado x) {
imprimir("DirMem : " + x);
imprimir("Nombre : " + x.getNombre());
imprimir("Código : " + x.getCodigo());
imprimir("Categoria : " + x.getCategoria());
imprimir("Celular : " + x.getNumCelular());
imprimir("Sueldo : " + x.sueldoBruto());
imprimir("Descuento : " + x.descuento());
imprimir("Sueldo neto : " + x.sueldoNeto());
imprimir();
}
Solución 2 (10 puntos)
Codigo:
package CL2;
public class ArregloCodigos {
//Atributos privados
private int[] codigo;
private int indice;
//Constructor
public ArregloCodigos() {
codigo = new int [10];
indice = 0;
}
//Operaciones públicas básicas
public int tamaño() {
return indice;
}
public int obtener(int i) {
return codigo[i];
}
// Operaciones publicas complementarias
public void adicionar(int numero) {
if (indice == codigo.length)
ampliarArreglo();
codigo[indice] = numero;
indice ++;
}
private void ampliarArreglo() {
int[] aux = codigo;
codigo = new int[indice + 10];
for (int i=0; i<indice; i++)
codigo[i] = aux[i];
IES PRIVADO CIBERTEC 7
}
private void intercambiar(int pos1, int pos2) {
int aux = codigo[pos1];
codigo[pos1] = codigo[pos2];
codigo[pos2] = aux;
}
private void eliminar(int pos) {
for (int i=pos; i<indice-1; i++)
codigo[i] = codigo[i+1];
indice --;
}
//**********************************************************
public int posPrimerCodigo() {
for(int i=0; i<indice;i++)
if(codigo[i]>1000 && codigo[i]<=1111)
return i;
return -1;
}
public int posTercerCodigo() {
for(int i=2; i<indice;i++)
if(codigo[i]>1000 && codigo[i]<=1111)
return i;
return -1;
}
public int posUlimoCodigo() {
for(int i=indice; i>=0;i--)
if(codigo[i]>1000 && codigo[i]<=1111)
return i;
return -1;
}
public void intercambiarCodigo() {
intercambiar(posUlimoCodigo(),posTercerCodigo());
}
public void eliminarCodigo(){
eliminar(posUlimoCodigo());
}
IES PRIVADO CIBERTEC 8