Anda di halaman 1dari 91

Elaboración: Aprobación y fecha:

OFICINA DE LABORATORIO Aprobación


RESOLUCION y fecha:
Nº 174-2019-UPTELESUP-R
Lima, 18 de marzo de 2019
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 2 de 91
PROGRAMACIÓN ESTRUCTURADA II

FACULTAD DE INGENIERÍA
Y ARQUITECTURA

GUÍA DE PRÁCTICAS

DE

PROGRAMACIÓN
ESTRUCTURADA II

2018

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 3 de 91
PROGRAMACIÓN ESTRUCTURADA II

UNIVERSIDAD PRIVADA TELESUP

Rector
Dr. Luis Alberto Colán Villegas

Vicerrector Académico
Dr. Anaximandro Odilo Perales Sánchez

OFICINA DE LABORATORIOS
Mg. Bernardino Morales Fernández

Revisado Por:
Decano de la Facultad de Ingeniería y Arquitectura

Dr. Marco Antonio Torrey Motta

Director de la Escuela Profesional de Ingeniería Industrial y Comercial

Dr. Walter Villalobos Cueva

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 4 de 91
PROGRAMACIÓN ESTRUCTURADA II

PRESENTACIÓN
La presente Guía de Prácticas de Laboratorio, tiene por finalidad reforzar el aprendizaje
cubierto por la parte teórica, con el desarrollo de las prácticas en el Laboratorio. En las
páginas de este documento, la información se presenta de forma general, de modo tal, que
sirva a los docentes y a todos los estudiantes de las carreras que tengan como parte de su
programa el curso de Programación Estructurada II. Esta edición, cuenta con 9 que se
llevarán a cabo en el Laboratorio de Programación Estructurada II.

Lo que caracteriza a cada una de estas prácticas es una estructura común, que sea de fácil
entendimiento el hecho de que cada práctica planteada pueda ser reproducida en
Laboratorio. Tras plantear los objetivos, en los fundamentos teóricos se detallan los
contenidos básicos que ayudan a comprender mejor cada sesión de Laboratorio, los cuales
deben ser repasadas por el alumno antes de comenzar cada sesión de Laboratorio.

El objetivo del documento es otorgar una guía para planificar las prácticas y desarrollar la
motivación en los estudiantes, de forma que el estudiante encuentre su propia forma de
aprender a través de la experimentación. Cada una de las sesiones se ha ensayado
cuidadosamente por los docentes del curso con el apoyo de alumnos de la carrera
profesional, permitiéndoles comprobar que cada una de las prácticas en los Laboratorios se
realice en un tiempo prudente.

Finalmente, esta guía de carácter práctico y editado por la Facultad de Ingeniería y


Arquitectura de la Universidad Privada TELESUP, refleja la autoridad de nuestros docentes
en la materia y el fortalecimiento de los alumnos en nuestros Laboratorios.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 5 de 91
PROGRAMACIÓN ESTRUCTURADA II

TABLA DE CONTENIDO

I. GENERALIDADES .............................................................................................................................................7
1. INTRODUCCIÓN ............................................................................................................................................................7
2. OBJETIVOS.....................................................................................................................................................................8
3. ALCANCES Y/O LIMITACIONES ...................................................................................................................................8
4. REGLAS DEL COMPORTAMIENTO DEL ALUMNO EN EL LABORATORIO DE PROG.ESTRUC. II ..........................9
5. ESTRUCTURA DE LOS INFORMES DEL LABORATORIO DE PROG. ESTRUC. II PARA EL ALUMNO .....................9
I. PLAN DE ACTIVIDADES .................................................................................................................................14
LABORATORIO Nº 01-MODELAMIENTO DE BASE DE DATOS ....................................................................................14
LABORATORIO Nº 02-PROGRAMA CON CLASES .........................................................................................................20
LABORATORIO Nº 03-PROGRAMA APLICACIÓN CON HERENCIAS Y OBJETOS .......................................................28
LABORATORIO Nº 04-PROGRAMA CON CLASES ABSTRACTAS Y ENCAPSULAMIENTO .......................................40
LABORATORIO Nº 05-PROGRAMA CON POLIFORMISMO Y EXCEPCIONES .............................................................51
LABORATORIO Nº 06-PROGRAMA CON FUNCIONES Y METODOS RECURSIVOS ...................................................65
LABORATORIO Nº 07-OPERACIONES CON DATOS DINAMICOS (PILAS Y COLAS) ..................................................69
LABORATORIO Nº 08-PROGRAMA CON LISTAS SIMPLEMENTE ENLAZADAS .........................................................73
LABORATORIO Nº 09-PROGRAMA CON ARBOLES, GRAFOS, LISTAS........................................................................81

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 6 de 91
PROGRAMACIÓN ESTRUCTURADA II

GLOSARIO

 APA: Normas de la American Psychological Association - APA, son hoy en día uno de los
estándares más reconocidos para la transmisión del conocimiento científico y académico. El
Manual de publicaciones de la APA contiene directrices para todos los aspectos relacionados
con la redacción, especialmente en las ciencias sociales, desde la determinación de la autoría
hasta la construcción de un cuadro para evitar el plagio, y para la precisión en las referencias
bibliográficas.

 Datos o datos brutos: Son los valores cualitativos o cuantitativos mediante los cuales se
miden las características de los objetos, sucesos o fenómenos a estudiar antes de ser
organizados y analizados. Los datos son colecciones de un número cualquiera de
observaciones relacionadas entre sí

 VANCOUVER: Las normas Vancouver o el estilo Vancouver es un tipo de reglas que se han
conformado para buscar un criterio de uniformidad al momento de preparar y publicar un
manuscrito que esté vinculado con las Ciencias de la Salud. En ese orden de ideas, las
normas Vancouver son usadas como un medio para lograr una cierta unicidad al momento de
realizar citas bibliográficas.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 7 de 91
PROGRAMACIÓN ESTRUCTURADA II

I. GENERALIDADES

1. INTRODUCCIÓN

La presente estructura de guía de práctica tiene como finalidad servir de guía al


docente como al alumno de la UPTELESUP en la elaboración de las Guías de Práctica
del curso de Programación Estructurada II de la Facultad de Ingeniería y Arquitectura.
El documento consta de 02 partes, una está referida a las generalidades que
permitirá al estudiante poder aplicar la parte teórica y dos la parte práctica de
laboratorio.
Una vez familiarizados con los elementos de un proyecto en java con la herramienta
NetBeans, las clases que se pueden crear, editar y compilar. En el presente
laboratorio se desarrollan ejercicios tipo utilizando clases, objetos atributos y
métodos, a través del IDE NetBeans; de este modo se pretende que el estudiante
inicie en el desarrollo de aplicaciones visuales, utilizando para ello las librerías de JFC
(Java Fundation Class) como son: SWING y AWT (Abstract Windows ToolKit); así como
también se incorpora el manejo de eventos en Java.
El software que usaremos para la prueba y ejecución de los programas el lenguaje de
programación Java, el cual es sencillo de manejar por su entorno práctico, y permitirá
al alumno digitar sus soluciones para probar la lógica de sus planteamientos
traducidos al lenguaje de programación Java.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 8 de 91
PROGRAMACIÓN ESTRUCTURADA II

2. OBJETIVOS

La programación Orientada a objetos (POO) es una forma especial de programar, más


cercana a como expresaríamos las cosas en la vida real que otros tipos de
programación. Con la POO tenemos que aprender a pensar las cosas de una manera
distinta, para escribir nuestros programas en en términos de objetos, propiedades,
métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una
pequeña base que permita soltarnos un poco con este tipo de programación.
Reusabilidad: Cuando hemos diseñado adecuadamente las clases, se pueden usar en
distintas partes del programa y en numerosos proyectos.
Mantenibilidad: Debido a la sencillez para abstraer el problema, los programas
orientados a objetos son más sencillos de leer y comprender, pues nos permiten
ocultar detalles de implementación dejando visibles sólo aquellos detalles más
relevantes.
Modificabilidad: La facilidad de añadir, suprimir o modificar nuevos objetos nos
permite hacer modificaciones de una forma muy sencilla. Fiabilidad. Al dividir el
problema en partes más pequeñas podemos probarlas de manera independiente y
aislar mucho más fácilmente los posibles errores que puedan surgir.

3. ALCANCES Y/O LIMITACIONES

La finalidad de esta guía es complementar la teoría y contribuir a la formación del


estudiante para la solución de problemas de sistemas reales de mucha mayor
complejidad. Dentro de lo posible se debe prescindir de los sistemas digitales de

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 9 de 91
PROGRAMACIÓN ESTRUCTURADA II

adquisición de datos, para que el estudiante se enfrente personalmente a la toma de


datos, los analice y extraiga sus propias conclusiones.

Una de las limitaciones en algunos de los laboratorios es la disponibilidad de equipos


ya sea por el espacio que ocupen o por ser sumamente costosos y serán solo de
carácter demostrativo. En estos casos, se exige una mayor atención por parte del
estudiante, y una explicación detallada y fácil de entender por parte del profesor.

4. REGLAS DEL COMPORTAMIENTO DEL ALUMNO EN EL LABORATORIO DE


PROG.ESTRUC. II

 Leer la Guía de laboratorio de acuerdo a la práctica que corresponde.

 Está prohibido fumar, comer o beber en el laboratorio.

 Los estudiantes deben comportarse de forma respetuosa entre compañeros y


