100% encontró este documento útil (2 votos)
1K vistas8 páginas

1814 - Algoritmos y Estructura de Datos - T2DL - 01 - CL - 2 - LhiUgazEdson

El documento presenta las instrucciones para dos preguntas de un examen práctico sobre algoritmos y estructuras de datos. La Pregunta 1 instruye al estudiante a diseñar una clase Empleado con atributos privados y constructores, e implementar métodos de acceso y cálculo de sueldo. La Pregunta 2 instruye al estudiante a diseñar una clase ArregloCodigos con un arreglo lineal privado y métodos para manipularlo. El estudiante debe desarrollar el código en Java usando Eclipse y mostrar los resultados en

Cargado por

Cinthia Katerin
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (2 votos)
1K vistas8 páginas

1814 - Algoritmos y Estructura de Datos - T2DL - 01 - CL - 2 - LhiUgazEdson

El documento presenta las instrucciones para dos preguntas de un examen práctico sobre algoritmos y estructuras de datos. La Pregunta 1 instruye al estudiante a diseñar una clase Empleado con atributos privados y constructores, e implementar métodos de acceso y cálculo de sueldo. La Pregunta 2 instruye al estudiante a diseñar una clase ArregloCodigos con un arreglo lineal privado y métodos para manipularlo. El estudiante debe desarrollar el código en Java usando Eclipse y mostrar los resultados en

Cargado por

Cinthia Katerin
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

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

También podría gustarte