con sus profesores.

 Si no se está seguro de lo que se está haciendo pregunte al profesor a cargo.

 Procurar no andar de un lado a otro sin motivo, y, sobre todo, no correr dentro
del laboratorio.

 Mantener el laboratorio de computo limpio y ordenado.

5. ESTRUCTURA DE LOS INFORMES DEL LABORATORIO DE PROG. ESTRUC. II


PARA EL ALUMNO

El informe del laboratorio debe redactarse con cohesión y claridad a fin de ser de
fácil entendimiento para el lector. Por ejemplo, cada sección del informe debe estar
resaltada y organizada en una secuencia apropiada que sea fácil de entender. En el
contexto del curso para el que se ha escrito, el informe del laboratorio sirve para
describir lo que realizó durante dicha sesión, de cómo manipuló los datos registrados
y cómo llegó a la conclusión de sus resultados. Si bien puede parecerle lógico escribir

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 10 de 91
PROGRAMACIÓN ESTRUCTURADA II

un informe en una secuencia cronológica o histórica, tal enfoque no es el más útil


para los lectores, quienes encontrarían que un informe de este tipo es difícil de
revisar en busca de los elementos de mayor interés. Piense en el informe como un
documento eficiente, es decir, pruebe que comprendió lo que realizó y que puede
aplicarlo en situaciones prácticas.

Las secciones requeridas para completar los informes de laboratorio de


Programación Estructurada II deben escribirse en el orden que se detalla a
continuación:

1) Portada. La siguiente información debe aparecer en la carátula:

 Título, que indique el experimento de la práctica.


 Fecha de realización del experimento.
 Fecha de entrega del informe.
 Nombre de los alumnos que realizaron el experimento.
 Identificación del laboratorio donde se realizó el experimento.
 Nombre(s) del Profesor y/o Auxiliar del Laboratorio.

2) Objetivos. Indique el objetivo(s) del experimento de forma concisa, en forma


de párrafo. La guía de laboratorio o la hoja de instrucciones ayudarán aquí. El
hecho de que los experimentos en cursos de laboratorio se utilicen para educar
a los estudiantes es un objetivo secundario, y no debe mencionarse en el
informe. En otras palabras, el objetivo escrito en su informe nunca debe ser
"familiarizar a los estudiantes con el uso del equipo". El objetivo debe indicar el
problema, procedimiento y datos que intentan responder. Algunos verbos clave
que usará en el objetivo pueden incluir "investigar", "trazar", "medir" o
"comparar". La sección debe informar al lector por qué se realizó el proyecto.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 11 de 91
PROGRAMACIÓN ESTRUCTURADA II

3) Marco Teórico. Se debe proporcionar una descripción concisa de la teoría


relevante para comprender otras partes del informe, como el análisis de datos
o las secciones de discusión. Esta sección a veces se combina con la
introducción y la sección de antecedentes, si esto resulta en un informe más
legible. Deben introducirse las ecuaciones relevantes y deben definirse todos
los términos que se utilizarán en el informe. Las ecuaciones deben presentarse
como partes de oraciones completas. Debe citar las Fuentes de información
según las normas APA1 y VANCOUVER2

4) Descripción del Experimento. Proporcione un dibujo esquemático ordenado,


correcto y claro de la configuración experimental, que muestre todas las
interconexiones e interrelaciones, de corresponder fotografías. Incluya una
breve descripción textual que haga referencia a todas las partes del dibujo
esquemático. Esta sección debe tener toda la información necesaria para que
un lector duplique la configuración de forma independiente. Haga una lista de
todos los equipos y materiales utilizados en el experimento. El lector debe
poder conectar cada elemento de esta sección al elemento en la sección
Descripción de la configuración experimental.

5) Procedimiento. - Detalle el procedimiento realizado en el laboratorio para


llevar a cabo el experimento paso a paso. Se debe proporcionar suficiente
información para permitir que el lector repita el experimento de manera
idéntica. Se deben describir los procedimientos especiales utilizados para
asegurar condiciones experimentales específicas, o para mantener una
precisión deseada en la información obtenida. Como en todas las secciones del
informe, el procedimiento describe lo que se hizo en el laboratorio. Por lo

1 http://normasapa.com/formato-apa-presentacion-trabajos-escritos/
2 referenciar

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 12 de 91
PROGRAMACIÓN ESTRUCTURADA II

tanto, debe escribirse en tiempo pasado. Copiar el procedimiento de un guía de


laboratorio sería un reflejo inexacto del trabajo realizado en el laboratorio y no
es aceptable.

6) Toma de Datos. Todos los datos brutos pertinentes obtenidos durante el


experimento se presentan en esta sección. Esta sección debe contener solo
información bruta, no resultados de la manipulación de datos. Si este último
necesita ser incluido en la misma tabla que los datos brutos en interés del
espacio o estilo de presentación, los datos brutos deben identificarse
claramente como tales. El tipo de datos variará de acuerdo con el experimento
individual y puede incluir números, bocetos, imágenes, fotografías, etc. Todos
los datos numéricos deben tabularse cuidadosamente. Cada tabla, figura y
gráfico en el informe debe tener un título o etiqueta y un número al que se
hace referencia en el texto escrito. Las variables tabuladas o representadas
deben identificarse claramente con un símbolo o nombre. Las unidades, si las
hay, siempre deben anotarse claramente.

7) Análisis de Datos. Esta sección describe en forma de texto cómo se llevó a cabo
la manipulación de fórmulas de los datos y proporciona las ecuaciones y los
procedimientos utilizados. Si se usa más de una ecuación, todas las ecuaciones
se deben enumerar secuencialmente de forma que se les pueda hacer
referencia en otra parte del texto. Los resultados finales del análisis de datos se
informan en esta sección, usando figuras, gráficos, tablas u otras formas
convenientes. Esta sección debe incluir declaraciones sobre la exactitud de los
datos, respaldados cuando sea necesario por un análisis de errores.

8) Discusión y Resultados. Esta sección está dedicada a la interpretación del


resultado del experimento. La información del análisis de datos es examinada y
explicada. Debe describir, analizar y explicar (no solo repetir) todos sus

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 13 de 91
PROGRAMACIÓN ESTRUCTURADA II

resultados. Esta sección debe responder a la pregunta "¿Qué me dicen los


datos?" Describa cualquier proyección lógica del resultado, por ejemplo, la
necesidad de repetir los experimentos o medir ciertas variables de manera
diferente. Evalúe la calidad y precisión de su procedimiento. Compare sus
resultados con el comportamiento esperado, si tal comparación es útil o
necesaria, y explique cualquier comportamiento inesperado.

9) Conclusiones. Las conclusiones deben basarse en resultados reales. Explica el


significado del experimento y las implicaciones de los resultados. Examina el
resultado a la luz de los objetivos establecidos. Busca sacar conclusiones en un
contexto más amplio a la luz de los resultados.

10) Referencias. Utilizando el formato bibliográfico estándar, cite todas las fuentes
publicadas que consultó durante la realización del experimento y la preparación
de su informe de laboratorio. Enumere los autores, título del articulo o libro,
nombre de la revista o editorial, según corresponda, número (s) de página, si
corresponde, y la fecha. Si una fuente está incluida en la lista de referencias,
también debe referirse a los lugares apropiados en el informe.

11) Apéndice. Los detalles de análisis, cálculos, etc. que se mencionaron en el


cuerpo principal del informe deben incluirse en el apéndice.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 14 de 91
PROGRAMACIÓN ESTRUCTURADA II

I. PLAN DE ACTIVIDADES
LABORATORIO Nº 01
MODELAMIENTO DE BASE DE DATOS

I. OBJETIVOS
 Comprender la estructura de un modelo UML de Rational Rose.

 Crear elementos de los modelos y diagramas de UML.

 Estructurar los elementos de modelos y diagramas UML a través de paquetes.

II. FUNDAMENTO TEÓRICO


Modelamiento de Datos
El Modelamiento de datos es una etapa fundamental en el desarrollo de aplicaciones,
tiene tres pasos en su elaboración el Modelo Conceptual, el Modelo Lógico y el
modelo Físico. En el modelo conceptual se establece el diagrama de clases.
Rational Rose 7.0
Rational Rose es una herramienta de diseño orientada a objetos, que da soporte al
modelado visual, es decir, que permite representar gráficamente el sistema,
permitiendo hacer énfasis en los detalles más importantes, centrándose en los casos
de uso y enfocándose hacia un software de mayor calidad, empleando un lenguaje
estándar común que facilita la comunicación.
Microsoft SQL Server2016
un producto que permite almacenar información y gestionarla; trabajando con bases
de datos relacionales, pues es un sistema administrativo entero. Como su mismo

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 15 de 91
PROGRAMACIÓN ESTRUCTURADA II

nombre lo indica, utiliza el Structured Query Language, un lenguaje que sirve para
administrar el servidor de la base de datos.

III. EQUIPOS, MATERIALES E INSUMOS


Equipos

 Computadora personal

 Programa Rational Rose 7.0 correctamente instalado.

Materiales

 Pizarra, mota, plumones.

 Documentos de trabajos.

IV. PARTE EXPERIMENTAL


Procedimiento
Antes de comenzar a manipular el Rational Rose 7.0 crear siempre, una carpeta,
donde se guardarán todas las aplicaciones realizadas en el presente laboratorio con
el nombre LABORAT-UPT-01.
Construya el diagrama de clase que administre la información de un Sistema de
Ventas.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 16 de 91
PROGRAMACIÓN ESTRUCTURADA II

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 17 de 91
PROGRAMACIÓN ESTRUCTURADA II

CREANDO LA BASE DE DATOS

 Ir al Programas -> Microsoft SQL Server 2015 -> SQL Server Managament
Studio.

Creando una nueva


Base de Datos para
esto seleccione la
carpeta Base de Datos
y presione botón
derecho.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 18 de 91
PROGRAMACIÓN ESTRUCTURADA II

Siguiendo los mismos procesos cree las tablas


restantes con las siguientes características:

A continuación, se especifica los atributos de las tablas


Cliente, Detalle Venta, Producto, Tipo de Producto, para
la Base de Datos.

Diagrama de base de datos de la base de datos sistemas.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 19 de 91
PROGRAMACIÓN ESTRUCTURADA II

EJERCICIO PROPUESTO

Construya el diagrama de Clases y la Base de Datos que administre la información de un


Sistema de Inventario.

V. CUESTIONARIO

1. ¿Mostrar el Modelos y diagrama UML?

2. ¿Mostrar el modelo relacional de la base de datos sistema?

VI. REFERENCIA BIBLIOGRÁFICA

 -JOYANES AGUILAR Luis. Programación en C++, Un enfoque práctico (Serie Schaum).


1era Edición. Editorial Mc Graw-Hill Interamericana. 2006. ISBN:9788448146436

 -PÉREZ CARRETERO Jesús. Fundamentos de Programación. 1era Edición. Editorial


Thompson. 2007. ISBN:9788497325509

Hojas electrónicas
a. http://http://www.lawebdelprogramador.com/
b. http://www.algoritmia.net/
c. http://www.slideshare.net/mario.storti/algoritmos-y-estructuras-de-datos

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 20 de 91
PROGRAMACIÓN ESTRUCTURADA II

LABORATORIO Nº 02
PROGRAMA CON CLASES

I. OBJETIVOS

 Identificar claramente las herramientas y librerías utilizadas en NetBeans para los


desarrollos visuales.

 Conocer la estructura de un programa visual en Java.

 Se espera que el estudiante asocie los conocimientos nuevos con la “nueva


plantilla” que se propone.

II. FUNDAMENTO TEÓRICO


Objeto. Entidad provista de un conjunto de propiedades o atributos (datos) y de
comportamiento o funcionalidad (métodos). Se corresponde con los objetos reales
del mundo que nos rodea, o a objetos internos del sistema (del programa).
Clases. Una clase es el conjunto de objetos que poseen iguales características
(propiedades) y el mismo comportamiento (métodos).
Propiedad o Atributo. Es una característica de un objeto o clase; es decir, una
propiedad es un dato del objeto que se tiene se tiene que almacenar, pues es una
característica propia del objeto.
Método. Los métodos son acciones que realiza un objeto cuando se encuentra en
ciertas circunstancias.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 21 de 91
PROGRAMACIÓN ESTRUCTURADA II

III. EQUIPOS, MATERIALES E INSUMOS


Equipos

 Computadora personal

 Programa NetBeans IDE 8.2 correctamente instalado.

Materiales

 Pizarra, mota, plumones

 Notas de los ejercicios resueltos en clase.

IV. PARTE EXPERIMENTAL

Procedimiento

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
LABORAT-UPT-02.

Implemente una clase de nombre Empleado con los siguientes atributos: código,
nombres, área laboral (Sistemas, Administración, Marketing), sueldo, horas extras,
afiliación a una AFP. Además, considere atributos de valores comunes para todos los
empleados, para los porcentajes de descuento por afiliación a una AFP (11% del
sueldo), por afiliación al sistema nacional de pensiones (6% de sueldo) y por salud
(3% del sueldo). Considere métodos de cálculo para el monto de horas extras (sueldo
básico*horas extras/240).

Considere los objetos necesarios para utilizar la funcionalidad de la clase.


Utilice la paleta de componentes y construya el siguiente diseño:

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 22 de 91
PROGRAMACIÓN ESTRUCTURADA II

Observe la gráfica y su proyecto quedara de la siguiente forma que constara de una


clase y un formulario.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 23 de 91
PROGRAMACIÓN ESTRUCTURADA II

A continuación de la información de la clase Empleados se define de la siguiente


forma:

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 24 de 91
PROGRAMACIÓN ESTRUCTURADA II

Váyase al editor de código y agregue los siguientes códigos y los siguientes métodos que se
utilizaran para la solución al problema:

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 25 de 91
PROGRAMACIÓN ESTRUCTURADA II

INSTRUCCIONES EN EL BOTON CREAR OBJETO

INSTRUCCIONES EN EL BOTON MOSTRAR INFORMACION DEL OBJETO

INSTRUCCIONES EN EL BOTON MOSTRAR INFORMACION DEL OBJETO

INSTRUCCIONES EN EL BOTON SALIR

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 26 de 91
PROGRAMACIÓN ESTRUCTURADA II

INSTRUCCIONES EN EL EVENTO WINDOWSOPEN DEL FORMULARIO

Presione Shift+F6 y el aplicativo mostrará.

EJERCICIO PROPUESTO

1. Construya una clase que permita guardar de una universidad guarda la


información de sus docentes como: Código (que será autogenerado ejm:
C0001, C0002, etc.), nombres, categoría (Principal, Asociado, Auxiliar). Estudios
de Postgrado (ninguno, Maestría, Doctorado, Ambas) años de antigüedad,
horas de clase, sueldo bruto, % de bonificación por Estudios de Posgrado, % de
bonificación por años de antigüedad, monto de AFP, monto por un seguro de
salud y sueldo neto. La Universidad paga a sus Docentes por cada hora
trabajada según su categoría, así como los porcentajes de bonificación también
según su categoría y años de antigüedad son aplicables al sueldo bruto.

Pago parcial = (numero de hora) *(pago por hora).

En el siguiente cuadro se establecen los pagos por horas y las bonificaciones


correspondientes por cada categoría en base al pago parcial:

Estudios de Postgrado Bonificación por


Pago
(% de Bonificación) años de antigüedad
Categoría por
Con Con
hora Ambas < 7años >=8 años
Doctorado Maestría
Principal 25.00 20% 17% 25% 5% 7%
Asociado 18.00 15% 10% 20% 4% 6%
Auxiliar 15.00 12% 8% 17% 2% 5%
*Si no cuenta con ninguno de los grados no recibe bonificación.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 27 de 91
PROGRAMACIÓN ESTRUCTURADA II

El sueldo bruto se calcula de la siguiente manera:

Sueldo Bruto= pago parcial + bonif. por Postgrado + bonif. por años de antiguedad

Además, considere atributos de valores comunes para todos los docentes como
descuento por AFP del 13%, y por un seguro de salud de 5% de su sueldo bruto.

Construya el aplicativo con los objetos necesarios para utilizar la funcionalidad de la


clase implementada.

V. CUESTIONARIO

1. ¿Mostrar el numero de empleado registrado al ingresar sus datos?

2. ¿Mostrar los detalles de datos y cálculos generados por el programa al


seleccionar un tipo de seguro y un tipo de área?

VI. REFERENCIA BIBLIOGRÁFICA

 -JOYANES AGUILAR Luis. Fundamentos de Programación. Algoritmos, Estructura


de Datos y Objetos. 4ta Edición. Editorial Mc Graw-Hill Interamericana. 2008.
ISBN:9788448161118
 -JOYANES AGUILAR Luis. Programación en C++, Un enfoque práctico (Serie
Schaum). 1era Edición. Editorial Mc Graw-Hill Interamericana. 2006.
ISBN:9788448146436

Hojas electrónicas
a. http://http://www.lawebdelprogramador.com/
b. http://www.algoritmia.net/
c. http://www.slideshare.net/mario.storti/algoritmos-y-estructuras-de-datos

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 28 de 91
PROGRAMACIÓN ESTRUCTURADA II

LABORATORIO Nº 03
PROGRAMA APLICACIÓN CON HERENCIAS Y OBJETOS

I. OBJETIVOS

 Aplicar correctamente los componentes en el desarrollo de un programa.

 Utilizar cada sintaxis de cada componente para ser aplicado en el desarrollo de un


programa.

 Identificar claramente las propiedades de un objeto

 Identificar los métodos que tiene un objeto.

 Aplicar correctamente las técnicas de programación orientado a objetos

II. FUNDAMENTO TEÓRICO


Objeto.
Al crear un objeto se crea una instancia de la clase.
Declaración de objetos:
Clase Objeto;
Objeto = new Clase( );
Clase Objeto = new Clase( );
Clase. Una clase es básicamente un plano para un tipo de datos personalizado.
Declaración de clase:
class nombre_de_la_clase
{
… contenido de la clase …
}
Método. Los métodos son acciones que realiza un objeto cuando se encuentra en
ciertas circunstancias.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 29 de 91
PROGRAMACIÓN ESTRUCTURADA II

<tipo devuelto><nombreMétodo>(<parámetros>)
{
<instrucciones>
}
Variables.

Las variables locales son aquellas que se declaran dentro de un método y solo son
reconocidas dentro del método mismo, donde fueron declaradas, fuera de él el
compilador del programa, no las reconoce y marca como error.

Las variables globales son declaradas dentro de la clase, no dentro del método, pero,
son reconocidas por todos los métodos que existen dentro de la clase.

<Tipo de Dato> nombreVariable;

Constructor

Cada vez que se crea una clase o estructura, se llama a su constructor. Una clase o
estructura puede tener varios constructores que toman argumentos diferentes. Los
constructores permiten al programador establecer valores predeterminados, limitar
la creación de instancias y escribir código flexible y fácil de leer.

Estructura:

Modificador NombredelaClase (Parámetros)

Instrucciones

Herencia

La herencia es un mecanismo que permite la definición de una clase a partir de la


definición de otra ya existente.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 30 de 91
PROGRAMACIÓN ESTRUCTURADA II

III. EQUIPOS, MATERIALES E INSUMOS


Equipos

 Computadora personal

 Programa NetBeans IDE 8.2 correctamente instalado.

Materiales

 Pizarra, mota, plumones

 Notas de los ejercicios resueltos en clase.

IV. PARTE EXPERIMENTAL

Procedimiento
Implemente una clase de nombre Empleado con los siguientes atributos: DNI,
apellidos, nombres, así como su constructor correspondiente que actualice su
información y considere un método para mostrar la información de los atributos.
Luego construya una clase hija de nombre EmpleadoVendedor con los siguientes
atributos: monto vendido y la tasa de comisión y su respectivo constructor. Para esta
clase construya los siguientes métodos que permita:

 Calcular sus ingresos basados en montovendido*tasacomision.


 Calcular su bonificación de la siguiente manera: si el monto vendido es menor
que 1000 no tendrá bonificación, si estas entre 1000 y 5000 será el 5% de sus
ingresos, si supera los 5000 su bonificación será del 10% de sus ingresos.
 Calcular su descuento de la siguiente manera: si sus ingresos son menores a
1000 su descuento será del 11% de sus ingresos sino será el 15% de sus
ingresos.
 Calcular su sueldo neto como: ingresos + bonificaciones - descuentos

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 31 de 91
PROGRAMACIÓN ESTRUCTURADA II

Luego construya otra clase hija de nombre EmpleadoPermanente con los siguientes
atributos: sueldo base y afiliación (AFP y SNP) e incluya su constructor. Construya los
siguientes métodos permitan:
 Retornar el sueldo base, método que llamara ingresos.
 Calcular el descuento basado en: si la afiliación es AFP será el 15% del sueldo
base sino será el 11% del sueldo base.
 El sueldo neto se calculará como: ingresos - descuentos
Considere los objetos necesarios para utilizar la funcionalidad de la clase
Utilice la paleta de componentes y construya el siguiente diseño:

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 32 de 91
PROGRAMACIÓN ESTRUCTURADA II

Observe la gráfica y su proyecto quedara de la siguiente forma que constara de 3


clases y un formulario. Observe al lado derecho el Inspector de Objetos para guiarse
de los nombres de los objetos.

Del enunciado la clase Empleado tiene la siguiente información:

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 33 de 91
PROGRAMACIÓN ESTRUCTURADA II

La clase hija EmpleadoVendedor tiene la siguiente información

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 34 de 91
PROGRAMACIÓN ESTRUCTURADA II

La clase hija EmpleadoPermanente tiene la siguiente información

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 35 de 91
PROGRAMACIÓN ESTRUCTURADA II

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 36 de 91
PROGRAMACIÓN ESTRUCTURADA II

A continuación, complete lo siguientes códigos en el Editor de Código

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 37 de 91
PROGRAMACIÓN ESTRUCTURADA II

Presione Shift+F6 y el aplicativo mostrará la siguiente ventana

EJERCICIO PROPUESTO

Construya una clase Persona que tiene los siguientes atributos, apellidos, nombres,
sexo y DNI, incluya sus constructores y un método que permita visualizar la
información de los atributos.

Luego construya la subclase Docente de la clase Persona que tiene los atributos
como: Código (que será autogenerado ejm: D0001, D0002, etc.), categoría (Principal,
Asociado, Auxiliar). Estudios de Postgrado (ninguno, Maestría, Doctorado, Ambas),
horas de clase. Construya su constructor y los siguientes métodos que permitan:

 Calcular el Pago por Hora de acuerdo a su categoría (observe el cuadro de


abajo)
 Calcular el Pago Parcial que se calcula de: numero de horas * pago por Hora
Calcular la Bonificación en base a sus estudios de postgrado como se observa en la
tabla.
% de Bonificación de acuerdo
Pago a los estudios de Postgrado en
Categoría por base al pago parcial
hora Con Con
Ambas
Doctorado Maestría
Principal 25.00 20% 17% 25%
Asociado 18.00 15% 10% 20%
Auxiliar 15.00 12% 8% 17%

 Calcular el sueldo bruto de acuerdo a lo siguiente:


Sueldo Bruto= pago parcial + bonif. por Postgrado
 Calcular el sueldo Neto tomando en cuenta el descuento por AFP del 13%, y por
un seguro de salud de 5% de su sueldo bruto

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 38 de 91
PROGRAMACIÓN ESTRUCTURADA II

Luego construya una subclase hija Estudiante de la clase Persona que tendrá los
atributos como: Código (que será autogenerado ejm: E0001, E0002, etc.), Categoría
(A, B o C), Promedio ponderado, semestre de ingreso (2010-I, 2010-II o 2011-I)
colegio de Procedencia (Estatal o Particular). Construya su constructor y los
siguientes métodos que permitan:

 Calcular el pago parcial de pensiones en función a la categoría y el colegio de


procedencia tal y como se muestra en la tabla

Pago parcial de Pensiones


Categoría
Estatal Particular
A 320 450
B 300 420
C 280 380

 Calcular el descuento sobre el pago parcial de pensiones de acuerdo al


promedio ponderado como sigue a continuación

Rango del Prom % de descuento sobre


Ponderado el pago de pensión
Menor a 13 0%
Entre 13 y 16 8%
Mayor a 16 15%

 Calcular el pago final de pensión que se calcula de:


Pago Final de pensión= pago parcial de pensiones - descuento

NOTA: Ambas clases tendrán métodos recargados para mostrar la información de sus
datos.

Construya el aplicativo con los objetos necesarios para utilizar la funcionalidad de las
clases y subclases implementadas.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 39 de 91
PROGRAMACIÓN ESTRUCTURADA II

V. CUESTIONARIO

1. ¿Mostrar el pago por hora por categoría?

2. ¿Mostrar el pago parcial que se acumula?

3. ¿Mostrar el sueldo bruto?

4. ¿Mostrar el sueldo neto?

5. ¿Mostrar el pago final de pensiones?

VI. REFERENCIA BIBLIOGRÁFICA

 -JOYANES AGUILAR Luis. Fundamentos de Programación. Algoritmos,


Estructura de Datos y Objetos. 4ta Edición. Editorial Mc Graw-Hill
Interamericana. 2008. ISBN:9788448161118
 -JOYANES AGUILAR Luis. Programación en C++, Un enfoque práctico (Serie
Schaum). 1era Edición. Editorial Mc Graw-Hill Interamericana. 2006.
ISBN:9788448146436
 -PÉREZ CARRETERO Jesús. Fundamentos de Programación. 1era Edición.
Editorial Thompson. 2007. ISBN:9788497325509

Hojas electrónicas
a. http://http://www.lawebdelprogramador.com/
b. http://www.algoritmia.net/
c. http://www.slideshare.net/mario.storti/algoritmos-y-estructuras-de-datos

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 40 de 91
PROGRAMACIÓN ESTRUCTURADA II

LABORATORIO Nº 04
PROGRAMA CON CLASES ABSTRACTAS Y ENCAPSULAMIENTO

I. OBJETIVOS

 Construir programas orientado a objetos con la posibilidad de declarar clases que


definen como se utiliza solamente, sin tener que implementar método.
 Crear programas con la utilidad del uso de clases abstractas.

II. FUNDAMENTO TEÓRICO


Clase Abstracta
Una clase abstracta es una clase de la que no se puede crear objetos.
Encapsulamiento
encapsulamiento al ocultamiento del estado, es decir, de los datos miembro de un
objeto de manera que solo se pueda cambiar mediante las operaciones definidas
para ese objeto.
Polimorfismo
Esta característica permite definir distintos comportamientos para un método
dependiendo de la clase sobre la que se realice la implementación.

III. EQUIPOS, MATERIALES E INSUMOS


Equipos

 Computadora personal

 Programa NetBeans IDE 8.2 correctamente instalado.

Materiales

 Pizarra, mota, plumones

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 41 de 91
PROGRAMACIÓN ESTRUCTURADA II

 Notas de los ejercicios resueltos en clase.

IV. PARTE EXPERIMENTAL

Procedimiento

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
LABORAT-UPT-04.

Implemente una clase padre abstracta de nombre Empleado con los siguientes
atributos: DNI, apellidos, nombres, así como su constructor correspondiente que
actualice su información y así como sus métodos getter y setter (Encapsulamiento).
Así como también defina métodos abstractos para los ingresos, bonificación y
descuentos, y también métodos no abstractos para el sueldo neto y la impresión de
la información del empleado.
Luego construya una clase hija de nombre EmpleadoVendedor con los siguientes
atributos: monto vendido y la tasa de comisión y su respectivo constructor y los
métodos setter y getter (encapsulamiento). Para esta clase desarrolle los métodos
abstractos heredados con las siguientes características y que permita hacer lo
siguiente:
Calcular sus ingresos basados en montovendido*tasacomision.
Calcular su bonificación de la siguiente manera: si el monto vendido es menor que
1000 no tendrá bonificación, si estas entre 1000 y 5000 será el 5% de sus ingresos, si
supera los 5000 su bonificación será del 10% de sus ingresos.
Calcular su descuento de la siguiente manera: si sus ingresos son menores a 1000 su
descuento será del 11% de sus ingresos sino será el 15% de sus ingresos.
Luego construya otra clase hija de nombre EmpleadoPermanente con los siguientes
atributos: sueldo base y afiliación (AFP y SNP) e incluya su constructor y los métodos

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 42 de 91
PROGRAMACIÓN ESTRUCTURADA II

setter y getter (encapsulamiento). Para esta clase desarrolle los métodos abstractos
heredados con las siguientes características y que permita hacer lo siguiente:
 Retornar el sueldo base, método que llamara ingresos.
 Calcular el descuento basado en: si la afiliación es AFP será el 15% del sueldo
base sino será el 11% del sueldo base.
 No hay bonificación es decir la bonificación es 0.

Considere los objetos necesarios para utilizar la funcionalidad de la clase


Utilice la paleta de componentes y construya el siguiente diseño:

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 43 de 91
PROGRAMACIÓN ESTRUCTURADA II

Observe la gráfica y su proyecto quedara de la siguiente forma que constara de 3


clases y un formulario. Observe al lado derecho el Inspector de Objetos para guiarse
de los nombres de los objetos.

Del enunciado la clase Empleado tiene la siguiente información:

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 44 de 91
PROGRAMACIÓN ESTRUCTURADA II

La clase hija EmpleadoVendedor tiene la siguiente información

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 45 de 91
PROGRAMACIÓN ESTRUCTURADA II

La clase hija EmpleadoPermanente tiene la siguiente información

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 46 de 91
PROGRAMACIÓN ESTRUCTURADA II

A continuación, complete lo siguientes códigos en el Editor de Código

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 47 de 91
PROGRAMACIÓN ESTRUCTURADA II

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 48 de 91
PROGRAMACIÓN ESTRUCTURADA II

Presione Shift+F6 y el aplicativo mostrará la siguiente ventana

EJERCICIO PROPUESTO

Construya una clase abstracta de nombre Persona que tiene los siguientes atributos:
apellidos, nombres, sexo y DNI, incluya sus constructores. Además, construya sus
métodos getter y setter (Encapsulamiento) y también declare los métodos abstractos
como pago por hora, pago parcial, bonificación, sueldo bruto y construya métodos no
abstractos como cálculo del sueldo neto que se calcula de: sueldo bruto +
bonificaciones – descuentos, cálculo del descuento de AFP y por concepto de Essalud
y un método para mostrar información de la clase. Considere valores comunes para
las clases como el 17% del AFP y 5% por concepto de seguro que serán los
descuentos aplicables a los empleados.

Luego construya la subclase Docente de la clase Persona que tiene los atributos
como: Código (que será autogenerado ejm: D0001, D0002, etc.), categoría (Principal,
Asociado, Auxiliar). Estudios de Postgrado (ninguno, Maestría, Doctorado, Ambas),
horas de clase. 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:

 Calcular el Pago por Hora de acuerdo a su categoría (observe el cuadro de


abajo)
 Calcular el Pago Parcial que se calcula de: numero de horas * pago por Hora

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 49 de 91
PROGRAMACIÓN ESTRUCTURADA II

 Calcular la Bonificación en base a sus estudios de postgrado como se observa


en la tabla.

% de Bonificación de acuerdo
Pago a los estudios de Postgrado en
Categoría por base al pago parcial
hora Con Con
Ambas
Doctorado Maestría
Principal 25.00 20% 17% 25%
Asociado 18.00 15% 10% 20%
Auxiliar 15.00 12% 8% 17%

 Calcular el sueldo bruto de acuerdo a lo siguiente:


Sueldo Bruto= pago parcial + bonif. por Postgrado

Luego construya una subclase hija JefeDePracticas de la clase Persona que tendrá los
atributos como: Código (que será autogenerado ejm: JP0001, JP0002, etc.), Categoría
(A, B o C), Grado Académico (Bachiller o Titulado), horas asignadas, años de
experiencia, Certificación (Java Developer, o .Net). 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:

 Calcular el pago por hora está en función de su categoría y su grado académico


tal y como se muestra en la tabla.

Pago por horas


Categoría
Bachiller Titulado
A 18 20
B 16 18
C 12 13

 Calcular el Pago Parcial que se calcula de: horas asignadas * pago por Hora
 La bonificación que recibirá el jefe de prácticas está sujeta al siguiente cuadro
relacionado al pago parcial.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 50 de 91
PROGRAMACIÓN ESTRUCTURADA II

Certificación
Rango de los años
Java
de experiencia . Net
Developer
Menor a 3 6% 4%
Entre 4 y 7 8% 6%
Mayor a 7 10% 8%

 Calcular el sueldo bruto de acuerdo a lo siguiente:


Sueldo Bruto= pago parcial + bonif.
 El jefe de prácticas no recibe descuento por AFP más si por Essalud

NOTA: Ambas clases tendrán métodos recargados para mostrar la información de sus
datos.
Construya el aplicativo con los objetos necesarios para utilizar la funcionalidad de las
clases y subclases implementadas.

V. CUESTIONARIO

1. ¿Mostrar el monto por pago por hora de acuerdo a su categoría?

2. ¿Mostrar el monto del sueldo bruto?

3. ¿Mostrar el pago parcial?

4. ¿Mostrar el sueldo bruto?

5. ¿Mostrar los montos de bonificación y descuentos?

VI. REFERENCIA BIBLIOGRÁFICA

 -PÉREZ CARRETERO Jesús. Fundamentos de Programación. 1era Edición. Editorial


Thompson. 2007. ISBN:9788497325509
Hojas electrónicas
a. http://http://www.lawebdelprogramador.com/
b. http://www.algoritmia.net/

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 51 de 91
PROGRAMACIÓN ESTRUCTURADA II

LABORATORIO Nº 05-PROGRAMA CON POLIFORMISMO Y


EXCEPCIONES

I. OBJETIVOS
 Permitir 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.

 Permitir manejar los errores generados en tiempo de ejecución.

II. FUNDAMENTO TEÓRICO


El Polimorfismo
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.
Las excepciones
El tratamiento de excepciones permite manejar los errores generados en tempo de
ejecución.

III. EQUIPOS, MATERIALES E INSUMOS


Equipos

 Computadora personal

 Programa NetBeans IDE 8.2 correctamente instalado.

Materiales

 Pizarra, mota, plumones

 Notas de los ejercicios resueltos en clase.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 52 de 91
PROGRAMACIÓN ESTRUCTURADA II

IV. PARTE EXPERIMENTAL

Procedimiento

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
LABORAT-UPT-05.

Implemente una clase padre abstracta de nombre Empleado con los siguientes
atributos: DNI, apellidos, nombres, así como su constructor correspondiente que
actualice su información y considere un método para mostrar la información de los
atributos, así como sus métodos getter y setter (Encapsulamiento). Así como también
defina métodos abstractos para los ingresos, bonificación y descuentos, y también
métodos no abstractos para el sueldo y la impresión de la información del empleado.
Luego construya una clase hija de nombre EmpleadoVendedor con los siguientes
atributos: monto vendido y la tasa de comisión y su respectivo constructor y los
métodos setter y getter (encapsulamiento). Para esta clase desarrolle los métodos
abstractos heredados con las siguientes características y que permita hacer lo
siguiente:
 Calcular sus ingresos basados en montovendido*tasacomision.
 Calcular su bonificación de la siguiente manera: si el monto vendido es menor
que 1000 no tendrá bonificación, si estas entre 1000 y 5000 será el 5% de sus
ingresos, si supera los 5000 su bonificación será del 10% de sus ingresos.
 Calcular su descuento de la siguiente manera: si sus ingresos son menores a
1000 su descuento será del 11% de sus ingresos sino será el 15% de sus
ingresos.
 Calcular su sueldo neto como: ingresos + bonificaciones - descuentos

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 53 de 91
PROGRAMACIÓN ESTRUCTURADA II

Luego construya otra clase hija de nombre EmpleadoPermanente con los siguientes
atributos: sueldo base y afiliación (AFP y SNP) e incluya su constructor y los métodos
setter y getter (encapsulamiento). Para esta clase desarrolle los métodos abstractos
heredados con las siguientes características y que permita hacer lo siguiente:
 Retornar el sueldo base, método que llamara ingresos
 Calcular el descuento basado en: si la afiliación es AFP será el 15% del sueldo
base sino será el 11% del sueldo base.
 No hay bonificación es decir la bonificación es 0.
 El sueldo neto se calculará como: ingresos – descuentos
 Además, recibirá asignación de movilidad si sus ingresos son menores de 1000
soles recibirá 50 soles sino recibirá 40 soles.
Considere los objetos necesarios para utilizar la funcionalidad de la clase
Utilice la paleta de componentes y construya el siguiente diseño:

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 54 de 91
PROGRAMACIÓN ESTRUCTURADA II

Observe la gráfica y su proyecto quedara de la siguiente forma que constara de 3


clases y un formulario. Observe al lado derecho el Inspector de Objetos para guiarse
de los nombres de los objetos

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 55 de 91
PROGRAMACIÓN ESTRUCTURADA II

Del enunciado la clase Empleado tiene la siguiente información:

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 56 de 91
PROGRAMACIÓN ESTRUCTURADA II

La clase hija EmpleadoVendedor tiene la siguiente información

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 57 de 91
PROGRAMACIÓN ESTRUCTURADA II

La clase hija EmpleadoPermanente tiene la siguiente información

A continuación, complete lo siguientes códigos en el Editor de Código

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 58 de 91
PROGRAMACIÓN ESTRUCTURADA II

METODOS PARA EL MANEJO DE EXCEPCIONES

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 59 de 91
PROGRAMACIÓN ESTRUCTURADA II

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 60 de 91
PROGRAMACIÓN ESTRUCTURADA II

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 61 de 91
PROGRAMACIÓN ESTRUCTURADA II

Presione Shift+F6 y el aplicativo mostrará la siguiente ventana

EJERCICIO PROPUESTO
Construya una clase abstracta de nombre Empleado que tiene los siguientes
atributos: apellidos, nombres, sexo y DNI, incluya sus constructores. Además,
construya sus métodos getter y setter (Encapsulamiento) y también declare los
métodos abstractos como sueldo base y bonificación, además construya métodos no
abstractos como cálculo del sueldo bruto: sueldo base + bonificación y del sueldo
neto que se calcula de: sueldo bruto – descuentos.

Construya una interfase que permita manejar las siguientes constantes el descuento
de porcentajes del 17% para el AFP y 5% para Essalud. Que serán solo aplicables a la
subclase Operario y Administrativo.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 62 de 91
PROGRAMACIÓN ESTRUCTURADA II

Luego construya la subclase Operario de la clase Empleado que tiene los atributos
como: Código (que será autogenerado ejm: O0001, O0002, etc.), categoría (A, B y C),
Turno de labor (Mañana, tarde y noche), horas adicionales laborables. 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
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 12 soles cualquiera que sea su
categoría y su horario de laboral.
 El descuento no se reciben descuentos.

Luego construya una subclase Administrativo de la clase Empleado que tendrá los
atributos como: Código (que será autogenerado ejm: A0001, A0002, etc.), 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 Servicios no
Contratado Estable
Personales
Secretaria 2000 3000 1800
Asistente 2500 3900 2200

 Los administrativos no reciben bonificaciones.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 63 de 91
PROGRAMACIÓN ESTRUCTURADA II

 El descuento se aplica de acuerdo a las constantes establecidas en la interfase.

Luego construya una subclase abstracta Directivos de la clase Empleado que tendrá el
atributo: área (Contabilidad, Tecnologías de Información y Planificación) y un método
abstracto llamado Prima
Luego construya la subclase jefes de la clase Directivos que maneja los siguientes
atributos como: Código (que será autogenerado ejm: D0001, D0002, etc.) y cargo
(Gerente y Subgerente). 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
Cargo Tecnologías de
Contabilidad Planificación
Información
Gerente 6000 8000 7000
Subgerente 5000 7000 6000

 La bonificación será de 2000 soles cualquiera que sea su categoría y área.


 Los descuentos se aplican de acuerdo a las constantes establecidas en la
interfase
 La prima para cada jefe se está de acuerdo a su cargo y esta se calcula de su
sueldo bruto de la siguiente tabla:
Cargo % de Prima
Gerente 23%
Subgerente 17%
 Esta clase tendrá un método propio que asignará un monto de movilidad de
acuerdo al cargo

Cargo Monto
Gerente 700
Subgerente 400

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 64 de 91
PROGRAMACIÓN ESTRUCTURADA II

Construya el aplicativo con los objetos necesarios para utilizar la funcionalidad de las
clases y subclases implementadas utilice el tratamiento de excepciones para verificar
los datos de entrada del tipo numérico y utilice polimorfismo.

V. CUESTIONARIO

1. ¿Mostrar los datos por cada hoja de empleado vendedor y empleado


permanente?

2. ¿Mostrar el monto de sus ingresos?

3. ¿Mostrar el monto total de las bonificaciones?

4. ¿Mostrar el monto total de los descuentos?

5. ¿Mostrar el sueldo neto?

VI. REFERENCIA BIBLIOGRÁFICA

 -PÉREZ CARRETERO Jesús. Fundamentos de Programación. 1era Edición.


Editorial Thompson. 2007. ISBN:9788497325509
Hojas electrónicas
a. http://http://www.lawebdelprogramador.com/
b. http://www.algoritmia.net/
c. http://www.slideshare.net/mario.storti/algoritmos-y-estructuras-de-datos

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 65 de 91
PROGRAMACIÓN ESTRUCTURADA II

LABORATORIO Nº 06
PROGRAMA CON FUNCIONES Y METODOS RECURSIVOS

I. OBJETIVOS
 Estudio del esquema general recursivo.

 Estudiar la complejidad temporal de los métodos recursivos.

 Estudiar la estrategia Divide y Vencerás (DyV)

 El estudio de funciones recursivos que se invocan así mismas.

II. FUNDAMENTO TEÓRICO


Recursividad
La recursividad es una técnica potente de programación que puede utilizarse en lugar
de la iteración para resolver determinados tipos de problemas. Un método
es recursivo cuando entre sus instrucciones se encuentra una llamada a sí mismo.
Función Recursiva
Una función recursiva es una función que se llama a sí misma. Esto es, dentro del
cuerpo de la función se incluyen llamadas a la propia función.
Método
Es un conjunto de instrucciones definidas dentro de una clase, que realizan una
determinada tarea y a las que podemos invocar mediante un nombre.

III. EQUIPOS, MATERIALES E INSUMOS


Equipos

 Computadora

 Proyector

Materiales

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 66 de 91
PROGRAMACIÓN ESTRUCTURADA II

 Pizarra, mota, plumones

 Documentos de trabajos

IV. PARTE EXPERIMENTAL

Procedimiento

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
LABORAT-UPT-06.

Construya la interfaz gráfica siguiente:

Codifique las siguientes líneas de código del método recursivo.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 67 de 91
PROGRAMACIÓN ESTRUCTURADA II

Implementación de Métodos

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 68 de 91
PROGRAMACIÓN ESTRUCTURADA II

EJERCICIO PROPUESTO
Programar un algoritmo recursivo que calcule el factorial de un número.

V. CUESTIONARIO

1. ¿Mostrar el factorial y el Fibonacci del numero 5?

VI. REFERENCIA BIBLIOGRÁFICA

 -JOYANES AGUILAR Luis. Programación en C++, Un enfoque práctico (Serie


Schaum). 1era Edición. Editorial Mc Graw-Hill Interamericana. 2006.
ISBN:9788448146436

 -PÉREZ CARRETERO Jesús. Fundamentos de Programación. 1era Edición.


Editorial Thompson. 2007. ISBN:9788497325509

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 69 de 91
PROGRAMACIÓN ESTRUCTURADA II

LABORATORIO Nº 07
OPERACIONES CON DATOS DINAMICOS (PILAS Y COLAS)

I. OBJETIVOS
 Conocer y comparar las herramientas de pilas y colas.

 Crear aplicación de NetBeans, aplicando los temas de pilas y colas.

 Conocer la estructura de un programa recursivo de pilas.

II. FUNDAMENTO TEÓRICO


Pila
Una pila (stack en inglés) es una estructura de datos lineal que solo tienen un único
punto de acceso fijo por el cual se añaden, eliminan o se consultan elementos. El
modo de acceso a los elementos es de tipo LIFO (del inglés Last In First Out, último en
entrar, primero en salir).
Cola
Una cola (también llamada fila) es una estructura de datos, caracterizada por ser una
secuencia de elementos en la que la operación de inserción push se realiza por un
extremo y la operación de extracción pop por el otro.
III. EQUIPOS, MATERIALES E INSUMOS
Equipos

 Computadora

 Proyector

Materiales

 Pizarra, Mota, plumones

 Documento de trabajo

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 70 de 91
PROGRAMACIÓN ESTRUCTURADA II

IV. PARTE EXPERIMENTAL

Procedimiento

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
LABORAT-UPT-07.

package colaestatica;
import java.util.Scanner;
public class colaestatica {
public static int op;
public static int tope;
int cola[]= new int[10];
public void insertar(){
if(tope==10)
System.out.println("La cola está llena");
else
{
for(int i=0;i<cola.length;i++ ){
System.out.println("Proporciona el dato para la Cola");
System.out.println("dato " + tope);
Scanner cap= new Scanner(System.in);
cola[tope]=cap.nextInt();
tope++;
}}
}
public void imprimir(){
if(tope>0){
for(int topeL=0;topeL<10;topeL++){
System.out.println("\n\n" + cola [topeL]);
System.out.println(tope);
}
}
else
System.err.println("Cola vacía; no hay nada que mostrar");
}
public void eliminar(){

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 71 de 91
PROGRAMACIÓN ESTRUCTURADA II

if(tope<0){
System.out.println("cola vacia");
}
else
for(int topeL=0;topeL<10;topeL++){
cola[topeL]=0;
}
}
public static void main(String[] args) {
cola_estatica p = new cola_estatica();
String r;
Scanner cap1=new Scanner(System.in);
Scanner cap=new Scanner(System.in);
tope=0;
do{
System.out.println("Menu principal:\n¿Qué desea hacer con la pila?");
System.out.println("1.- Insertar");
System.out.println("2.- Eliminar");
System.out.println("3.- Imprimir");
System.out.println("4.- Salir");
op=cap.nextInt();
switch(op){
case 1: p.insertar();break;
case 2:p.eliminar();break;
case 3:p.imprimir();break;
case 4:break; default:
System.out.println("Opción no válida; intente de nuevo");break;
}
}while(op!=4);
}}

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 72 de 91
PROGRAMACIÓN ESTRUCTURADA II

V. CUESTIONARIO

1. ¿Mostrar el resultado al ingresar la respuesta de terminar (NO)?

2. ¿Mostrar el resultado al ingresar la respuesta SÍ?

VI. REFERENCIA BIBLIOGRÁFICA


 -JOYANES AGUILAR Luis. Fundamentos de Programación. Algoritmos, Estructura
de Datos y Objetos. 4ta Edición. Editorial Mc Graw-Hill Interamericana. 2008.
ISBN:9788448161118
 -JOYANES AGUILAR Luis. Programación en C++, Un enfoque práctico (Serie
Schaum). 1era Edición. Editorial Mc Graw-Hill Interamericana. 2006.
ISBN:9788448146436
 -PÉREZ CARRETERO Jesús. Fundamentos de Programación. 1era Edición.
Editorial Thompson. 2007. ISBN:9788497325509
Hojas electrónicas
a. http://http://www.lawebdelprogramador.com/
b. http://www.algoritmia.net/
c. http://www.slideshare.net/mario.storti/algoritmos-y-estructuras-de-datos

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 73 de 91
PROGRAMACIÓN ESTRUCTURADA II

LABORATORIO Nº 08
PROGRAMA CON LISTAS SIMPLEMENTE ENLAZADAS

I. OBJETIVOS
 Desarrollo de ejercicios de Manejo de Cadenas usando Swing WT.

 2. Codificar, compilar y ejecutar los ejercicios de aplicación.

 3. Conocer la estructura de un programa visual en Java.

II. FUNDAMENTO TEÓRICO


La instrucción For
En el tratamiento de las listas simplemente enlazadas son aquellas que tienen una
referencia al elemento siguiente.
La diferencia entre una lista y una cola o pila es que los elementos de la lista pueden
insertase en cualquier lugar, logrando de esta forma que la lista quede ordenada.
Cada elemento de la lista será una estructura auto referenciada, la cual está formada
por los datos y un puntero a la estructura del mismo tipo.

III. EQUIPOS, MATERIALES E INSUMOS


Equipos

 Computadora personal

 Proyector

 Programa NetBeans IDE 8.2

Materiales

 Pizarra, mota, plumones

 Documentos de trabajos

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 74 de 91
PROGRAMACIÓN ESTRUCTURADA II

IV. PARTE EXPERIMENTAL

Procedimiento

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
LABORAT-UPT-08.

Construya una aplicación que permita realizar el registro de empleados donde se


podrá guardar, mostrar, consultar, actualizar y eliminar el registro de empleado. Para
todas estas operaciones considere el ingreso del código del empleado.
Construya el siguiente diseño:

Ahora váyase al editor de código y genere el siguiente código haga doble click sobre
los botones y genere los métodos faltan:

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 75 de 91
PROGRAMACIÓN ESTRUCTURADA II

Aquí se muestran los métodos que tiene que crear antes ejecutar los códigos

Instrucciones de los métodos utilizados en el aplicativo

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 76 de 91
PROGRAMACIÓN ESTRUCTURADA II

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 77 de 91
PROGRAMACIÓN ESTRUCTURADA II

Instrucciones en los métodos para las operaciones de la lista enlazada

Instrucciones del botón Guardar

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 78 de 91
PROGRAMACIÓN ESTRUCTURADA II

Instrucciones del Botón Actualizar

Instrucciones del Botón Consultar

Instrucciones del Botón Eliminar

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 79 de 91
PROGRAMACIÓN ESTRUCTURADA II

Instrucciones del Botón Restaurar

Instrucciones del Evento Opened del Window

Luego de terminar Shift+F6 y se ejecutarse el aplicativo.

EJERCICIO PROPUESTO

Construya un programa que guarde en una lista simple enlazada, la siguiente


información de los empleados de una Compañía: Código, Nombre, Tipo de Contrato
(A plazo fijo, Servicios No personales y Service), sueldo, monto asignado por
movilidad y minutos de tardanza y permita mostrar la siguiente información:

 Número de empleados con más de unos 15 minutos de tardanzas.


 Nombre del empleado con el mayor tiempo de tardanzas y que tenga un tipo
de contrato por Services.
 El mayor monto de movilidad asignado a un empleado con contrato a Plazo Fijo
con un sueldo menor a 1500 soles.

Su programa también tendrá la opción de consultar, actualizar y eliminar registros.

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 80 de 91
PROGRAMACIÓN ESTRUCTURADA II

V. CUESTIONARIO

1. ¿Mostrar los datos del empleado al ingresar el código?

2. ¿Registrar los datos del empleado consultado?

VI. REFERENCIA BIBLIOGRÁFICA

 -JOYANES AGUILAR Luis. Fundamentos de Programación. Algoritmos, Estructura


de Datos y Objetos. 4ta Edición. Editorial Mc Graw-Hill Interamericana. 2008.
ISBN:9788448161118

 -JOYANES AGUILAR Luis. Programación en C++, Un enfoque práctico (Serie


Schaum). 1era Edición. Editorial Mc Graw-Hill Interamericana. 2006.
ISBN:9788448146436

 -PÉREZ CARRETERO Jesús. Fundamentos de Programación. 1era Edición.


Editorial Thompson. 2007. ISBN:9788497325509

Hojas electrónicas
a. http://http://www.lawebdelprogramador.com/
b. http://www.algoritmia.net/
c. http://www.slideshare.net/mario.storti/algoritmos-y-estructuras-de-datos

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 81 de 91
PROGRAMACIÓN ESTRUCTURADA II

LABORATORIO Nº 09
PROGRAMA CON ARBOLES, GRAFOS, LISTAS

I. OBJETIVOS
 Saber la forma de declarar un arreglo en lenguaje C#.

 Comprender el uso de los arreglos y sus aplicaciones.

II. FUNDAMENTO TEÓRICO


Arreglos Unidimensionales
Un arreglo es una estructura de datos, o más técnicamente, un espacio de memoria
que permite almacenar una colección de elementos, todos del mismo tipo.
Sintaxis:
<nombre>: arreglo [<n>] de<tipo>
letras: arreglo [15] de carácter

III. EQUIPOS, MATERIALES E INSUMOS


Equipos

 Computadora

 Proyector

Materiales

 Pizarra, mota, plumones

 Documento de trabajo

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 82 de 91
PROGRAMACIÓN ESTRUCTURADA II

IV. PARTE EXPERIMENTAL

Procedimiento

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
LABORAT-UPT-09.

CLASES
 ArbolBinarioA
 Arbol
 NodoBinario
 Lista
 NodosListaA
 ArbolBinario

package adts;

class ArbolBinarioA{
public static void main (String[]args){
Arbol A = new Arbol();
A.InsertaNodo (10);
A.InsertaNodo (7);
A.InsertaNodo (8);
A.InsertaNodo (6);
A.InsertaNodo (12);
A.InsertaNodo (11);
A.InsertaNodo (5);
A.InsertaNodo (4);
A.InsertaNodo (3);
A.InsertaNodo (2);
System.out.print("El recorrido en Preorden es: ");
A.Preorden (A.Raiz);
System.out.println();
System.out.print("El recorrido en Inorden es: ");

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 83 de 91
PROGRAMACIÓN ESTRUCTURADA II

A.Inorden (A.Raiz);
System.out.println();
System.out.print("El recorrido en Postorden es: ");
A.PostOrden (A.Raiz);
System.out.println();
System.out.println("La altura del arbol es: " + A.Altura (A.Raiz));
A.Anchura (A.Raiz);
}
}

package adts;
//Definicion de la clase Arbol
class Arbol{
Cola Cola = new Cola();
NodoBinario Padre;
NodoBinario Raiz;
//Constructor
public Arbol(){
Raiz = null;
}
//Insercion de un elemento en el arbol
public void InsertaNodo(int Elem){
if(Raiz == null)
Raiz = new NodoBinario (Elem);
else
Raiz.InsertaBinario (Elem);
}

//Preorden Recursivo del arbol


public void Preorden (NodoBinario Nodo){
if(Nodo == null)
return;
else{
System.out.print (Nodo.dato + " ");
Preorden (Nodo.Hizq);
Preorden (Nodo.Hder);
}
}

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 84 de 91
PROGRAMACIÓN ESTRUCTURADA II

//PostOrden recursivo del arbol


public void PostOrden (NodoBinario Nodo){
if(Nodo == null)
return;
else{
PostOrden (Nodo.Hizq);
PostOrden (Nodo.Hder);
System.out.print (Nodo.dato + " ");
}
}

//Inorden Recursivo del arbol


public void Inorden (NodoBinario Nodo){
if(Nodo == null)
return;
else{
Inorden (Nodo.Hizq);
System.out.print(Nodo.dato + " ");
Inorden (Nodo.Hder);
}
}

//Busca un elemento en el arbol


void Busqueda (int Elem, NodoBinario A){
if((A == null) | (A.dato == Elem)){
System.out.print(A.dato + " ");
return;
}
else{
if(Elem>A.dato)
Busqueda (Elem, A.Hder);
else
Busqueda ( Elem, A.Hizq);
}
}

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 85 de 91
PROGRAMACIÓN ESTRUCTURADA II

//Altura del arbol


public int Altura (NodoBinario Nodo){
int Altder = (Nodo.Hder == null? 0:1 + Altura (Nodo.Hder));
int Altizq = (Nodo.Hizq == null? 0:1 + Altura (Nodo.Hizq));
return Math.max(Altder,Altizq);
}
//Recorrido en anchura del arbol
public void Anchura (NodoBinario Nodo){
Cola cola= new Cola();
NodoBinario T = null;
System.out.print ("El recorrido en Anchura es: ");
if(Nodo != null){
cola.InsertaFinal (Nodo);
while(!(cola.VaciaLista ())){
T = cola.PrimerNodo.datos;
cola.EliminaInicio();
System.out.print(T.dato + " ");
if (T.Hizq != null)
cola.InsertaFinal (T.Hizq);
if (T.Hder != null)
cola.InsertaFinal (T.Hder);
}
}
System.out.println();
}
}

package javaapplication1;
//Definicion de la clase NodoBinario
class NodoBinario{
int dato;
NodoBinario Hizq, Hder;
//Constructores
NodoBinario (int Elem){
dato = Elem;
NodoBinario Hizq, Hder = null;
}

//Insercion de un elemento
public void InsertaBinario (int Elem){
if(Elem < dato){

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 86 de 91
PROGRAMACIÓN ESTRUCTURADA II

if (Hizq == null)
Hizq = new NodoBinario(Elem);
else
Hizq.InsertaBinario(Elem);
}
else{
if (Elem > dato){
if (Hder == null)
Hder = new NodoBinario (Elem);
else
Hder.InsertaBinario(Elem);
}
}
}
}

package adts;
//Definición de la Clase Lista
class Cola{
NodosListaA PrimerNodo;
NodosListaA UltimoNodo;
String Nombre;

//Constructor construye una lista vacia con un nombre de List


public Cola(){
this ("Lista");
}

//Constructor
public Cola (String s){
Nombre = s;
PrimerNodo = UltimoNodo =null;
}

//Retorna True si Lista Vacía


public boolean VaciaLista() {
return PrimerNodo == null;
}

//Inserta un Elemento al Frente de la Lista


public void InsertaInicio (NodoBinario ElemInser){

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 87 de 91
PROGRAMACIÓN ESTRUCTURADA II

if(VaciaLista())
PrimerNodo = UltimoNodo = new NodosListaA (ElemInser);
else
PrimerNodo = new NodosListaA (ElemInser, PrimerNodo);
}

//Inserta al Final de la Lista


public void InsertaFinal(NodoBinario ElemInser){
if(VaciaLista())
PrimerNodo = UltimoNodo = new NodosListaA (ElemInser);
else
UltimoNodo=UltimoNodo.siguiente =new NodosListaA (ElemInser);
}

//Eliminar al Inicio
public void EliminaInicio(){
if(VaciaLista())
System.out.println ("No hay elementos");
// Restablecer las referencias de PrimerNodo y UltimoNodo
if(PrimerNodo.equals (UltimoNodo))
PrimerNodo = UltimoNodo = null;
else
PrimerNodo = PrimerNodo.siguiente;
}
//Elimina al final
public void EliminaFinal (){
if(VaciaLista())
System.out.println ("No hay elementos");

// Restablecer las referencias de PrimerNodo y UltimoNodo


if (PrimerNodo.equals (UltimoNodo))
PrimerNodo = UltimoNodo = null;
else{
NodosListaA Actual =PrimerNodo;
while (Actual.siguiente != UltimoNodo)
Actual = Actual.siguiente;

UltimoNodo =Actual;
Actual.siguiente = null;
}
}}

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 88 de 91
PROGRAMACIÓN ESTRUCTURADA II

package adts;
//Definición de la Clase NodoLista
class NodosListaA{
NodoBinario datos;
NodosListaA siguiente;

//Construtor Crea un nodo del tipo Object


NodosListaA (NodoBinario valor){
datos =valor;
siguiente = null; //siguiente con valor de nulo
}

// Constructor Crea un nodo del Tipo Object y al siguiente nodo de la lista


NodosListaA (NodoBinario valor, NodosListaA signodo){
datos = valor;
siguiente = signodo; //siguiente se refiere al siguiente nodo
}
}

package adts;

public class ArbolBinario {


protected Nodo raiz;
public ArbolBinario()
{
raiz = null;
}
public ArbolBinario(Nodo raiz)
{ this.raiz = raiz; }
public Nodo raizArbol()
{ return raiz; }
public boolean esVacio()
{ return raiz == null; }
public static Nodo nuevoArbol
( Nodo ramaIzqda, Object dato, Nodo ramaDrcha)
{ return new Nodo(ramaIzqda, dato, ramaDrcha); }
public static void preorden(Nodo r )
{ if (r != null) {
r.visitar();
preorden (r.subarbolIzdo());
preorden (r.subarbolDcho());

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 89 de 91
PROGRAMACIÓN ESTRUCTURADA II

}
}
// Recorrido de un árbol binario en inorden public static void inorden(Nodo r) { if (r !=
null) {
inorden (r.subarbolIzdo());
r.visitar();
inorden (r.subarbolDcho());
}
}
// Recorrido de un árbol binario en postorden public static void postorden(Nodo r) { if
(r != null) {
postorden (r.subarbolIzdo());
postorden (r.subarbolDcho());
r.visitar();

}}
public static int altura(Nodo raiz)
{ if (raiz == null) return 0 ;
else {
int alturaIz = altura (raiz.subarbolIzdo());
int alturaDr = altura (raiz.subarbolDcho());
if (alturaIz > alturaDr)

return alturaIz + 1; else return alturaDr + 1; } }


public static boolean arbolLleno(Nodo raiz)
{ if (raiz == null) return true; else
if (altura(raiz.subarbolIzdo())!= altura(raiz.subarbolDcho()))
return false;

return arbolLleno(raiz.subarbolIzdo()) && arbolLleno(raiz.subarbolDcho()); }


public static int numNodos(Nodo raiz) { if (raiz == null)
return 0;
elsereturn 1 + numNodos(raiz.subarbolIzdo()) + numNodos(raiz.subarbolDcho()); }
public static ArbolBinario copiaArbol(Nodo raiz) {
Nodo raizCopia;
if (raiz == null)

raizCopia = null; else {


ArbolBinario izdoCopia, dchoCopia;
izdoCopia = copiaArbol(raiz.subarbolIzdo());
dchoCopia = copiaArbol(raiz.subarbolDcho());

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 90 de 91
PROGRAMACIÓN ESTRUCTURADA II

raizCopia = new Nodo(izdoCopia.raizArbol(),

raiz.valorNodo(), dchoCopia.raizArbol()); }return new ArbolBinario(raizCopia);


}public static
double evaluar(Nodo raiz, double[] operandos) throws Exception

{
double x, y, valor;
char ch ;
Character nr;
valor = 0.0;
if (raiz != null) // no está vacío
{

nr = (Character) raiz.valorNodo();
ch = nr.charValue();
if (ch >= 'A' && ch <= 'Z')

return operandos[ch - 'A'];


else
{

x = evaluar(raiz.subarbolIzdo(), operandos); y = evaluar(raiz.subarbolDcho(),


operandos);
switch (ch) { case '+': valor = x + y; break; case '-': valor = x - y;
break;
case '*': valor = x * y;
break;

case '/': if (y != 0) valor = x/y; else throw new Exception("Error: división por 0");
break;
case '^': valor = Math.pow(x, y);
}
}
}return valor;
}
}

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.
GUÍA DE PRÁCTICAS DE LABORATORIO DE Página 91 de 91
PROGRAMACIÓN ESTRUCTURADA II

V. CUESTIONARIO

1. ¿Mostrar el recorrido de la altura del árbol?

2. ¿Mostrar el elemento buscado dentro del árbol?


3. ¿Mostrar el recorrido de la anchura del árbol?

VI. REFERENCIA BIBLIOGRÁFICA

 -JOYANES AGUILAR Luis. Programación en C++, Un enfoque práctico (Serie


Schaum). 1era Edición. Editorial Mc Graw-Hill Interamericana. 2006.
ISBN:9788448146436
 -PÉREZ CARRETERO Jesús. Fundamentos de Programación. 1era Edición. Editorial
Thompson. 2007. ISBN:9788497325509
Hojas electrónicas
a. http://http://www.lawebdelprogramador.com/
b. http://www.algoritmia.net/
c. http://www.slideshare.net/mario.storti/algoritmos-y-estructuras-de-datos

Este documento es propiedad de la UPTELESUP, se prohíbe su reproducción total o parcial sin la autorización expresa (escrita) de la Gerencia General o de un
representante legal.

Anda mungkin juga menyukai