Está en la página 1de 123

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO:

: 301403 PROGRAMACION ORIENTADA A OBJETOS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA

GUA COMPONENTE PRCTICO

301403 PROGRAMACION ORIENTADA A OBJETOS CESAR ORLANDO JIMENEZ ANGARITA (Director Nacional)

Zona: Centro Bogot Cundinamarca, Cead: Jos Acevedo y Gmez Enero 2013

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

2. ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO


Curso Acadmico Modulo Programacin Orientada a Objetos Libros de la Biblioteca Virtual de Unad en Programacin Orientada a Objetos Consulta de Internet Programacin Orientada a Objetos Autor: Deitel y Deitel Introduccin DOO con UML y los Patrones de Diseo JDBC tm, SERVLETS, JSP tm Editorial Pearson Prentice Hall Quinta Edicin. David Arnow Gerald Weiss Introduccin a la Programacin con Java tm Actualizacin a la Versin 2 de Java Editorial Addison Wesley. Fcd Javier Ceballos Java 2 Curso de Programacin 2 Edicin Editorial Alfaomega Ra-Ma. Agustin Froute Java 2 Manual Usuario tutorial 3 Edicin Editorial Alfaomega Ra-Ma 5. Herbert shildt Fundamentos de Programacin Java 2 Editorial Mc Graw Hill . para conocer el lenguaje de programacin JAVA. Arnow, D., Weiss, G., Introduccin a la programacin con JAVA, Addison wesley, 2000. Larman, C., UML y patrones, Prentice Hall, 1998. Meyer, B., Construccin de software orientado a objetos, Prentice Hall, segunda edicin, 1997. Wu, T., Introduccin a la programacin orientada a objetos con Java, Mc Graw Hill, 2000. Joyanes, L., Programacin orientada a objetos, Segunda edicin, Mc Graw Hill, 1998. Grez Voss, Introduccin Orientada a Objetos, Editorial Mc Graw Hill, 1994. Joyanes, L., C++ a su alcance un enfoque orientada a objetos, Editorial, Mc Graw Hill, 1994. Cesar Becerra Santamara, C++ Una Herramienta para la Programacin Orientada a Objetos, Editorial Mc Graw Hill, 1.993. Fco Javier Ceballos, Programacin Orientada a Objetos con C++,Editorial Alfaomega, 1.998. Nathan Meyers, Programacin JAVA en Linux, Editorial Prentice Hall, 2.000. www.lawebdelprogramador.com www.programacion.com http://www.cimat.mx/~jlabreu/CursoJava/ http://www.mindview.net/Books/TIJ http://java.sun.com/docs/books/tutorial/ http://programacion.com/java/tutoriales/

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

3. INDICE DE CONTENIDO

Pg.
1. PRESENTACION 2. ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO 3. INDICE DE CONTENIDO 4. LISTADO DE TABLAS 5. CARACTERSTICAS GENERALES 6. DESCRIPCIN DE PRCTICAS PRACTICA No. 01 Estructuras no dinmicas Utilizando Java Eclipse Ejercicios Propuestos por el tutor: Ejercicios a Realizar por el Estudiante: PRACTICA No. 02 Estructuras dinmicas Utilizando Java Eclipse Ejercicios Propuestos por el tutor: Ejercicios a Realizar por el Estudiante: PRACTICA No. 03 Base de Datos Modelo Relacional entidad Relacin Access Utilizando Java Eclipse. Ejercicios Propuestos por el tutor: Ejercicios a Realizar por el Estudiante: PRACTICA No. 04 Redes Encriptamiento y Desincriptamiento de un dato, Chat cliente Servidor, computacion Grafica Utilizando Java Eclipse Ejercicios Propuestos por el tutor: Ejercicios a Realizar por el Estudiante: 7. Fuentes Documentales 1 2 3 4 5 8 8 11 36 37 40 73 74

76 106 109 111 119 120

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

5. CARACTERSTICAS GENERALES Introduccin


Actualmente una de las reas ms importantes en la industria y el mbito acadmico es la orientacin a objetos, el curso que a continuacin se relaciona tiene el nombre de Programacin Orientada a Objetos el cual es terico prctico, de 3 crditos y hace parte de la formacin profesional en el programa de Ingeniera de Sistemas. El curso est compuesto por tres unidades acadmicas didcticas: Unidad Uno comprende la introduccin y elementos bsicos de la programacin orientada a objetos (POO) y las propiedades bsicas de la POO aplicado con JAVA. Unidad Dos hace referencia al diseo de la estructura y comportamiento de un objeto y se inicia con los Fundamentos de la programacin en el lenguaje JAVA. Unidad tres se enfocan en el trabajo con las clases, el manejo de la herencia y la extensin de las clases aplicado con JAVA.

Justificacin

El uso de y aplicaciones de herramientas enfocadas a la POO, hacen que el profesional en Ingeniera sea capaz de disear y desarrollar aplicaciones que permitan dar soluciones integrales a las necesidades del medio que lo rodea utilizando un compilador de JAVA. El curso de POO le permite al estudiante desarrollar su creatividad con el animo de dar soluciones a problemas cotidianos de su trabajo, le da la capacitada de comparar la programacin estructurada con la programacin orientada a objetos y enfrentar los retos del cambio, le permite desarrollar su capacidad de comunicacin, y su espritu Investigativo y crtico con una lenguaje de programacin orientado a objetos. Para lograr la apropiacin de todo el contenido temtico el estudiante aplicara en todo momento su autoformacin y se apoyara en el tutor para la resolucin de dudas, tambin se tendrn uso de herramientas tecnolgicas para la interaccin con los tutores y alumnos dentro de los laboratorios.

Intencionalidades formativas

Propsitos:
Dar a conocer a los estudiantes de una forma clara los conceptos fundamentales de la Programacin Orientada a Objetos en JAVA. Dar a Conocer a los estudiantes las ventajas de aplicar la Programacin Orientada a Objetos ya que simplifica la construccin de programas y lo motiva para estudiar las caractersticas del lenguaje JAVA. Capacitar a los estudiantes a comprender y utilizar herramientas de Programacin Orientadas a Objetos como JAVA, para el diseo de aplicaciones.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Objetivos:
Que el estudiante Describa los conceptos que caracterizan al modelo Programacin Orientada a Objetos Utilizando JAVA. Que el estudiante Valore en que medida las tcnicas Programacin Orientada a Objetos favorecen la calidad del software, analizando sobre todo cmo facilitan la reutilizacin y extensibilidad en JAVA. Que el estudiante entienda la importancia de trabajar Herramientas Programacin Orientadas a Objetos, para el desarrollo de nuevas aplicaciones empresariales en JAVA. Que le estudiante Aprenda un lenguaje Programacin Orientada a Objetos, junto a su entorno de programacin. Que el estudiante aplique tcnicas de programacin Orientada a Objetos en JAVA. Que el estudiante identifique analice y disee ejemplos de aplicacin en JAVA

Metas:
Al terminar este curso de Programacin Orientada a Objetos el estudiante: Desarrollara aplicaciones teniendo en cuenta los fundamentos tericos, y el manejo de objetos como principal elemento de Construccin de soluciones en JAVA. Tendr la capacidad de analizar, disear y desarrollar software utilizando el entorno de Programacin Orientada a Objetos con JAVA. Adquiera destrezas en el uso de las herramientas como el JAVA para el desarrollo de aplicaciones que den soluciones confiables y permitan mejorar procesos.

Competencias:
El estudiante comprende e interpreta todos los conceptos fundamentales de la Programacin Orientada a Objetos, para poder analiza, disear, desarrollar e implantar aplicaciones ms robustas y con cdigo reutilizable con JAVA. El estudiante adquiere destrezas en el uso de procedimientos que le permitan analizar, disear y desarrollar aplicaciones haciendo uso de la programacin Orientada a Objetos con JAVA.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS El estudiante aprende un lenguaje Programacin Orientada a Objetos, junto a su entorno de programacin JAVA.

Denominacin de practicas

Prctica 01: Estructuras no dinmicas Utilizando Java Eclipse Practica 02: Estructuras dinmicas Utilizando Java Eclipse Practica 03: Base de Datos Modelo Relacional entidad Relacin Access Utilizando Java Eclipse Practica 04: Redes Encriptamiento y desincriptamiento de un dato, Chat cliente Servidor Utilizando Java Eclipse Practica 05: Computacin Grafica 2D y 3D Utilizando Jcreator Java Eclipse

Nmero de horas Porcentaje

4 Horas por laboratorio, 4 Cinco Laboratorios, un total 16 Horas 25 Puntos de la plataforma Campus Virtual NO_X_

Curso Evaluado por SI___ proyecto Seguridad industrial

No Ingresar Alimentos lquidos o slidos al Laboratorio. Para que se presente algn corto circuito. No ingresar fumando al Laboratorio. Para que moleste a los compaeros. No ingresar otros aparatos electrnicos como radios, Walkman, para que no interfieran en el desarrollo del laboratorio. No Cambiar los computadores de sitio sin autorizacin del monitor del laboratorio. No reconfigurar los equipos de computo ya que este presta servicio a toda la comunidad unadista.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

6. DESCRIPCIN DE PRCTICAS PRACTICA No. 01 Estructuras no dinmicas con Java Utilizando Jcreator LE

Tipo de practica Presencial Otra Cul Autodirigida Remota X

Porcentaje de evaluacin Horas de la practica Temticas de la prctica Intencionalidades formativas

25 Puntos Plataforma Campus Virtual 4 Horas Laboratorio ST y 12 Horas Independientes

Estructuras no dinmicas con Java Utilizando Jcreator LE Propsito(s):


Desarrollar destreza en los estudiantes de las estructuras no dinmicas que permitan conceptuar los fundamentos bsicos en el desarrollo programas informticos mediante la utilizacin de un lenguaje de programacin Java. Comprender las tcnicas bsicas del diseo de Estructuras no dinmicas en algoritmos y la lgica de programacin en Java. Adquirir destrezas y habilidades en la toma decisiones, utilizando las estructuras no dinmicas y mediante la mediacin Tutorial, lecturas complementarias, trabajo individual y cooperativo para el desarrollo de algoritmos en Java. Codificar estructuras no dinmicas en un lenguaje de programacin diferentes supuestos semnticos y problemas cotidianos en JAVA.

Meta(s):
El estudiante desarrolla el proyecto y los diferentes talleres en forma adecuada, utilizando las diferentes tcnicas y estrategias estudiadas a lo largo del curso de Java. El estudiante est en capacidad de desarrollar software, partiendo de los diferentes supuestos planteados, y quedando motivado para seguir en la lnea de programacin de computadoras con lenguaje de programacin JAVA. El estudiante desarrolla habilidades que lo lleven por el camino del pensamiento crtico, permitindoles aprender, comprender, practicar y aplicar nueva informacin, que parte de experiencias del medio ambiente, hasta llegar al auto concepto, formando un individuo critico y pensador.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Competencia(s):
El estudiante describe y analiza de manera adecuada y sistematizada las tcnicas y pautas para la construccin y secuencia de un algoritmo codificado en JAVA. El estudiante disea y aplica algoritmos y diagramas de flujo en la construccin de programas, como tcnica principal en la resolucin de un determinado problema en JAVA. El estudiante mediante lecturas y mediaciones sobre tcnicas de construccin de software analiza, sistematiza y pone en prctica las buenas practicas de desarrollo de algoritmos y de programacin en lenguaje JAVA.

Fundamentacin Terica:
Estructuras no dinmicas Conceptos, antecedentes y desarrollo de los algoritmos, Estructuras no dinmicas General de un Algoritmo Estructuras no dinmicas mediante un lenguaje de programacin en JAVA. Estructuras no dinmicas Arreglos mediante un lenguaje de programacin en JAVA Estructuras no dinmicas Vectores mediante un lenguaje de programacin en JAVA Estructuras no dinmicas Mtodos de bsqueda mediante un lenguaje de programacin en JAVA Estructuras no dinmicas Mtodos de Ordenamiento mediante un lenguaje de programacin en JAVA Estructuras no dinmicas y Archivos mediante un lenguaje de programacin en JAVA

Descripcin de la practica: El estudiante debe instalar una maquina virtual y Java Eclipse en su casa, este software debe ser bajado a travs de internet de la pgina Sum Macrosystem El estudiante debe bajar la Gua de Laboratorio para la prctica de la Plataforma campus Virtual del curso Acadmico de Programacin Orientada a Objetos. El estudiante mediante la herramienta de copiar y pegar debe practicar los diferentes ejercicios propuestos en esta gua para que vaya adquiriendo destreza en el lenguaje de programacin Java. El estudiante debe de estar en capacidad de investigar los diferentes cdigos de java ya que todos los ejercicios que propone la gua de laboratorio estn propuestos java.swing.*, o ambiente grafico y el estudiante debe tener las condiciones de pasarlo en java.io.*, o ambiente en cdigo de lnea todos los propuestos en estas. Recursos a utilizar en la prctica (Equipos / instrumentos)
Computadores Modernos con buena Configuracin y con software licenciado

Software a utilizar en la prctica u otro tipo de requerimiento para el desarrollo de la

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

prctica:
Instalacin de la maquina virtual e Instancian del Java Eclipse

Seguridad Industrial:
No Ingresar Alimentos lquidos o slidos al Laboratorio. Para que se presente algn corto circuito No ingresar fumando al Laboratorio. Para que moleste a los compaeros No ingresar otros aparatos electrnicos como radios, Walkman, para que no interfieran en el desarrollo del laboratorio. No Cambiar los computadores de sitio sin autorizacin del monitor del laboratorio. No desconfigurar los los equipos de computo ya que este presta servicio a toda la comunidad unadista.

Metodologa
Conocimiento previo para el desarrollo de la prctica. El estudiante de ver el Curso Acadmico de Programacin Orientada a Objetos tiene que tener buenas bases de Algoritmos, Introduccin a Programacin, Estructura de Datos, Bases de Datos, Redes de Comunicacin, Forma de trabajo: El estudiante analizara primero todo los programas propuestos por el tutor de laboratorio los cuales estn analizados, diseados y desarrollados completamente listos para que su cdigo sea copiado y pegado en JAVA y luego ser ejecutados, luego el estudiante de haber analizado el cdigo se enfrentara a la tarea de desarrollar una serie de programas por s solo. Procedimiento: El Estudiante debe investigar como puede hacer estos mismos programas utilizando las libreras import java.io.* y applet

Sistema de Evaluacin El sistema de evaluacin estar a cargo de los tutores de Laboratorio ya que ellos son autnomos de calificar bien sea en grupos o de forma individual el trabajo realizado en los laboratorios Informe o productos a entregar Los estudiantes debe entregar los ejercicios propuestos en la gua de laboratorio en java.io.*; y applet Rbrica de evaluacin

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA "UNAD"


ESCUELA CIENCIAS BASICAS TECNOLOGIA E INGENIERIA PROGRAMA INGENIERIA DE SISTEMAS

Practica 01 Estructuras no dinmicas Utilizando Java Eclipse


Rbrica de Evaluacin: tem Evaluado Valoracin Baja Valoracin Media Valoracin Alta Mximo Puntaje

Estructura del Programa codificado en Java Eclipse

Programas sin formato (0)

Programas sin ejecutables (4)

Programas ejecutables (8)

Redaccin y Ortografa documentacin del programa

Programas No documentado (0)

Programas Medio documentado (4)

Programas Bien documentado (8)

Fines del programa

Programa no cumple con lo sugerido (0)

Programa regular con lo sugerido (4)

Programa Cumple con lo sugerido (9)

TOTAL DE PUNTOS POSIBLES

25

Nota: Estudiante que no se presente al componente practico en las fechas propuestas por los diferentes Cead o Ceres y que no desarrollen las guas propuestas para estos laboratorios, tendr una nota total de CERO: (0)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Retroalimentacin La retroalimentacin de los diferentes productos entregados en el laboratorio sern evaluados por el tutor Plataforma Campus Virtual.

Ejercicios Propuestos por el tutor:


Gua de Laboratorio Estructuras no dinmicas utilizando el lenguaje de programacin Java trabajos con java.swing.*; o ambiente grafico : Desarrollo del primer taller Despus de tener instado el Aplicativo Java Eclupse, usted debe seguir los siguientes pasos para el desarrollo de cualquier programa en java: 1. Abra el Aplicativo Java Eclipse (Inicio > Todos Los Programas > JCREATOR LE > JCREATOR LE) 2. Es Necesario crear el archivo java: Men File > New > File a. En la casilla de texto Name: coloque el nombre del programa con extensin java), en este caso LecturaVector. b. En la Casilla de Texto Location: C:\ o utilice el botn y seleccione C: (Carpeta Raz). c. Pulse el Botn Finish. 3. En la Ventana de Cdigo escriba: import javax.swing.*; public class LecturaVector { public static void main(String[] args) { int n,i,j,aux; int A[]; n=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite la dimension: ")); A=new int[n]; for(i=0;i<A.length;i++) { A[i]=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite A["+i+"]: ")); } System.out.println("Vector Leido"); for(i=0;i<A.length;i++) { System.out.print(A[i]+" "); } System.out.println(); System.exit(0); } } 4. Compile y Ejecute el Programa

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS Men Build > Compile File Men Build > Execute File

1. CAJAS DE DIALOGO
El mtodo showMessageDialog Este mtodo nos permite mostrar dilogos que muestran un mensaje y contienen un botn de aceptacin. Los parmetro mnimos necesarios dependen del carcter del mensaje aunque general mente son la ventana padre, el mensaje a mostrar, el ttulo del dilogo y el tipo de mensaje que se mostrar. En las siguientes figuras podremos ver algunos ejemplos junto al cdigo que lo genera. JOptionPane.showMessageDialog( null, Dilogo de informacin);

JOptionPane.showMessageDialog( null, JOptionPane.WARNING_MESSAGE);

Dilogo

de

advertencia,

Ttulo

del

Mensaje,

JOptionPane.showMessageDialog( JOptionPane.ERROR_MESSAGE);

null,

Dilogo

de

error,

Ttulo

del

Mensaje,

El mtodo showInputDialog Este mtodo nos permite mostrar dilogos estandarizados que nos piden que introduzcamos algn dato. Al igual que en los mtodos anteriores los argumentos que utilizan principalmente son el mensaje a mostrar, el ttulo, etc. A continuacin vemos un ejemplo de uso de este mtodo. String n = JOptionPane.showInputDialog(null, "Introduce el dato");

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Como podemos observar en el cdigo anterior este mtodo nos devuelve una cadena que contiene los datos que hemos introducido en el dilogo.

donde las cajas de Dialogo estn en el paquete de clases javax.swing, por eso, en la clusula import javax.swing.*;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

2. Definiciones de Arreglos
1. Declaracin de un arreglo: int A[]; // A es un arreglo de enteros int A[10]; // error, el tamao no va aqu int[] A; // A es un arreglo de enteros int A,B[]; // A es un entero, B un arreglo int[] A,B; // A y B son arreglos String S[]; // S es un arreglo de strings S[1]="" // error, el arreglo no ha sido // creado 2. Creacin de un arreglo

int A[]= new int[10]; // 10 enteros Subindicacin de un arreglo: A[0], A[1], ..., A[9] // correcto A[10] // error, ndice fuera // de rango 3. Modificacin de un arreglo:

A[3]= 8; 4. Tamao de un arreglo:

A.length // correcto A.length() // error, sin parntesis 5. Inicializacin de un arreglo:

for (int i=0; i<A.length; i++) A[i]= i; 6. Asignacin de punteros a arreglos

int B[]; B= A; // A y B son el mismo arreglo if (A==B) // Comparacin de punteros // true! ... A[0]= 10; B[0] // tambin 10 7. Copia de un arreglo: B= (int[])A.clone();

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

3. LECTURA DE UN VECTOR POR TECLADO


import javax.swing.*; public class LecturaVector { public static void main(String[] args) { int n,i,j,aux; int A[]; n=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite la dimension: ")); A=new int[n]; for(i=0;i<A.length;i++) { A[i]=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite A["+i+"]: ")); } System.out.println("Vector Leido"); for(i=0;i<A.length;i++) { System.out.print(A[i]+" "); } System.out.println(); System.exit(0); } }

4. ASIGNACION A UN VECTOR DE NUMEROS ALEATORIOS


import javax.swing.*; import java.util.*; public class LectorVectorAleatoria { public static void main(String[] args) { int n,i,j,aux; int A[]; n=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite la dimension: ")); A=new int[n]; Random R=new Random(); //Objeto que genera el aleatorio for(i=0;i<A.length;i++) { A[i]=Math.abs(R.nextInt()%100+1); // R,nextInt()%100+1)::Aleatorio Entero desde 1 hasta los siguientes 100 } System.out.println("Vector Leido"); for(i=0;i<A.length;i++) { System.out.print(A[i]+" "); } System.out.println(); System.exit(0); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

5. ORDENAMIENTO DE UN VECTOR. METODO LINEAL


import javax.swing.*; public class OrdenarLineal { public static void main(String[] args) { int n,i,j,aux; int A[]; n=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite la dimension: ")); A=new int[n]; for(i=0;i<A.length;i++) { A[i]=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite A["+i+"]: ")); } System.out.println("Vector Leido"); for(i=0;i<A.length;i++) { System.out.print(A[i]+" "); } System.out.println(); for(i=0;i<A.length-1;i++) for(j=i+1;j<A.length;j++) if(A[i]>A[j]) { aux=A[i]; A[i]=A[j]; A[j]=aux; } System.out.println("Vector Ordenado"); for(i=0;i<A.length;i++) { System.out.print(A[i]+" "); } System.out.println(); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

6. ORDENAMIENTO DE UN VECTOR. METODO BURBUJA


import javax.swing.*; public class OrdenarBurbuja { public static void main(String[] args) { int n,i,j,aux; int A[]; n=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite la dimension: ")); A=new int[n]; for(i=0;i<A.length;i++) { A[i]=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite A["+i+"]: ")); } System.out.println("Vector Leido"); for(i=0;i<A.length;i++) { System.out.print(A[i]+" "); } System.out.println(); for(i=1;i<=A.length-1;i++) for(j=0;j<A.length-i;j++) if(A[j]>A[j+1]) { aux=A[j]; A[j]=A[j+1]; A[j+1]=aux; } System.out.println("Vector Ordenado"); for(i=0;i<A.length;i++) { System.out.print(A[i]+" "); } System.out.println(); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

7. BUSQUEDA DE UN ELEMENTO EN UN VECTOR ORDENADO. METODO SECUENCIAL


import javax.swing.*; public class BuscarLinealOrdenado { public static void main(String[] args) { int n,i,j,aux; int A[]; n=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite la dimension: ")); A=new int[n]; for(i=0;i<A.length;i++) { A[i]=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite A["+i+"]: ")); } System.out.println("Vector Leido"); for(i=0;i<A.length;i++) { System.out.print(A[i]+" "); } System.out.println(); for(i=0;i<A.length-1;i++) for(j=i+1;j<A.length;j++) if(A[i]>A[j]) { aux=A[i]; A[i]=A[j]; A[j]=aux; } System.out.println("Vector Ordenado"); for(i=0;i<A.length;i++) { System.out.print(A[i]+" "); } System.out.println(); j=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite el Numero a Buscar: ")); i=0; while(i<A.length && A[i]<j) i++; if(i<A.length && A[i]==j) System.out.println("Existe: "+j+" en la Posicion: "+i); else System.out.println("No Existe "); System.exit(0); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

8. BUSQUEDA DE UN ELEMENTO EN UN VECTOR ORDENADO. METODO BINARIA


import javax.swing.*; public class BuscarBinaria { public static void main(String[] args) { int n,i,j,aux,mitad,menor,mayor; int A[]; n=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite la dimension: ")); A=new int[n]; for(i=0;i<A.length;i++) { A[i]=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite A["+i+"]: ")); } System.out.println("Vector Leido"); for(i=0;i<A.length;i++) { System.out.print(A[i]+" "); } System.out.println(); for(i=0;i<A.length-1;i++) for(j=i+1;j<A.length;j++) if(A[i]>A[j]) { aux=A[i]; A[i]=A[j]; A[j]=aux; } System.out.println("Vector Ordenado"); for(i=0;i<A.length;i++) { System.out.print(A[i]+" "); } System.out.println(); j=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite el Numero a Buscar: ")); menor=0; mayor=A.length-1; do { mitad=(menor+mayor)/2; if(A[mitad]>j) mayor=mitad-1; if(A[mitad]<j) menor=mitad+1; } while(A[mitad]!=j && mayor>=menor); if(A[mitad]==j) System.out.println("Existe: "+j+" en la Posicion: "+mitad); else System.out.println("No Existe "); System.exit(0); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

9. IMPLEMENTACION DE CLASES QUE ADMINISTRAN ARREGLOS 9.1. Programa 1. Creacin de una clase Arreglo
import javax.swing.*; import java.util.*; class Arreglo { int A[]=new int[100]; int aux; int i,j,n; public Arreglo(int B[]) //Constructor { if(B.length<=100) n=B.length; else n=100; for(i=0;i<n;i++) A[i]=B[i]; } boolean verificarasc() // Verifica Ordenamiento ascendente { for(i=0;i<n-1 && A[i]<=A[i+1];i++); if(i<n-1) return false; else return true; } boolean verificardesc() // Verifica Ordenamiento Descendente { for(i=0;i<n-1 && A[i]>=A[i+1];i++); if(i<n-1) return false; else return true; } boolean buscarasc(int x) // Busqueda Ascendente { for(i=0;i<n && A[i]<x;i++); if(i<n && A[i]==x) return true; else return false; } boolean buscardesc(int x) // Busqueda Descendente { for(i=0;i<n && A[i]>x;i++); if(i<n && A[i]==x) return true; else return false; } boolean busqueda(int x) // Busqueda Normal {

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
for(i=0;i<n && A[i]!=x;i++); if(i<n) return true; else return false; } void consulta() // Recorrer el contenido de vector { StringBuffer S=new StringBuffer(); for(i=0;i<n;i++) { S.append(A[i]); S.append('\n'); } JOptionPane.showMessageDialog(null,S.toString()); } void lectura() // Leer el Vector { for(i=0;i<n;i++) { A[i]=Integer.parseInt(JOptionPane.showInputDialog(null," Vector Posicion ["+i+"]")); } } void ordenarasc() // Ordenar Ascendente { for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(A[i]>A[j]) { aux=A[i]; A[i]=A[j]; A[j]=aux; } } void ordenardesc()// Ordenar Descendente { for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(A[i]<A[j]) { aux=A[i]; A[i]=A[j]; A[j]=aux; } } } public class Arreglos { public static void main(String args[]) { int i,opcion,x; int B[]=new int[10]; Random R=new Random(); for(i=0;i<B.length;i++) B[i]=Math.abs(R.nextInt()%100+1);

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
String S=new String(); Arreglo Z=new Arreglo(B); String Menu="1. Lectura \n 2. Ordenar Ascendente \n 3. Ordenar Descendente \n 4. Busqueda \n 5. Consulta \n6. Salir \n Seleccion Opcion[1..6]"; do { do { S=JOptionPane.showInputDialog(null,Menu); try { opcion=Integer.parseInt(S); } catch(NumberFormatException e) { opcion=0; // Error de Conversion } }while(opcion<1 || opcion>6); if(opcion!=6) { switch(opcion) { case 1:Z.lectura(); break; case 2:Z.ordenarasc(); break; case 3:Z.ordenardesc(); break; case 4: x=Integer.parseInt(JOptionPane.showInputDialog(null," Numero a Buscar ")); if(!Z.buscarasc(x) && !Z.buscardesc(x) && !Z.busqueda(x)) JOptionPane.showMessageDialog(null,x+" No existe"); else JOptionPane.showMessageDialog(null,x+" Existe"); break; case 5: Z.consulta(); } } }while(opcion!=6); System.exit(0); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

9.2.. Programa 2. Uso de un Objeto StringBuffer para la presentacin de un vector.


import java.util.*; import javax.swing.*; class CasoVector1 { StringBuffer P=new StringBuffer(); int i,j,aux; int A[]=new int[10]; Random R=new Random(); public CasoVector1() { P.append("Vector de Entrada: "); for(i=0;i<A.length;i++) { P.append(" "); A[i]=Math.abs(R.nextInt()%99+1); P.append(A[i]); } ordenar(); adicionOrdenado(); } void ordenar() { for(i=0;i<A.length-1;i++) for(j=i+1;j<A.length;j++) if(A[i]>A[j]) { aux=A[i]; A[i]=A[j]; A[j]=aux; } } String impresion() { return P.toString(); } void adicionOrdenado() { P.append(" Vector Ordenado: "); for(i=0;i<A.length;i++) { P.append(" "); P.append(A[i]); } } } class CasoVector2 { StringBuffer P=new StringBuffer("Vector de Entrada: Vector de Salida: "); StringBuffer Q; int i,j,aux; int A[]=new int[10]; Random R=new Random(); public CasoVector2() { for(i=0;i<A.length;i++)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
A[i]=Math.abs(R.nextInt()%99+1); j=new String(P.toString()).indexOf(':'); insertar(j); ordenar(); j=new String(P.toString()).lastIndexOf(':'); insertar(j); } void insertar(int k) { Q=new StringBuffer(); for(i=0;i<A.length;i++) { Q.append(" "); Q.append(A[i]); } P.insert(k+1,Q.toString()); } void ordenar() { for(i=0;i<A.length-1;i++) for(j=i+1;j<A.length;j++) if(A[i]>A[j]) { aux=A[i]; A[i]=A[j]; A[j]=aux; } } String impresion() { return P.toString(); } } public class VectorCasos { public static void main(String[] args) { CasoVector1 X=new CasoVector1(); CasoVector2 Y=new CasoVector2(); JOptionPane.showMessageDialog(null," Caso Vector 1: \n"+X.impresion().toString()); JOptionPane.showMessageDialog(null," Caso Vector 2: \n"+Y.impresion().toString()); System.exit(0); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

9.3. Programa 3. Invertir un Arreglo


import javax.swing.*; class Inverso { int i,j,k; void pasar(char C[],String S) { j=-1; for(i=S.length()-1;i>=0;i--) { j++; C[j]=S.charAt(i); } } String pasar(String S) { char C[]=new char[S.length()]; j=-1; for(i=S.length()-1;i>=0;i--) { j++; C[j]=S.charAt(i); } return new String().valueOf(C).toString(); } /* String pasar(String S) { StringBuffer B=new StringBuffer(); for(i=S.length()-1;i>=0;i--) B.append(S.charAt(i)); return B.toString(); }*/ void pasar(int C[],int n) { j=-1; while(n>0) { j++; C[j]=n%10; n/=10; } } int pasar(int n) { int m=n; k=0; while(m>0) { if(k==0) k=1; else k*=10; m/=10; } m=0; while(n>0) { m=m+((n%10)*k); n/=10;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
k/=10; } return m; } } public class PasoInverso { public static void main(String[] args) { Inverso I=new Inverso(); String S; int n; do { n=0; S=JOptionPane.showInputDialog(null," Digite Valor a Invertir: "); try { n=Integer.parseInt(S); } catch(NumberFormatException e){n=0;} } while(n==0); char C[]=new char[S.length()]; int A[]=new int[S.length()]; StringBuffer B=new StringBuffer(); int i; I.pasar(C,S); I.pasar(A,n); JOptionPane.showMessageDialog(null," Valor Inverso de String a char[]: "+new String().valueOf(C).toString()); for(i=0;i<A.length;i++) B.append(A[i]); JOptionPane.showMessageDialog(null," Valor Inverso de un Entero a int[]: "+B.toString()); JOptionPane.showMessageDialog(null," Valor Inverso de String a String "+new String().valueOf(I.pasar(S)).toString()); JOptionPane.showMessageDialog(null," Valor Inverso de String a int "+B.toString()); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

10. PROGRAMACION AVANZADA. USO DE MATRICES 10.1. Programa Lectura y Escritura de Matrices
import java.util.*; import javax.swing.*; class LecturaEscrituraMatriz { public static void main(String[] args) { int filas=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite las Filas: ")); int columnas=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite las columnas: ")); int i,j; Random R=new Random(); int A[][]=new int[filas][columnas]; //Lectura() for(i=0;i<filas;i++) for(j=0;j<columnas;j++) A[i][j]=Math.abs(R.nextInt()%99+1); //Escritura System.out.println(" ------ Matriz Leida -------"); for(i=0;i<filas;i++) { System.out.println(); for(j=0;j<columnas;j++) { if(A[i][j]>=10) System.out.print(A[i][j]+" "); else System.out.print(A[i][j]+" "); } } System.out.println(); System.exit(0); } }

10.2. Programa Lectura y Escritura de Matrices


import java.util.*; import javax.swing.*; class SumaDiagTran { public static void main(String[] args) { int filas=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite las Filas: ")); int columnas=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite las columnas: ")); int i,j,k; int d=0,t=columnas-1; int sumad=0,sumat=0; Random R=new Random(); int A[][]=new int[filas][columnas]; //Lectura() for(i=0;i<filas;i++) for(j=0;j<columnas;j++) A[i][j]=Math.abs(R.nextInt()%10+1); for(i=0;i<filas;i++) {

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
sumad=sumad+A[i][d]; sumat=sumat+A[i][t]; d++; t--; } //Escritura System.out.println(" ------ Matriz Leida -------"); for(i=0;i<filas;i++) { System.out.println(); for(j=0;j<columnas;j++) { if(A[i][j]>=10) System.out.print(A[i][j]+" "); else System.out.print(A[i][j]+" "); } } System.out.println(); System.out.println("Suma de Diagonal: "+sumad+" Suma Transversal: "+sumat); System.exit(0); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

10.2. Programa Suma de Diagonales y Transversales


import java.util.*; import javax.swing.*; class SumaDiagTran { public static void main(String[] args) { int n=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Dimension: ")); int i,j,k; int d=0,t=n-1; int sumad=0,sumat=0; Random R=new Random(); int A[][]=new int[n][n]; //Lectura() for(i=0;i<n;i++) for(j=0;j<n;j++) A[i][j]=Math.abs(R.nextInt()%10+1); for(i=0;i<n;i++) { sumad=sumad+A[i][d]; sumat=sumat+A[i][t]; d++; t--; } //Escritura System.out.println(" ------ Matriz Leida -------"); for(i=0;i<n;i++) { System.out.println(); for(j=0;j<n;j++) { if(A[i][j]>=10) System.out.print(A[i][j]+" "); else System.out.print(A[i][j]+" "); } } System.out.println(); System.out.println("Suma de Diagonal: "+sumad+" Suma Transversal: "+sumat); System.exit(0); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

10.3. Programa de Diagonal


import java.util.*; import javax.swing.*; class Diagonal { public static void main(String[] args) { int n=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Dimension: ")); int i,j,k; int d=0,t=n-1; int A[][]=new int[n][n]; //Lectura() for(i=0;i<n;i++) for(j=0;j<n;j++) if(i==j) A[i][j]=1; else A[i][j]=0; //Escritura System.out.println(" ------ Diagonal -----"); for(i=0;i<n;i++) { System.out.println(); for(j=0;j<n;j++) System.out.print(A[i][j]+" "); } System.out.println(); System.exit(0); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

10.4. Programa de Copas


import javax.swing.*; class Copas { public static void main(String[] args) { int n=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Dimension: ")); int i,j,k; int d=0,t=n-1; Random R=new Random(); int A[][]=new int[n][n]; //Lectura() for(i=0;i<n;i++) for(j=0;j<n;j++) A[i][j]=0; for(i=0;i<n;i++) { for(j=d;j<=t;j++) A[i][j]=1; for(j=t;j<=d;j++) A[i][j]=1; d++; t--; } //Escritura System.out.println(" ------ Copas-----"); for(i=0;i<n;i++) { System.out.println(); for(j=0;j<n;j++) { if(A[i][j]==0) System.out.print(" "); else System.out.print("*"); } } System.out.println(); System.exit(0); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

10.5. Programa Simulacin de un Inventario


import java.util.*; import javax.swing.*; class Inventario { int i,j,k; final int n=10; int A[][]=new int[n][4]; //Simulador de un Kardex Random R=new Random(); public Inventario() { for(k=0;k<n;k++) { do { j=Math.abs(R.nextInt()%999+1); } while(existe(j)!=-1); A[k][0]=j; // Referencia del Articulo A[k][1]=Math.abs(R.nextInt()%999+1); // Cantidad de Articulos A[k][2]=0; // Entrada de Productos A[k][3]=0; // Salida de Productos } } int existe(int x) { boolean esta=false; i=0; while(i<n && !esta) { if(A[i][0]==x) esta=true; else i++; } if(esta) return i; else return -1; } void venta(int cant,int pos) { if(A[pos][1]>=cant) { A[pos][1]=A[pos][1]-cant; A[pos][3]=A[pos][3]+cant; } else JOptionPane.showMessageDialog(null,"No se puede realizar la venta...no hay existencia"); } void compra(int cant,int pos) { A[pos][1]=A[pos][1]+cant; A[pos][2]=A[pos][2]+cant; } String impresion() { StringBuffer P=new StringBuffer(); P.append(" CODIGO SALDO ENTRADA SALIDA"); for(i=0;i<n;i++)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
{ P.append("\n "); for(j=0;j<4;j++) { P.append(A[i][j]); if(A[i][j]<10) P.append(" "); if(A[i][j]<100) P.append(" "); P.append(" "); } } return P.toString(); } } public class Kardex { public static void main(String[] args) { Inventario X=new Inventario(); Object[] Opcion={"1. Compra","2. Venta","3. Consulta","4.Cierre"}; int opc,pos; String S; do { S=(String) JOptionPane.showInputDialog(null,"Opciones: "," Almacen Doris",JOptionPane.QUESTION_MESSAGE,null,Opcion,Opcion[2]); opc=Character.digit(S.charAt(0),10); switch(opc) { case 1: pos=X.existe(Integer.parseInt(JOptionPane.showInputDialog(null," Digite Codigo "))); if(pos==-1) JOptionPane.showMessageDialog(null,"No existe Codigo"); else X.compra(Integer.parseInt(JOptionPane.showInputDialog(null," Digite Cantidad a Comprar ")),pos); break; case 2: pos=X.existe(Integer.parseInt(JOptionPane.showInputDialog(null," Digite Codigo "))); if(pos==-1) JOptionPane.showMessageDialog(null,"No existe Codigo"); else X.venta(Integer.parseInt(JOptionPane.showInputDialog(null," Digite Cantidad a Venta ")),pos); break; case 3: JOptionPane.showMessageDialog(null," Inventario \n"+X.impresion().toString()); } }while(opc!=4); System.exit(0); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

10.6. Programa Simulacin de un Parqueadero


import javax.swing.*; import java.util.*; class Parqueo { int n=10,i,j,k; int h,m,ha,hf; int Militar[][]=new int[10][10]; // Hora Militar de Entrada de Vehiculo int Entrada[][]=new int[10][10]; // Hora de Entrada Vehiculo AM/PM int Placa[][]=new int[10][10]; // Placa del Vehiculo int hora=5,minuto=59; Random R=new Random(); boolean lleno() { k=0; for(i=0;i<n;i++) for(j=0;j<n;j++) if(Entrada[i][j]!=0) k++; if(k==n*n) return true; else return false; } void reloj() { int hi=hora+2; ha=(hora*60)+minuto; do { do { h=Math.abs(R.nextInt()%21+hora); } while(h<hora || h>hora+2); m=Math.abs(R.nextInt()%59+0); hf=(h*60)+m; } while(hf<=ha); hora=h; minuto=m; } boolean noatiende() { if(hora>=20) return true; else return false; } void asignar(int placa) { do { i=m=Math.abs(R.nextInt()%(n-1)+0); j=m=Math.abs(R.nextInt()%(n-1)+0); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
while(Entrada[i][j]!=0); reloj(); Militar[i][j]=(hora*100)+minuto; Entrada[i][j]=(hora*60)+minuto; Placa[i][j]=placa; } boolean existe(int placa) { boolean esta=false; i=0; while(i<n && !esta) { j=0; while(j<n && !esta) if(Placa[i][j]==placa) esta=true; else j++; if(!esta) i++; } return esta; } String leerReloj(int hm) { String H=new String(new String().valueOf(hm/100)); String M=new String(new String().valueOf(hm%100)); String P=new String(":"); return new String(H.concat(P.concat(M))).toString(); } int salida(int placa) { if(existe(placa)) { reloj(); hf=(hora*60)+minuto; ha= (hora*100)+minuto; k=(hf-Entrada[i][j])*10; JOptionPane.showMessageDialog(null,"Placa: "+placa+"\n Hora de Entrada: "+leerReloj(Militar[i][j]).toString()+" \n Hora de Salida: "+leerReloj(ha).toString()+" \n Pago:"+k); Entrada[i][j]=0; Placa[i][j]=0; Militar[i][j]=0; } else { JOptionPane.showMessageDialog(null,"No existe la placa:"+placa); k=0; } return k; } String impresion() { StringBuffer P=new StringBuffer(); P.append(" PLACA ENTRADA"); for(i=0;i<n;i++) for(j=0;j<n;j++) if(Placa[i][j]!=0)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
{ P.append("\n "); P.append(Placa[i][j]); P.append(" "); P.append(Militar[i][j]); } return P.toString(); } } public class Parqueadero { public static void main(String[] args) { Object[] Opcion={"1. Entrada","2. Salida","3. Consulta","4. Cierre"}; int opc,placa; String S; Parqueo P=new Parqueo(); do { S=(String) JOptionPane.showInputDialog(null,"Opciones: "," Parqueadero Doris",JOptionPane.QUESTION_MESSAGE,null,Opcion,Opcion[0]); opc=Character.digit(S.charAt(0),10); switch(opc) { case 1: if(!P.noatiende() && !P.lleno()) { placa=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Placa: "," Parqueadero Doris",JOptionPane.QUESTION_MESSAGE)); if(P.existe(placa)) JOptionPane.showMessageDialog(null,"Placa: "+placa+" Ya Esta en el Parqueadero"); else P.asignar(placa); } break; case 2: if(!P.noatiende()) { placa=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Placa: "," Parqueadero Doris",JOptionPane.QUESTION_MESSAGE)); P.salida(placa); } break; case 3: JOptionPane.showMessageDialog(null," Parqueadero Doris \n"+P.impresion().toString()); } } while(opc!=4); System.exit(0); } }

Ejercicios a Realizar por el Estudiante:


El estudiante despus de adquirir destreza y conocimiento acerca de lenguaje de programacin JAVA debe realizar todos los programas propuesto por el tutor y debe pasarlos con cdigo comando utilizando java.io.* y applet ; ya que los expuestos anteriormente viene desarrollados en java.swing.*; o ambiente grafico.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

PRACTICA No. 02 Estructuras dinmicas Utilizando Java Eclipse Tipo de practica Presencial Autodirigida Remota X

Porcentaje de evaluacin Horas de la practica Temticas de la prctica Intencionalidades formativas

25 Puntos Plataforma campus virtual 4 Horas Laboratorio ST 16 Horas Independientes Estructuras dinmicas Java Utilizando Java Eclipse

Propsito(s):
Desarrollar destreza en los estudiantes en estructuras dinmicas que permitan conceptuar los fundamentos bsicos en el desarrollo programas informticos mediante la utilizacin de un lenguaje de programacin Java. Comprender las tcnicas bsicas del diseo de estructuras dinmicas de un algoritmos y la lgica de programacin en Java. Adquirir destrezas y habilidades en la toma decisiones, en estructuras dinmicas y mediante la mediacin Tutorial, lecturas complementarias, trabajo individual y cooperativo para el desarrollo de algoritmos en Java. Codificar de estructuras dinmicas en un lenguaje de programacin diferentes supuestos semnticos y problemas cotidianos en JAVA.

Meta(s):
El estudiante desarrolla el proyecto y los diferentes talleres en forma adecuada, utilizando las diferentes tcnicas y estrategias estudiadas a lo largo del curso de Java. El estudiante est en capacidad de desarrollar software, partiendo de los diferentes supuestos planteados, y quedando motivado para seguir en la lnea de programacin de computadoras con lenguaje de programacin JAVA. El estudiante desarrolla habilidades que lo lleven por el camino del pensamiento crtico, permitindoles aprender, comprender, practicar y aplicar nueva informacin, que parte de experiencias del medio ambiente, hasta llegar al auto concepto, formando un individuo critico y pensador.

Competencia(s):
El estudiante describe y analiza de manera adecuada y

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS sistematizada las tcnicas y pautas para la construccin y secuencia de un algoritmo codificado en JAVA. El estudiante disea y aplica algoritmos y diagramas de flujo en la construccin de programas, como tcnica principal en la resolucin de un determinado problema en JAVA. El estudiante mediante lecturas y mediaciones sobre tcnicas de construccin de software analiza, sistematiza y pone en prctica las buenas practicas de desarrollo de algoritmos y de programacin en lenguaje JAVA.

Fundamentacin Terica
Estructuras dinmicas Listas mediante el lenguaje de programacin en JAVA. Estructuras dinmicas Colas mediante el lenguaje de programacin en JAVA. Estructuras dinmicas Pilas mediante el lenguaje de programacin en JAVA. Estructuras dinmicas Arboles mediante el lenguaje de programacin en JAVA.

Descripcin de la practica El estudiante debe instalar una maquina virtual y Java Eclipse en su casa, este software debe ser bajado a travs de internet de la pgina Sum Macrosystem El estudiante debe bajar la Gua de Laboratorio para la prctica de la Plataforma campus Virtual del curso Acadmico de Programacin Orientada a Objetos. El estudiante mediante la herramienta de copiar y pegar debe practicar los diferentes ejercicios propuestos en esta gua para que vaya adquiriendo destreza en el lenguaje de programacin Java. El estudiante debe de estar en capacidad de investigar los diferentes cdigos de java ya que todos los ejercicios que propone la gua de laboratorio estn propuestos java.swing.*, o ambiente grafico y el estudiante debe tener las condiciones de pasarlo en java.io.*, o y applet ambiente en cdigo de lnea todos los propuestos en estas. Recursos a utilizar en la prctica (Equipos / instrumentos)
Computadores Modernos con buena Configuracin y con software licenciado

Software a utilizar en la practica


Instalacin de la maquina virtual e Instancian del Java Eclipse

Metodologa
Conocimiento previo para el desarrollo de la prctica. El estudiante de ver el Curso Acadmico de Programacin Orientada a Objetos tiene que tener buenas bases de Algoritmos, Introduccin a Programacin, Estructura de Datos, Bases de Datos, Redes de Comunicacin,

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Forma de trabajo: El estudiante analizara primero todo los programas propuestos por el tutor de laboratorio los cuales estn analizados, diseados y desarrollados completamente listos para que su cdigo sea copiado y pegado en JAVA y luego ser ejecutados, luego el estudiante de haber analizado el cdigo se enfrentara a la tarea de desarrollar una serie de programas por s solo. Procedimiento: El Estudiante debe investigar como puede hacer estos mismos programas utilizando las libreras import java.io.* y applet

Sistema de Evaluacin El sistema de evaluacin estar a cargo de los tutores de Laboratorio ya que ellos son autnomos de calificar bien sea en grupos o de forma individual el trabajo realizado en los laboratorios Informe o productos a entregar Los estudiantes debe entregar los ejercicios propuestos en la gua de laboratorio en java.io.*; y applet Rbrica de evaluacin

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA "UNAD"


ESCUELA CIENCIAS BASICAS TECNOLOGIA E INGENIERIA PROGRAMA INGENIERIA DE SISTEMAS

Practica 02 Estructuras dinmicas con Java Utilizando Jcreator Le


Rbrica de Evaluacin: tem Evaluado Valoracin Baja Valoracin Media Valoracin Alta Mximo Puntaje

Estructura del Programa codificado en Jcreator LE

Programas sin formato (0)

Programas sin ejecutables (4)

Programas ejecutables (8)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS Redaccin y Ortografa documentacin del programa Programas No documentado (0) Programas Medio documentado (4) Programas Bien documentado (8) 8

Fines del programa

Programa no cumple con lo sugerido (0)

Programa regular con lo sugerido (4)

Programa Cumple con lo sugerido (9)

TOTAL DE PUNTOS POSIBLES

25

Nota: Estudiante que no se presente al componente practico en las fechas propuestas por los diferentes Cead o Ceres y que no desarrollen las guas propuestas para estos laboratorios, tendr una nota total de CERO: (0)

Retroalimentacin La retroalimentacin de los diferentes productos entregados en el laboratorio sern evaluados por el tutor de Plataforam Campus Virtual

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Ejercicios Propuestos por el tutor:


Gua de Laboratorio Estructuras dinmicas utilizando el lenguaje de programacin Java trabajos con java.swing.*; o ambiente grafico:

1. Ejemplo Cola1:
import javax.swing.*; import java.io.*; import java.lang.Math.*; import java.util.*; public class Cola1 { static double SALDO=0; public static void main(String[]args) { int i,opc,nit; Cola A=new Cola(10); Cola B=new Cola(20); Cliente C=new Cliente(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta Por Atender","4. Consulta Atendidos","5.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: C.nit=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba el nmero de Nit")); if(A.existe(C.nit) || B.existe(C.nit)) JOptionPane.showMessageDialog(null,"Existe Nit"); else if(A.llena()) JOptionPane.showMessageDialog(null,"No se Puede Atender Mas"); else { C.nomCliente=JOptionPane.showInputDialog(null,"Digite Nombre"); C.telefono=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Telefono")); A.adicion(C); } break; case 2: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia"); else { A.borra(C); if(!B.llena()) B.adicion(C); } break; case 3: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia"); else JOptionPane.showMessageDialog(null,A.imprime(" Atencion ")); break; case 4:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
if(B.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atendidos Vacia"); else JOptionPane.showMessageDialog(null,B.imprime(" Atencion ")); } } while(opc!=5); } } class Cliente { int nit; String nomCliente; int telefono; } class Cola { int min,max,n; Cliente A[]; int i; public Cola(int n) { min=-1; max=-1; this.n=n; A=new Cliente[n]; } boolean vacia() { if(min==-1) return true; else return false; } boolean llena() { if(max==n-1) return true; else return false; } void adicion(Cliente C) { if(min==-1) min++; max++; A[max]=new Cliente(); A[max].nit=C.nit; A[max].telefono=C.telefono; A[max].nomCliente=C.nomCliente; } void borra(Cliente C) { C.nit=A[min].nit; C.telefono=A[min].telefono; C.nomCliente=A[min].nomCliente; if(min==max) min=max=-1; else min++;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
} boolean existe(int nit) { boolean esta=false; if(!vacia()) for(i=min;i<=max && ! esta;i++) if(A[i].nit==nit) esta=true; return esta; } String imprime(String Aviso) { String S=" Elemenos de la Cola de: "+Aviso.toString()+"\n"; for(i=min;i<=max;i++) { S=S+" "+new String().valueOf(A[i].nit).toString(); S=S+" "+A[i].nomCliente; S=S+" "+new String().valueOf(A[i].telefono).toString()+"\n"; } return S.toString(); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

2. Ejemplo Cola2:
import javax.swing.*; import java.io.*; import java.lang.Math.*; import java.util.*; public class Cola2 { public static void main(String[]args) { int i,opc,nit; BiCola A=new BiCola(10); Info C=new Info(); Object [] valores = {"1. Adicion Mas Reciente","2. Adicion Menos Reciente","3. Borrar Menos Reciente","4. Borrar Mas Recientes","5. Consulta","6.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: if(A.llena()) JOptionPane.showMessageDialog(null,"No se Puede Atender Mas"); else { C.nit=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba el nmero de Nit")); C.nomCliente=JOptionPane.showInputDialog(null,"Digite Nombre"); C.telefono=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Telefono")); A.adicion_max(C); } break; case 2: if(A.llena()) JOptionPane.showMessageDialog(null,"No se Puede Atender Mas"); else if(!A.tope() && !A.minimo()) { C.nit=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba el nmero de Nit")); C.nomCliente=JOptionPane.showInputDialog(null,"Digite Nombre"); C.telefono=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Telefono")); A.adicion_min(C); } break; case 3: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia"); else { A.borra_min(); } break; case 4: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia"); else { A.borra_max(); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
break; case 5: if(A.vacia()) JOptionPane.showMessageDialog(null,"BiCola Vacia"); else JOptionPane.showMessageDialog(null,A.imprime()); } } while(opc!=6); } } class Info { int nit; String nomCliente; int telefono; } class BiCola { int min,max,n; Info A[]; int i; public BiCola(int n) { min=-1; max=-1; this.n=n; A=new Info[n]; for(i=0;i<n;i++) A[i]=new Info(); } boolean vacia() { if(min==-1) return true; else return false; } boolean llena() { if(min==0 && max==n-1) return true; else return false; } boolean tope() { if(max==n-1) return true; else return false; } boolean minimo() { if(min==0) return true; else return false; } void adicion_max(Info C)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
{ if(min==-1) min=0; max++; A[max].nit=C.nit; A[max].telefono=C.telefono; A[max].nomCliente=C.nomCliente; } void adicion_min(Info C) { min--; A[min].nit=C.nit; A[min].telefono=C.telefono; A[min].nomCliente=C.nomCliente;; } void borra_min() { if(min==max) min=max=-1; else min++; } void borra_max() { if(min==max) min=max=-1; else max--; } String imprime() { String S=" Elemenos de la Cola \n"; for(i=min;i<=max;i++) { S=S+" "+new String().valueOf(A[i].nit).toString(); S=S+" "+A[i].nomCliente; S=S+" "+new String().valueOf(A[i].telefono).toString()+"\n"; } return S.toString(); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

3. Ejemplo Cola3:
import javax.swing.*; import java.io.*; import java.lang.Math.*; import java.util.*; public class Cola3 { public static void main(String[]args) { int i,opc,nit; ColaCir A=new ColaCir(3); Info C=new Info(); Object [] valores = {"1. Adicion","2.Eliminar","3. Consulta","4.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: if(A.llena()) JOptionPane.showMessageDialog(null,"No se Puede Atender Mas"); else { C.nit=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba el nmero de Nit")); C.nomCliente=JOptionPane.showInputDialog(null,"Digite Nombre"); C.telefono=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Telefono")); A.adicion(C); } break; case 2: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia"); else { A.borrar(); } break; case 3: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola Vacia"); else JOptionPane.showMessageDialog(null,A.imprime()); } } while(opc!=4); } } class Info { int nit; String nomCliente; int telefono; } class ColaCir { int min,max,n; Info A[];

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
int i; String S=" "; public ColaCir(int n) { min=-1; max=-1; this.n=n; A=new Info[n]; for(i=0;i<n;i++) A[i]=new Info(); } boolean vacia() { if(min==-1) return true; else return false; } boolean llena() { if((min==0 && max==n-1) || (max==min-1)) return true; else return false; } void adicion(Info C) { if(min==-1) min=0; if(max==n-1) max=0; else max++; A[max].nit=C.nit; A[max].telefono=C.telefono; A[max].nomCliente=C.nomCliente;; } void borrar() { if(min==max) min=max=-1; else if(min==n-1) min=0; else min++; } String imprime() { S=" Elemenos de la Cola \n"; if(max<min) { consulta(min,n-1); consulta(0,max); } else consulta(min,max); return S.toString(); } void consulta(int inf,int sup)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
{ for(i=inf;i<=sup;i++) { S=S+" "+new String().valueOf(A[i].nit).toString(); S=S+" "+A[i].nomCliente; S=S+" "+new String().valueOf(A[i].telefono).toString()+"\n"; } } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

4. Ejemplo Cola 3 Archivos


import javax.swing.*; import java.io.*; import java.lang.Math.*; import java.util.*; public class ColaArch { static double SALDO=0; public static void main(String[]args) { int i,opc,nit; Cola A=new Cola(10); if(A.salir()) System.exit(1); A.cargar(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta","4.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: if(A.llena() || !A.hayMas()) JOptionPane.showMessageDialog(null,"No se Puede Atender Mas"); else A.adicion(); break; case 2: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia"); else A.borrar(); break; case 3: if(A.vacia()) JOptionPane.showMessageDialog(null,"Cola de Atencion Vacia"); else JOptionPane.showMessageDialog(null,A.imprime()); break; } } while(opc!=4); A.cerrar(); System.exit(1); } } class Cola { ArchivoBase P=new ArchivoBase(); int min,max,n,d,numreg=-1; int A[]; int i; public Cola(int n) { min=-1; max=-1; this.n=n;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
A=new int[n]; } void cargar() { P.tabla(); } boolean salir() { if(!P.lectura("cliente.txt")) return true; cargar(); if(P.tope()==0) return true; return false; } boolean vacia() { if(min==-1) return true; else return false; } boolean llena() { if(max==n) return true; else return false; } boolean hayMas() { if(numreg<P.tope()) return true; else return false; } void adicion() { if(min==-1) min++; max++; numreg++; A[max]=numreg; } void borrar() { if(min==max) min=max=-1; else min++; } String imprime() { String S=" Elemenos de la Cola de: \n"; for(i=min;i<=max;i++) { S=S+P.consulta(A[i])+"\n"; } return S.toString(); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
String Consulta() { return P.Consultabla(); } void cerrar() { P.cerrar(); } } class ArchivoBase { long longreg=34; StringBuffer linea=new StringBuffer(); RandomAccessFile arch; long pos=-1; //Numero de Registro long k; int numreg=-1; Hashtable H=new Hashtable(); boolean lectura(String Nom) { try { arch=new RandomAccessFile(Nom.toString(),"r"); } catch(FileNotFoundException e) { System.out.println("No Existe Archivo"); return false; } return true; } void tabla() { pos=0; numreg=-1; try { do { numreg++; H.put(new String().valueOf(numreg),new String().valueOf(pos)); pos=pos+(longreg*2); } while(pos<arch.length()); } catch(IOException e) { } } void bajar() { try { arch.seek(pos); for(k=pos;k<pos+longreg;k++) { if(k==7 || k==27) linea.append(" "); linea.append(arch.readChar()); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
} catch(IOException e) { } } String consulta(int n) { String S=new String().valueOf(n); linea=new StringBuffer(); pos=Long.parseLong((String) H.get(S)); bajar(); return linea.toString(); } long longitud() { long k=0; try { k=arch.length(); } catch(IOException e){} return k; } int tope() { return numreg; } String Consultabla() { Enumeration codigo=H.keys(); String S=null; linea=new StringBuffer(); linea.append(" Codigo Nombre Telefono \n"); while(codigo.hasMoreElements()) { S=(String) codigo.nextElement(); pos=Long.parseLong((String) H.get(S))*longreg; bajar(); linea.append("\n"); } return linea.toString(); } void cerrar() { try { arch.close(); } catch(IOException e){} } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

5. Ejemplo de Lista
import javax.swing.*; class Nodo { int info; Nodo(int info) { this.info = info; } Nodo sig; } class Listas { Nodo p,q,r; Nodo cab=null; boolean busca_ant(int x) { p=q=cab; while(p!=null && p.info!=x) { q=p; p=p.sig; } if(p!=null) return true; else return false; } void recorre_ant() { p=q=cab; while(p!=null) { q=p; p=p.sig; } } void adicion(int x) { if(!busca_ant(x)) { r=new Nodo(x); if(cab==null) cab=r; else q.sig=r; r.sig=null; } } void borrar(int x) { if(busca_ant(x)) { if(p==cab) cab=cab.sig; else q.sig=p.sig; } } String consulta() {

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
String S="C O N S U L T A \n" ; p=cab; while(p!=null) { S+=p.info+"\n"; p=p.sig; } return S.toString(); } } public class Lista { public static void main(String[]args) { int i,opc,info; Listas L=new Listas(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta","4.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Adicionar:")); L.adicion(info); break; case 2: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Borrar:")); L.borrar(info); break; case 3: JOptionPane.showMessageDialog(null,L.consulta()); break; } } while(opc!=4); System.exit(1); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

6. Ejemplo de Lista Circular


import javax.swing.*; class Nodo { int info; Nodo(int info) { this.info = info; } Nodo sig; } class Listas { Nodo p,q,r; Nodo cab=null; Nodo ult=null; boolean vacia() { if(cab==null) return true; else return false; } void adicion(int x) { r=new Nodo(x); if(cab==null) cab=r; else ult.sig=r; ult=r; r.sig=cab; } void borrar() { if(cab==ult) cab=ult=null; else { cab=cab.sig; ult.sig=cab; } } String consulta() { String S="C O N S U L T A \n" ; p=cab; do { S+=p.info+"\n"; p=p.sig; } while(p!=cab); return S.toString(); } } public class ListaCircular { public static void main(String[]args) { int i,opc,info;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
Listas L=new Listas(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta","4.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Adicionar:")); L.adicion(info); break; case 2: if(!L.vacia()) L.borrar(); break; case 3: if(!L.vacia()) JOptionPane.showMessageDialog(null,L.consulta()); break; } } while(opc!=4); System.exit(1); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

7. Ejemplo de Lista y Cola


import javax.swing.*; class Alumno { int Cod; String Nombre; Alumno(int Cod,String Nombre) { this.Cod = Cod; this.Nombre = Nombre; } Alumno sig; } class Programa { int Id; String Nombre; Programa sig; Alumno p,q,r; Alumno cab=null; Alumno ult=null; Programa(int Id,String Nombre) { this.Id = Id; this.Nombre = Nombre; } boolean vacia() { if(cab==null) return true; else return false; } void adicion(int x,String y) { r=new Alumno(x,y); if(cab==null) cab=r; else ult.sig=r; ult=r; r.sig=null; } void borrar() { if(cab==ult) cab=ult=null; else cab=cab.sig; } String consulta() { String S="C O N S U L T A \n" ; p=cab; while(p!=null) { S+=p.info+"\n"; p=p.sig; } return S.toString(); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
} public class ListaCola { public static void main(String[]args) { int i,opc,info; Listas L=new Listas(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta","4.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Adicionar:")); L.adicion(info); break; case 2: if(!L.vacia()) L.borrar(); break; case 3: JOptionPane.showMessageDialog(null,L.consulta()); break; } } while(opc!=4); System.exit(1); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

8. Ejemplo Lista Encadenada


import javax.swing.*; class Nodo { int info; Nodo(int info) { this.info = info; } Nodo sig; Nodo ant; } class Listas { Nodo p,q,r; Nodo cab=null; Nodo ult=null; boolean vacia() { if(cab==null) return true; else return false; } boolean esta(int x) { p=q=cab; while(p!=null && p.info<x) { q=p; p=p.sig; } if(p!=null && p.info==x) return true; else return false; } void primero(int x) { r=new Nodo(x); cab=ult=r; r.ant=null; r.sig=null; } void insertar(int x) { r=new Nodo(x); q.sig=r; p.ant=r; r.ant=q; r.sig=p; } void menor(int x) { r=new Nodo(x); r.sig=cab; r.ant=null; cab.ant=r; cab=r; } void mayor(int x)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
{ r=new Nodo(x); ult.sig=r; r.ant=ult; r.sig=null; ult=r; } void adicion(int x) { if(vacia()) primero(x); else if(x>ult.info) mayor(x); else if(x<cab.info) menor(x); else if(!esta(x)) insertar(x); } void borrar(int x) { if(esta(x)) { if(p==cab) { if(cab==ult) cab=ult=null; else { cab=cab.sig; cab.ant=null; } } else if(p==ult) { ult=ult.ant; ult.sig=null; } else { r=p.sig; q.sig=r; r.ant=q; } } } String consulta_asc() { String S="C O N S U L T A \n" ; p=cab; while(p!=null) { S+=p.info+"\n"; p=p.sig; } return S.toString();

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
} String consulta_desc() { String S="C O N S U L T A \n" ; p=ult; while(p!=null) { S+=p.info+"\n"; p=p.ant; } return S.toString(); } } public class ListaEncadenada { public static void main(String[]args) { int i,opc,info; Listas L=new Listas(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta Ascendente","4. Consulta Descendente","5.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Adicionar:")); L.adicion(info); break; case 2: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Borrar:")); L.borrar(info); break; case 3: JOptionPane.showMessageDialog(null,L.consulta_asc()); break; case 4: JOptionPane.showMessageDialog(null,L.consulta_desc()); break; } } while(opc!=5); System.exit(1); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

9. Ejemplo de Lista y Pila


import javax.swing.*; class Nodo { int info; Nodo(int info) { this.info = info; } Nodo sig; } class Listas { Nodo p,r; Nodo cab=null; boolean vacia() { if(cab==null) return true; else return false; } void adicion(int x) { r=new Nodo(x); r.sig=cab; cab=r; } void borrar() { cab=cab.sig; } String consulta() { String S="C O N S U L T A \n" ; p=cab; while(p!=null) { S+=p.info+"\n"; p=p.sig; } return S.toString(); } } public class ListaPila { public static void main(String[]args) { int i,opc,info; Listas L=new Listas(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta","4.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: info=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Info a Adicionar:"));

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
L.adicion(info); break; case 2: if(!L.vacia()) L.borrar(); break; case 3: JOptionPane.showMessageDialog(null,L.consulta()); break; } } while(opc!=4); System.exit(1); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

10. Ejemplo de Multilista


import javax.swing.*; class Alumno { int Cod; String Nombre; Alumno(int Cod,String Nombre) { this.Cod = Cod; this.Nombre = Nombre; } Alumno sig; } class Programa { int Id; String Nombre; Programa sig; Alumno p,q,r; Alumno cab=null; Alumno ult=null; Programa(int Id,String Nombre) { this.Id = Id; this.Nombre = Nombre; } boolean vacia() { if(cab==null) return true; else return false; } void adicion(int x,String y) { r=new Alumno(x,y); if(cab==null) cab=r; else ult.sig=r; ult=r; r.sig=null; } void borrar() { if(cab==ult) cab=ult=null; else cab=cab.sig; } String consulta() { String S="C O N S U L T A D E A L U M N O S \n" ; p=cab; while(p!=null) { S+=p.Cod+" "+p.Nombre+"\n"; p=p.sig; } return S.toString(); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
} class Facultad { Programa p,q,r; Programa cab=null; Programa ult=null; boolean vacia() { if(cab==null) return true; else return false; } void adicion(int x,String y) { r=new Programa(x,y); if(cab==null) cab=r; else ult.sig=r; ult=r; r.sig=null; } void borrar() { if(cab==ult) cab=ult=null; else cab=cab.sig; } boolean existe(int id) { p=cab; while(p!=null && p.Id!=id) p=p.sig; if(p==null) return false; else return true; } void borrarAlumno() { if(!p.vacia()) p.borrar(); } void adicionAlumno(int x,String y) { p.adicion(x,y); } String consulta() { String S="C O N S U L T A D E P R O G R A M A S \n" ; p=cab; while(p!=null) { S+=p.Id+" "+p.Nombre+"\n"; p=p.sig; } return S.toString();

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
} String consultaTodo() { String S="C O N S U L T A D E P R O G R A M A S \n" ; S+=p.Id+" "+p.Nombre+"\n"; S+=p.consulta(); return S.toString(); } } public class MultiLista { public static void main(String[]args) { int i,opc,cod,id; String Nombre; Facultad L=new Facultad(); Object [] valores = {"1. Adicion Programa","2. Borrar Programa","3. Consulta Programa","4.Adicion Alumno","5.Borrar Alumno","6. Consulta","7.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: cod=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Programa a Adicionar:")); Nombre=JOptionPane.showInputDialog(null," Digite Nombre A Adicionar:"); L.adicion(cod,Nombre); break; case 2: if(!L.vacia()) L.borrar(); break; case 3: JOptionPane.showMessageDialog(null,L.consulta()); break; case 4: case 5: case 6: cod=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Programa:")); if(L.existe(cod)) switch(opc) { case 4: cod=Integer.parseInt(JOptionPane.showInputDialog(null," Digite Alumno a Adicionar:")); Nombre=JOptionPane.showInputDialog(null," Digite Nombre A Adicionar:"); L.adicionAlumno(cod,Nombre); break; case 5: L.borrarAlumno(); break; case 6: JOptionPane.showMessageDialog(null,L.consultaTodo()); } } } while(opc!=7); System.exit(1); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
}

11. Ejemplo de Pila


import javax.swing.*; import java.io.*; import java.lang.Math.*; import java.util.*; public class Pila1 { static double SALDO=0; public static void main(String[]args) { int i,opc,nit; Pila A=new Pila(10); Info C=new Info(); Object [] valores = {"1. Apilar","2. Desempila","3. Consulta","4.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: if(A.llena()) JOptionPane.showMessageDialog(null,"No se Puede Atender Mas"); else { C.nit=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba el nmero de Nit")); C.nomCliente=JOptionPane.showInputDialog(null,"Digite Nombre"); C.telefono=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite Telefono")); A.apila(C); } break; case 2: if(A.vacia()) JOptionPane.showMessageDialog(null,"Pila de Atencion Vacia"); else { A.desempila(); } break; case 3: if(A.vacia()) JOptionPane.showMessageDialog(null,"Pila Vacia"); else JOptionPane.showMessageDialog(null,A.imprime()); } } while(opc!=4); } } class Info { int nit; String nomCliente; int telefono;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
} class Pila { int cab,n; Info A[]; int i,k; public Pila(int n) { cab=-1; this.n=n; A=new Info[n]; for(i=0;i<n;i++) A[i]=new Info(); } boolean vacia() { if(cab==-1) return true; else return false; } boolean llena() { if(cab==n-1) return true; else return false; } void apila(Info C) { cab++; A[cab].nit=C.nit; A[cab].telefono=C.telefono; A[cab].nomCliente=C.nomCliente; } void desempila() { cab--; } String imprime() { String S=" Elemenos de la Pila\n"; for(i=cab;i>=0;i--) { S=S+" "+new String().valueOf(A[i].nit).toString(); S=S+" "+A[i].nomCliente; S=S+" "+new String().valueOf(A[i].telefono).toString()+"\n"; } return S.toString(); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

12. Ejemplo de Arbol Binario


import javax.swing.*; import java.util.*; class ArbolBin { NodoArbol raiz=null; NodoArbol p,q,r; Stack Pila=new Stack(); int fila=0; boolean existe(int x) { q=p=raiz; while(p!=null && x!=p.info) { q=p; if(x<p.info) { p=p.izq; } else { p=p.der; } } if(p==null) return false; else return true; } boolean adicion(int x) { if(existe(x)) return false; // System.out.println("adicion de: "+x+"raiz: "+raiz+" q:"+q+" p: "+p); r=new NodoArbol(x); r.izq=r.der=null; if(raiz==null) { raiz=r; } else { if(x<q.info) { q.izq=r; } else { q.der=r; } } return true; } boolean masderecha(NodoArbol s) { Pila=new Stack(); while(s!=null) { Pila.push((Object) s);

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
s=s.der; } if(Pila.empty()) return false; s=(NodoArbol) Pila.pop(); if(p==raiz) raiz=s; else { if(q.izq==p) q.izq=s; else q.der=s; } if(Pila.empty()) return true; r=(NodoArbol) Pila.pop(); r.der=s.izq; s.izq=p.izq; s.der=p.der; return true; } boolean masizquierda(NodoArbol s) { Pila=null; while(s!=null) { Pila.push((Object) s); s=s.izq; } if(Pila.empty()) return false; s=(NodoArbol) Pila.pop(); if(p==raiz) raiz=s; else { if(q.izq==p) q.izq=s; else q.der=s; } if(Pila.empty()) return true; r=(NodoArbol) Pila.pop(); r.izq=s.der; s.izq=p.izq; s.der=p.der; return true; } void caso1Borrado()// P. Es Nodo Terminal { if(p==raiz) raiz=null; else { if(q.izq==p) q.izq=null; if(q.der==p) q.der=null;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
} } void caso2Borrado()//Hijo Unico. P.der es Null P.izq es Null { if(p==raiz) { if(p.izq==null) raiz=p.der; else raiz=p.izq; } else { if(p.izq==null) { if(q.izq==p) q.izq=p.der; else q.der=p.der; } else //p.der==null { if(q.izq==p) q.izq=p.izq; else q.der=p.izq; } } } void caso3Borrado()// Dos Hijos. P.der y P.izq no es null { if(!masderecha(p.izq)) if(!masizquierda(p.der)) System.out.println(" No se pudo Borrar"); } boolean borrar(int x) { if(!existe(x)) return false; if(p.izq!=null && p.der!=null) caso3Borrado(); else if(p.izq==null && p.der==null) caso1Borrado(); else caso2Borrado(); return true; } void preorden(NodoArbol p) { if(p!=null) { System.out.println(p.info); preorden(p.izq); preorden(p.der); } } void inorden(NodoArbol p) { if(p!=null)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
{ inorden(p.izq); System.out.println(p.info); inorden(p.der); } } void posorden(NodoArbol p) { if(p!=null) { posorden(p.izq); posorden(p.der); System.out.println(p.info); } } void conteoNodo(NodoArbol p,int A[]) { if(p!=null) { A[0]++; conteoNodo(p.izq,A); conteoNodo(p.der,A); } } void contarNodos() { int A[]=new int[2]; p=raiz; conteoNodo(p,A); System.out.print("El numero de nodos: "+A[0]); } void imprimirInorden() { System.out.println("Impresion de Arbol en InOrden"); p=raiz; inorden(p); } void imprimirPreorden() { System.out.println("Impresion de Arbol en PreOrden"); p=raiz; preorden(p); } void imprimirPosorden() { System.out.println("Impresion de Arbol en PosOrden"); p=raiz; posorden(p); } } class NodoArbol { int info; NodoArbol(int x) { info=x; }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
NodoArbol izq,der; } public class Arbol { static double SALDO=0; public static void main(String[]args) { int info,opc; ArbolBin A=new ArbolBin(); Object [] valores = {"1. Adicion","2. Borrar","3. Consulta En PreOrden","4. Consulta en InOrden","5. Consulta en PosOrden","6. Conteo de Nodos","7.Salir"}; do { String resp=(String) JOptionPane.showInputDialog(null,"Elija la Opcion", "Entrada de datos",JOptionPane.QUESTION_MESSAGE, null, valores,valores[0]); opc=Character.digit(resp.charAt(0),10); switch(opc) { case 1: info=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba info a Borrar: ")); if(!A.adicion(info)) JOptionPane.showMessageDialog(null,"Existe Info"); break; case 2: info=Integer.parseInt(JOptionPane.showInputDialog(null,"Escriba info a Adicionar: ")); if(!A.borrar(info)) JOptionPane.showMessageDialog(null,"No Existe Info"); break; case 3: A.imprimirPreorden(); break; case 4: A.imprimirInorden(); break; case 5: A.imprimirPosorden(); break; case 6: A.contarNodos(); break; } } while(opc!=7); System.exit(0); } }

Ejercicios a Realizar por el Estudiante:


El estudiante despus de adquirir destreza y conocimiento acerca de lenguaje de programacin JAVA debe realizar todos los programas propuesto por el tutor y debe pasarlos con cdigo comando utilizando java.io.*; ya que los espuestos antriormente viene desarrollados en java.swing.*; o ambiente grafico.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

PRACTICA No. 03 Base de Datos Modelo Relacional entidad Relacin Access con Java 2 Utilizando Java Eclipse Tipo de practica Presencial Autodirigida Remota X

Porcentaje de evaluacin Horas de la practica Temticas de la prctica Intencionalidades formativas

25 Puntos Plataforma Campus Virtual 4 Horas Laboratorio ST 16 Horas Independientes Base de Datos Modelo Relacional entidad Relacin Access con Java 2 Utilizando Java Eclipse

Propsitos:
Dar a conocer a los estudiantes de una forma clara los conceptos fundamentales de las bases de datos Trabajadas desde un lenguaje de programacin Java. Enfatizar en la importancia de un modelado conceptual, utilizando el modelo entidad relacin, para el anlisis y diseo de una base de datos con interface con un lenguaje de programacin Java. Capacitar a los estudiantes a comprender y aplicar el uso de las herramientas del Lenguaje Access o Sql para interactuar con una base de datos relacional en interface con Java.

Objetivos:
Que el estudiante Comprenda la importancia de los modelos Entidad Relacin y Modelo Relacional para disear una base de datos con interface a un lenguaje de programacin Java. Que el estudiante Adquiera los conocimientos bsicos que le permitan crear estructuras y administrar estructuras simples de bases de datos para ingresar y modificar informacin con interface a un lenguaje de programacin Java . Que el estudiante Conozca procedimientos que le permitan almacenar, ordenar y administrar datos almacenados en una o ms tablas relacionadas con interface a un lenguaje de programacin Java. Que el estudiante Aprenda el uso de expresiones matemticas para realizar toda clase de clculos y operaciones dentro de consultas, informes y formularios con interface a un lenguaje de programacin Java.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Metas:
Desarrollara modelos de bases de datos relacionales teniendo en cuenta los fundamentos tericos, que permitan al usuario, consultar y modificar los datos almacenados, ingresar o liminar los que han dejado de ser tiles con interface a un lenguaje de programacin Java. Tendr la capacidad de realizar diseos de bases de datos enfocados a dar una solucin ptima, empleando de una forma adecuada las diferentes estructuras de manejo de datos, con el fin de identificar las ventajas y desventajas y de esta forma dar la mejor solucin al manejo de la informacin y las exigencias de los usuarios con interface a un lenguaje de programacin Java.

Competencias:
El estudiante comprende e interpreta y conozca de una forma clara todos los conceptos fundamentales de las bases de datos, para poder desarrollar e implantar bases de datos y tener un mejor control de la informacin con interface a un lenguaje de programacin Java. El estudiante adquiere destrezas en el uso de procedimientos que le permitan almacenar, ordenar y administrar informacin en una o ms tablas relacionadas con interface a un lenguaje de programacin Java. .

Fundamentacin Terica Base de Datos Basicos Modelado de Datos Mormalizacion Descripcin de la practica El estudiante debe instalar una maquina virtual y Jcretor JE en su casa, este software debe ser bajado a travs de internet de la pgina Sum Macrosystem El estudiante debe bajar la Gua de Laboratorio para la prctica de la Plataforma campus Virtual del curso Acadmico de Programacin Orientada a Objetos. El estudiante mediante la herramienta de copiar y pegar debe practicar los diferentes ejercicios propuestos en esta gua para que vaya adquiriendo destreza en el lenguaje de programacin Java.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

El estudiante debe de estar en capacidad de investigar los diferentes cdigos de java ya que todos los ejercicios que propone la gua de laboratorio estn propuestos java.swing.*, o ambiente grafico y el estudiante debe tener las condiciones de pasarlo en java.io.*, o ambiente en cdigo de lnea todos los propuestos en estas. Recursos a utilizar en la prctica (Equipos / instrumentos)
Computadores Modernos con buena Configuracin y con software licenciado

Software a utilizar en la practica


Instalacin de la maquina virtual e Instancian del Java Eclipse Microsoft Office

Metodologa
Conocimiento previo para el desarrollo de la prctica. El estudiante de ver el Curso Acadmico de Programacin Orientada a Objetos tiene que tener buenas bases de Algoritmos, Introduccin a Programacin, Estructura de Datos, Bases de Datos, Redes de Comunicacin, Forma de trabajo: El estudiante analizara primero todo los programas propuestos por el tutor de laboratorio los cuales estn analizados, diseados y desarrollados completamente listos para que su cdigo sea copiado y pegado en JAVA y luego ser ejecutados, luego el estudiante de haber analizado el cdigo se enfrentara a la tarea de desarrollar una serie de programas por s solo. Procedimiento: El Estudiante debe investigar como puede hacer estos mismos programas utilizando las libreras import java.io.* y applet

Sistema de Evaluacin El sistema de evaluacin estar a cargo de los tutores de Laboratorio ya que ellos son autnomos de calificar bien sea en grupos o de forma individual el trabajo realizado en los laboratorios Informe o productos a entregar Los estudiantes debe entregar los ejercicios propuestos en la gua de laboratorio en java.io.*; y applet Rbrica de evaluacin

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA "UNAD"


ESCUELA CIENCIAS BASICAS TECNOLOGIA E INGENIERIA PROGRAMA INGENIERIA DE SISTEMAS

Practica 03 Base de Datos Modelo Relacional Entidad Relacin

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Access con Java Jcreator LE

Rbrica de Evaluacin: tem Evaluado Valoracin Baja Valoracin Media Valoracin Alta Mximo Puntaje

Estructura del Programa codificado en Jcreator LE

Programas sin formato (0)

Programas sin ejecutables (4)

Programas ejecutables (8)

Redaccin y Ortografa documentacin del programa

Programas No documentado (0)

Programas Medio documentado (4)

Programas Bien documentado (8)

Fines del programa

Programa no cumple con lo sugerido (0)

Programa regular con lo sugerido (4)

Programa Cumple con lo sugerido (9)

TOTAL DE PUNTOS POSIBLES

25

Nota: Estudiante que no se presente al componente practico en las fechas propuestas por los diferentes Cead o Ceres y que no desarrollen las guas propuestas para estos laboratorios, tendr una nota total de CERO: (0)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Retroalimentacin La retroalimentacin de los diferentes productos entregados en el laboratorio sern evaluados por el tutor PlatafoRMA Campus Virtual

Ejercicios Propuestos por el tutor:


Gua de Laboratorio Estructuras no dinmicas utilizando el lenguaje de programacin Java trabajos con java.swing.*; o ambiente grafico

1. Ejercicios Propuesto Instalacion de bse datos con JAVA Base de Datos Creada desde Acces

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Entidad Relacin

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

1. 2. 3. 4. 5.

Inicio Configuracin Panel de control Herramientas Administrativas Orgenes de Datos (ODBC)

6. Seleccione el botn Agregar

7. Driver to Microsoft Acces (*.mdb) 8. Seleccione el botn Finalizar

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

9. En el campo de texto donde dice Nombre del Origen de debe escribir pelculas 10. En el campo de texto donde dice Descripcin de debe escribir pelculas 11. Seleccione el botn Seleccionar

12. 13. 14.

Del directorio selecione C:\video2\clases Del Nombre de base de datos video.mdb Seleccione el botn Aceptar

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

15. 16. 17.

Seleccione el botn Aceptar Ingresar JCreator Le Abrir todos los programas

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

18. 19. 20.

Compile el Video2 que es el principal Selecione el botn buil Compile file Selecione el botn buil Execute file

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Video2
import java.awt.*; import java.sql.*; public class Video2 extends Dialog { Button Bingresar,Bver,Beliminar,Bmodificar,Bsalir; Video2(String t,Frame p) { super(p,t,false); setLayout(new GridLayout(4,1)); resize(500,200); Bingresar=new Button("Ingresar"); Bver=new Button("Buscar"); Beliminar=new Button("Eliminar"); Bmodificar=new Button("Modificar"); Bsalir=new Button("Salir");

add(Bingresar); add(Bver); add(Beliminar); add(Bsalir); } public boolean action(Event e,Object o) { if(e.target==Bingresar) { Frame fre=new Frame(); ingresar ob=new ingresar("Ingresar",fre); ob.show(); } if(e.target==Bver) { Frame fre=new Frame(); consultar ob=new consultar("Consultas",fre); ob.show(); } if(e.target==Beliminar) { Frame fre=new Frame(); eliminar ob=new eliminar("Eliminar registro",fre); ob.show(); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
if(e.target==Bsalir) { System.exit(0); } return true; } public static void main(String arg[]) { Frame fr=new Frame(); Video2 obj; obj=new Video2("Video tienda M A T R I X",fr); obj.show(); } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Consultar
import java.awt.*; import java.sql.*; public class consultar extends Dialog { Button Bsalir,Blistar; CheckboxGroup grupo; Checkbox pelicula,genero,director,actores; TextArea lista; ///objetos SQL private Connection conexion; private Statement sentencia; private ResultSet resultado; private String sql; consultar(String t,Frame p) { super(p,t,false); setLayout(null); resize(700,500); grupo=new CheckboxGroup(); pelicula=new Checkbox("Peliculas",grupo,true); genero=new Checkbox("Generos",grupo,false); director=new Checkbox("Directores",grupo,false); actores=new Checkbox("Actores",grupo,false); lista=new TextArea(10,10); Bsalir=new Button("Menu principal"); Blistar=new Button("listar");

pelicula.reshape(100,50,120,25); genero.reshape(220,50,120,25); director.reshape(350,50,100,25); actores.reshape(460,50,60,25); Blistar.reshape(550,50,120,25); Bsalir.reshape(550,450,120,25); lista.reshape(20,80,650,350); add(pelicula); add(genero); add(director); add(actores); add(Blistar); add(lista); add(Bsalir); ///cargar driver ODBC try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
catch(ClassNotFoundException e) { } } public boolean action(Event e,Object o) { if(e.target==Blistar) { lista.setText(""); if(pelicula.getState()==true) { pelicula(); } if(genero.getState()==true) { genero(); } if(director.getState()==true) { director(); } if(actores.getState()==true) { actor(); } } if(e.target==Bsalir) { dispose(); hide(); } return true; } public void genero() { String c,n; try { sql="select * from genero"; conexion=DriverManager.getConnection("jdbc:odbc:peliculas"); sentencia=conexion.createStatement(); resultado=sentencia.executeQuery(sql); while(resultado.next()) { c=resultado.getString("idgenero"); n=resultado.getString("nombre"); lista.appendText(c+"-"+n+"\n"); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

conexion.close(); } catch(SQLException e) { lista.appendText("error al listar\n"+e); }

} public void director() { String c,n; try { sql="select * from director"; conexion=DriverManager.getConnection("jdbc:odbc:peliculas"); sentencia=conexion.createStatement(); resultado=sentencia.executeQuery(sql); while(resultado.next()) { c=resultado.getString("iddirector"); n=resultado.getString("nombre"); lista.appendText(c+"-"+n+"\n"); } conexion.close(); } catch(SQLException e) { lista.appendText("error al listar\n"+e); }

public void actor() { String c,n; try { sql="select * from actores"; conexion=DriverManager.getConnection("jdbc:odbc:peliculas"); sentencia=conexion.createStatement(); resultado=sentencia.executeQuery(sql); while(resultado.next()) { c=resultado.getString("idactor"); n=resultado.getString("nombre"); lista.appendText(c+"-"+n+"\n"); } conexion.close(); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
catch(SQLException e) { lista.appendText("error al listar\n"+e); }

public void pelicula() { String c,n,y,g; try { sql="select * from pelicula"; conexion=DriverManager.getConnection("jdbc:odbc:peliculas"); sentencia=conexion.createStatement(); resultado=sentencia.executeQuery(sql); while(resultado.next()) { c=resultado.getString("idpelicula"); n=resultado.getString("nombre"); y=resultado.getString("ao"); g=resultado.getString("idgenero"); lista.appendText(c+"-"+n+"-"+y+"-"+g+"\n"); } conexion.close(); } catch(SQLException e) { lista.appendText("error al listar\n"+e); }

} }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Eliminar
import java.awt.*; import java.sql.*;

public class eliminar extends Dialog { Button Bsalir,Blistar; CheckboxGroup grupo; Checkbox pelicula,genero,director,actores; Label Le; TextField Te; ///objetos SQL private Connection conexion; private Statement sentencia; private ResultSet resultado; private String sql;

eliminar(String t,Frame p) { super(p,t,false); setLayout(null); resize(700,200); Te=new TextField(50); Le=new Label("Codigo"); grupo=new CheckboxGroup(); pelicula=new Checkbox("Peliculas",grupo,true); genero=new Checkbox("Generos",grupo,false); director=new Checkbox("Directores",grupo,false); actores=new Checkbox("Actores",grupo,false);

Bsalir=new Button("Menu principal"); Blistar=new Button("Eliminar"); Le.reshape(100,50,50,25); Te.reshape(160,50,120,25);

pelicula.reshape(100,100,120,25); genero.reshape(220,100,120,25); director.reshape(350,100,100,25); actores.reshape(460,100,60,25); Blistar.reshape(300,50,120,25); Bsalir.reshape(440,50,120,25);

add(Te); add(Le); add(director); add(actores); add(Blistar);

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
add(Bsalir);

///cargar driver ODBC try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e) { } } public boolean action(Event e,Object o) { if(e.target==Blistar) { if(director.getState()==true) { director(); } if(actores.getState()==true) { actor(); } } if(e.target==Bsalir) { dispose(); hide(); } return true; }

public void director() { String c,n; try { sql="delete from director_pelicula where iddirector='"+Te.getText()+"'"; conexion=DriverManager.getConnection("jdbc:odbc:peliculas"); sentencia=conexion.createStatement(); sentencia.executeUpdate(sql); sql="delete from director where iddirector='"+Te.getText()+"'"; sentencia.executeUpdate(sql); conexion.close(); Te.setText(""); } catch(SQLException e) { Te.setText("ERROR: "+e);

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
}

} public void actor() { String c,n; try { sql="delete from actores_pelicula where idactor='"+Te.getText()+"'"; conexion=DriverManager.getConnection("jdbc:odbc:peliculas"); sentencia=conexion.createStatement(); sentencia.executeUpdate(sql); sql="delete from actores where idactor='"+Te.getText()+"'"; sentencia.executeUpdate(sql); conexion.close(); Te.setText(""); } catch(SQLException e) { Te.setText("ERROR: "+e); }

} }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Ingresar
import java.awt.*; public class ingresar extends Dialog { Button Bingact,Binggen,Bingactp,Bingpel,Bingdirp,Bingdir,Bsalir; Frame v; ingresar(String t,Frame p) { super(p,t,false); setLayout(new GridLayout(7,1)); resize(500,220); v=new Frame(); Bingact=new Button("Actor"); Binggen=new Button("Genero"); Bingactp=new Button("Actor pelicula"); Bingpel=new Button("Pelicula"); Bingdirp=new Button("Director pelicula"); Bingdir=new Button("Director"); Bsalir=new Button("Menu principal");

add(Bingact); add(Binggen); add(Bingactp); add(Bingpel); add(Bingdirp); add(Bingdir); add(Bsalir); } public boolean action(Event e,Object o) { if(e.target==Bingact) { ingresaractor obj=new ingresaractor("Ingresar actor",v); obj.show(); } if(e.target==Bingactp) { ingresaractores obj=new ingresaractores("Ingresar actores pelicula",v); obj.show(); } if(e.target==Bingpel) { ingresarpelicual obj=new ingresarpelicual("Ingresar pelicula",v); obj.show(); } if(e.target==Binggen) { ingresargenero obj=new ingresargenero("Ingresar genero",v); obj.show(); } if(e.target==Bingdir) {

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
ingresardirector obj=new ingresardirector("Ingresar director",v); obj.show(); } if(e.target==Bingdirp) { ingresardirectorpelicual obj=new ingresardirectorpelicual("Ingresar director pelicula",v); obj.show(); } if(e.target==Bsalir) { dispose(); hide(); } return true; } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Ingresar Actor
import java.awt.*; import java.sql.*; public class ingresaractor extends Dialog { Button Bingresar,Bsalir; Label Lcodigo,Lnombre; TextField Tcodigo,Tnombre; ///objetos SQL private Connection conexion; private Statement sentencia; private ResultSet resultado; private String sql; ingresaractor(String t,Frame p) { super(p,t,false); setLayout(new GridLayout(3,2)); resize(300,100); Lcodigo=new Label("Codigo"); Lnombre=new Label("Nombre"); Tcodigo=new TextField(10); Tnombre=new TextField(10); Bingresar=new Button("Ingresar"); Bsalir=new Button("Menu ingresar"); add(Lcodigo); add(Tcodigo); add(Lnombre); add(Tnombre); add(Bingresar); add(Bsalir); ///cargar driver ODBC try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e) { } } public boolean action(Event e,Object o) { if(e.target==Bingresar) { ingresar(); } if(e.target==Bsalir) {

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
dispose(); hide(); } return true; } public void ingresar() { try { sql="insert into actores values ('"+Tcodigo.getText()+"','"+Tnombre.getText()+"')"; conexion=DriverManager.getConnection("jdbc:odbc:peliculas"); sentencia=conexion.createStatement(); sentencia.executeUpdate(sql); conexion.close(); Tcodigo.setText(""); Tnombre.setText(""); } catch(SQLException e) { Tcodigo.setText("ERROR:"+e); Tnombre.setText("ERROR:"+e); }

} }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Ingresar Actores
import java.awt.*; import java.sql.*; public class ingresaractores extends Dialog { Button Bingresar,Bsalir; Label Lcodigo,Lnombre; TextField Tcodigo,Tnombre;

///objetos SQL private Connection conexion; private Statement sentencia; private ResultSet resultado; private String sql; ingresaractores(String t,Frame p) { super(p,t,false); setLayout(new GridLayout(3,2)); resize(300,100); Lcodigo=new Label("Codigo pelicula"); Lnombre=new Label("Codigo actor"); Tcodigo=new TextField(10); Tnombre=new TextField(10); Bingresar=new Button("Ingresar"); Bsalir=new Button("Menu ingresar"); add(Lcodigo); add(Tcodigo); add(Lnombre); add(Tnombre); add(Bingresar); add(Bsalir);

///cargar driver ODBC try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e) { } } public boolean action(Event e,Object o) { if(e.target==Bingresar) { ingresar(); } if(e.target==Bsalir)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
{ dispose(); hide(); } return true; } public void ingresar() { try { sql="insert into actores_pelicula values ('"+Tcodigo.getText()+"','"+Tnombre.getText()+"')"; conexion=DriverManager.getConnection("jdbc:odbc:peliculas"); sentencia=conexion.createStatement(); sentencia.executeUpdate(sql); conexion.close(); Tcodigo.setText(""); Tnombre.setText(""); } catch(SQLException e) { Tcodigo.setText("ERROR:"+e); Tnombre.setText("ERROR:"+e); } } }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Ingresar Director
import java.awt.*; import java.sql.*; public class ingresardirector extends Dialog { Button Bingresar,Bsalir; Label Lcodigo,Lnombre; TextField Tcodigo,Tnombre; ///objetos SQL private Connection conexion; private Statement sentencia; private ResultSet resultado; private String sql; ingresardirector(String t,Frame p) { super(p,t,false); setLayout(new GridLayout(3,2)); resize(300,100); Lcodigo=new Label("Codigo"); Lnombre=new Label("Nombre"); Tcodigo=new TextField(10); Tnombre=new TextField(10); Bingresar=new Button("Ingresar"); Bsalir=new Button("Menu ingresar"); add(Lcodigo); add(Tcodigo); add(Lnombre); add(Tnombre); add(Bingresar); add(Bsalir);

///cargar driver ODBC try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e) { }

} public boolean action(Event e,Object o) { if(e.target==Bingresar) { ingresar();

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
} if(e.target==Bsalir) { dispose(); hide(); } return true; } public void ingresar() { try { sql="insert into director values ('"+Tcodigo.getText()+"','"+Tnombre.getText()+"')"; conexion=DriverManager.getConnection("jdbc:odbc:peliculas"); sentencia=conexion.createStatement(); sentencia.executeUpdate(sql); conexion.close(); Tcodigo.setText(""); Tnombre.setText(""); } catch(SQLException e) { Tcodigo.setText("ERROR:"+e); Tnombre.setText("ERROR:"+e); }

} }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Ingresar Director de Peliculas


import java.awt.*; import java.sql.*; public class ingresardirectorpelicual extends Dialog { Button Bingresar,Bsalir; Label Lcodigo,Lnombre; TextField Tcodigo,Tnombre;

///objetos SQL private Connection conexion; private Statement sentencia; private ResultSet resultado; private String sql;

ingresardirectorpelicual(String t,Frame p) { super(p,t,false); setLayout(new GridLayout(3,2)); resize(300,100); Lcodigo=new Label("Codigo director"); Lnombre=new Label("Codigo pelicula"); Tcodigo=new TextField(10); Tnombre=new TextField(10); Bingresar=new Button("Ingresar"); Bsalir=new Button("Menu ingresar"); add(Lcodigo); add(Tcodigo); add(Lnombre); add(Tnombre); add(Bingresar); add(Bsalir);

///cargar driver ODBC try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e) { }

} public boolean action(Event e,Object o) { if(e.target==Bingresar)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
{ ingresar(); } if(e.target==Bsalir) { dispose(); hide(); } return true; } public void ingresar() { try { sql="insert into director_pelicula values ('"+Tcodigo.getText()+"','"+Tnombre.getText()+"')"; conexion=DriverManager.getConnection("jdbc:odbc:peliculas"); sentencia=conexion.createStatement(); sentencia.executeUpdate(sql); conexion.close(); Tcodigo.setText(""); Tnombre.setText(""); } catch(SQLException e) { Tcodigo.setText("ERROR:"+e); Tnombre.setText("ERROR:"+e); }

} }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Ingresar Genero
import java.awt.*; import java.sql.*; public class ingresargenero extends Dialog { Button Bingresar,Bsalir; Label Lcodigo,Lnombre; TextField Tcodigo,Tnombre; ///objetos SQL private Connection conexion; private Statement sentencia; private ResultSet resultado; private String sql; ingresargenero(String t,Frame p) { super(p,t,false); setLayout(new GridLayout(3,2)); resize(300,100); Lcodigo=new Label("Codigo"); Lnombre=new Label("Nombre"); Tcodigo=new TextField(10); Tnombre=new TextField(10); Bingresar=new Button("Ingresar"); Bsalir=new Button("Menu ingresar"); add(Lcodigo); add(Tcodigo); add(Lnombre); add(Tnombre); add(Bingresar); add(Bsalir);

///cargar driver ODBC try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e) { }

} public boolean action(Event e,Object o) { if(e.target==Bingresar) { ingresar(); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

if(e.target==Bsalir) { dispose(); hide(); } return true; } public void ingresar() { try { sql="insert into genero values ('"+Tcodigo.getText()+"','"+Tnombre.getText()+"')"; conexion=DriverManager.getConnection("jdbc:odbc:peliculas"); sentencia=conexion.createStatement(); sentencia.executeUpdate(sql); conexion.close(); Tcodigo.setText(""); Tnombre.setText(""); } catch(SQLException e) { Tcodigo.setText("ERROR:"+e); Tnombre.setText("ERROR:"+e); }

} }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Ingresar Pelicula
import java.awt.*; import java.sql.*; public class ingresarpelicual extends Dialog { Button Bingresar,Bsalir; Label Lcodigo,Lnombre,Lyear,Lgenero; TextField Tcodigo,Tnombre,Tyear,Tgenero; ///objetos SQL private Connection conexion; private Statement sentencia; private ResultSet resultado; private String sql;

ingresarpelicual(String t,Frame p) { super(p,t,false); setLayout(new GridLayout(5,2)); resize(300,150); Lcodigo=new Label("Codigo"); Lnombre=new Label("Nombre"); Lyear=new Label("Ao"); Lgenero=new Label("Codigo genero");

Tcodigo=new TextField(10); Tnombre=new TextField(10); Tyear=new TextField(10); Tgenero=new TextField(10); Bingresar=new Button("Ingresar"); Bsalir=new Button("Menu ingresar"); add(Lcodigo); add(Tcodigo); add(Lnombre); add(Tnombre); add(Lyear); add(Tyear); add(Lgenero); add(Tgenero); add(Bingresar); add(Bsalir);

///cargar driver ODBC try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e) {

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
}

} public boolean action(Event e,Object o) { if(e.target==Bingresar) { ingresar(); }

if(e.target==Bsalir) { dispose(); hide(); } return true; } public void ingresar() { try { sql="insert into pelicula values ('"+Tcodigo.getText()+"','"+Tnombre.getText()+"','"+Tyear.getText()+"','"+Tgenero.getText()+"','0')"; conexion=DriverManager.getConnection("jdbc:odbc:peliculas"); sentencia=conexion.createStatement(); sentencia.executeUpdate(sql); conexion.close(); Tcodigo.setText(""); Tnombre.setText(""); Tyear.setText(""); Tgenero.setText(""); } catch(SQLException e) { Tcodigo.setText("ERROR:"+e); Tnombre.setText("ERROR:"+e); }

} }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Ejercicios a Realizar por el Estudiante:


El estudiante despus de adquirir destreza y conocimiento acerca de lenguaje de programacin JAVA debe realizar el siguiente ejemplo con base de datos teniendo encuenta la consulta, eliminar. Modificar, consultar

Base de Datos Creada desde Acces

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Entidad Relacion

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

PRACTICA No. 04 Redes Encriptamiento y Desincriptamiento de un dato, Chat cliente Servidor, computacion Grafica 2D con Java 2 Utilizando Jcreator LE Tipo de practica Presencial Autodirigida Remota X

Porcentaje de evaluacin Horas de la practica Temticas de la prctica Intencionalidades formativas

7.5 % del 60 % 3 Horas Laboratorio ST 12 Horas Independientes Redes Encriptamiento y Desincriptamiento de un dato, Chat cliente Servidor, computacion Grafica 2D con Java 2 Utilizando Jcreator LE

Propsitos:
Aportar a la fundamentacin terica del estudiante, como base para la construccin de un discurso coherente y sustentado, a travs de la profundizacin en la terminologa a travs del lenguaje de programacin Java, Introducir al estudiante en el conocimiento de los principales algoritmos y estructuras de datos utilizados en Computacin Grfica, especialmente en la generacin degrficos en dos dimensiones con lenguaje de programacin Java. Proporcionar al estudiante los lineamientos tecnolgicos bsicos que le permitan utilizar API grficas en conjunto con lenguajes de programacin de alto nivel, para el proceso de modelamiento y construccin de escenarios grficos en 2D y 3D..

Objetivos:
Que el estudiante utilice y comprenda los diferentes conceptos relacionados con el la representacin de grficos en el computador y los componentes hardware software necesarios partiendo de los fundamentos tericos y tecnolgicos de esta disciplina con es el lenguaje de programacin Java. Que el estudiante explique los algoritmos necesarios para el trazado de curvas en dos dimensiones, a partir del estudio de su origen matemtico, geomtrico y construya aplicaciones bsicas que las implementen utilizando lenguajes de alto nivel o lenguaje de programacin Java

Metas:
Definir y comparar trminos relacionados comnmente con la computacin grfica y con el lenguaje de programacin Java. Relacionar los diferentes componentes que intervienen en la apreciacin de la luz y el color en el computador y con el

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS lenguaje de programacin Java. Usar API grficas para la construccin de grficos computacionales. Utilizar y construir algoritmos para dibujo de grficos en 2D y 3D. Describir el funcionamiento matemtico y geomtrico que permite el dibujo de grficos en el computador y con el lenguaje de programacin Java..

Competencias:
El estudiante programa y utiliza algoritmos que permiten dibujar las principales figuras geomtricas de dos dimensiones. El estudiante conoce los fundamentos matemticos de la representacin de grficos computacionales en dos dimensiones y utiliza algoritmos que las realizan. El estudiante utiliza las principales clases proporcionadas por el API 2D y 3D de Java, en la programacin de ejercicios que exigen la representacin de grficos en dos y 3 dimensiones.

Fundamentacin Terica Computacion Grafica Algoritmos bsicos de dibujo en dos Dimensiones Trabajar con API Grafica Introduccion a las redes de computador Redes de Datos Redes de Area local Descripcin de la practica
El estudiante debe instalar una maquina virtual y Jcretor JE en su casa, este software debe ser bajado a travs de internet de la pgina Sum Macrosystem El estudiante debe bajar la Gua de Laboratorio para la prctica de la Plataforma campus Virtual del curso Acadmico de Programacin Orientada a Objetos. El estudiante mediante la herramienta de copiar y pegar debe practicar los diferentes ejercicios propuestos en esta gua para que vaya adquiriendo destreza en el lenguaje de programacin Java. El estudiante debe de estar en capacidad de investigar los diferentes cdigos de java ya que todos los ejercicios que propone la gua de laboratorio estn propuestos java.swing.*, o ambiente grafico y el estudiante debe tener las condiciones de pasarlo en java.io.*, o ambiente en cdigo de lnea

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS todos los propuestos en estas.

Recursos a utilizar en la prctica (Equipos / instrumentos)


Computadores Modernos con buena Configuracin y con software licenciado

Software a utilizar en la practica


Instalacin de la maquina virtual e Instancian del Jcreator LE, de la casa Sum Macrosystem

Metodologa
Conocimiento previo para el desarrollo de la prctica. El estudiante de ver el Curso Acadmico de Programacin Orientada a Objetos tiene que tener buenas bases de Algoritmos, Introduccin a Programacin, Estructura de Datos, Bases de Datos, Redes de Comunicacin, Forma de trabajo: El estudiante analizara primero todo los programas propuestos por el tutor de laboratorio los cuales estn analizados, diseados y desarrollados completamente listos para que su cdigo sea copiado y pegado en JAVA y luego ser ejecutados, luego el estudiante de haber analizado el cdigo se enfrentara a la tarea de desarrollar una serie de programas por s solo. Procedimiento: El Estudiante debe investigar como puede hacer estos mismos programas utilizando las libreras import java.io.* y applet

Sistema de Evaluacin El sistema de evaluacin estar a cargo de los tutores de Laboratorio ya que ellos son autnomos de calificar bien sea en grupos o de forma individual el trabajo realizado en los laboratorios Informe o productos a entregar Los estudiantes debe entregar los ejercicios propuestos en la gua de laboratorio en java.io.*; y applet Rbrica de evaluacin

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA "UNAD"


ESCUELA CIENCIAS BASICAS TECNOLOGIA E INGENIERIA PROGRAMA INGENIERIA DE SISTEMAS

Practica 04 Redes de Comunicacin y Computacin Grafica con Java Utilizando Jcretor LE


Rbrica de Evaluacin:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

tem Evaluado

Valoracin Baja

Valoracin Media

Valoracin Alta

Mximo Puntaje

Estructura del Programa codificado en Jcreator LE

Programas sin formato (0)

Programas sin ejecutables (2)

Programas ejecutables (3)

Redaccin y Ortografa documentacin del programa

Programas No documentado (0)

Programas Medio documentado (2)

Programas Bien documentado (3)

Fines del programa

Programa no cumple con lo sugerido (0)

Programa regular con lo sugerido (7)

Programa Cumple con lo sugerido (15)

TOTAL DE PUNTOS POSIBLES

Nota: Estudiante que no se presente al componente practico en las fechas propuestas por los diferentes Cead o Ceres y que no desarrollen las guas propuestas para estos laboratorios, tendr una nota total de CERO: (0)

Retroalimentacin La retroalimentacin de los diferentes productos entregados en el laboratorio sern evaluados por el tutor de laboratorio directamente ya que el es el encargo de entregar la nota del 30 % con respecto al componente practico.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Ejercicios Propuestos por el tutor:


Gua de Laboratorio Comunicacion utilizando el lenguaje de programacin Java trabajos con java.swing.*; o ambiente grafico

Servidor
import java.io.*; import java.net.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Servidor extends JFrame { private JTextField campoIntroducir; private JTextArea areaPantalla; private ObjectOutputStream salida; private ObjectInputStream entrada; private ServerSocket servidor; private Socket conexion; private int contador = 1; // configurar GUI public Servidor() { super( "Servidor" ); Container contenedor = getContentPane(); // crear campoIntroducir y registrar componente de escucha campoIntroducir = new JTextField(); campoIntroducir.setEditable( false ); campoIntroducir.addActionListener( new ActionListener() { // enviar mensaje al cliente public void actionPerformed( ActionEvent evento ) { enviarDatos( evento.getActionCommand() ); campoIntroducir.setText( "" ); } } ); contenedor.add( campoIntroducir, BorderLayout.NORTH ); // crear areaPantalla areaPantalla = new JTextArea(); contenedor.add( new JScrollPane( areaPantalla ), BorderLayout.CENTER ); setSize( 300, 150 ); setVisible( true ); } // fin del constructor de Servidor // configurar y ejecutar el servidor public void ejecutarServidor() { // configurar servidor para que reciba conexiones; procesar las conexiones try { // Paso 1: crear un objeto ServerSocket. servidor = new ServerSocket( 12345, 100 );

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
while ( true ) { try { esperarConexion(); // Paso 2: esperar una conexin. obtenerFlujos(); // Paso 3: obtener flujos de entrada y salida. procesarConexion(); // Paso 4: procesar la conexin. } // procesar excepcin EOFException cuando el cliente cierre la conexin catch ( EOFException excepcionEOF ) { System.err.println( "El servidor termin la conexin" ); } finally { cerrarConexion(); // Paso 5: cerrar la conexin. ++contador; } } // fin de instruccin while } // fin del bloque try // procesar problemas con E/S catch ( IOException excepcionES ) { excepcionES.printStackTrace(); } } // fin del mtodo ejecutarServidor // esperar que la conexin llegue, despus mostrar informacin de la conexin private void esperarConexion() throws IOException { mostrarMensaje( "Esperando una conexin\n" ); conexion = servidor.accept(); // permitir al servidor aceptar la conexin mostrarMensaje( "Conexin " + contador + " recibida de: " + conexion.getInetAddress().getHostName() ); } // obtener flujos para enviar y recibir datos private void obtenerFlujos() throws IOException { // establecer flujo de salida para los objetos salida = new ObjectOutputStream( conexion.getOutputStream() ); salida.flush(); // vaciar bfer de salida para enviar informacin de encabezado // establecer flujo de entrada para los objetos entrada = new ObjectInputStream( conexion.getInputStream() ); mostrarMensaje( "\nSe recibieron los flujos de E/S\n" ); } // procesar la conexin con el cliente private void procesarConexion() throws IOException { // enviar mensaje de conexin exitosa al cliente String mensaje = "Conexin exitosa"; enviarDatos( mensaje ); // habilitar campoIntroducir para que el usuario del servidor pueda enviar mensajes establecerCampoTextoEditable( true ); do { // procesar los mensajes enviados por el cliente // leer el mensaje y mostrarlo en pantalla try { mensaje = ( String ) entrada.readObject(); mostrarMensaje( "\n" + mensaje ); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
// atrapar problemas que pueden ocurrir al tratar de leer del cliente catch ( ClassNotFoundException excepcionClaseNoEncontrada ) { mostrarMensaje( "\nSe recibi un tipo de objeto desconocido" ); } } while ( !mensaje.equals( "CLIENTE>>> TERMINAR" ) ); } // fin del mtodo procesarConexion // cerrar flujos y socket private void cerrarConexion() { mostrarMensaje( "\nFinalizando la conexin\n" ); establecerCampoTextoEditable( false ); // deshabilitar campoIntroducir try { salida.close(); entrada.close(); conexion.close(); } catch( IOException excepcionES ) { excepcionES.printStackTrace(); } } // enviar mensaje al cliente private void enviarDatos( String mensaje ) { // enviar objeto al cliente try { salida.writeObject( "SERVIDOR>>> " + mensaje ); salida.flush(); mostrarMensaje( "\nSERVIDOR>>> " + mensaje ); } // procesar problemas que pueden ocurrir al enviar el objeto catch ( IOException excepcionES ) { areaPantalla.append( "\nError al escribir objeto" ); } } // mtodo utilitario que es llamado desde otros subprocesos para manipular a // areaPantalla en el subproceso despachador de eventos private void mostrarMensaje( final String mensajeAMostrar ) { // mostrar mensaje del subproceso de ejecucin despachador de eventos SwingUtilities.invokeLater( new Runnable() { // clase interna para asegurar que la GUI se actualice apropiadamente public void run() // actualiza areaPantalla { areaPantalla.append( mensajeAMostrar ); areaPantalla.setCaretPosition( areaPantalla.getText().length() ); } } // fin de la clase interna ); // fin de la llamada a SwingUtilities.invokeLater } // mtodo utilitario que es llamado desde otros subprocesos para manipular a // campoIntroducir en el subproceso despachador de eventos private void establecerCampoTextoEditable( final boolean editable ) { // mostrar mensaje del subproceso de ejecucin despachador de eventos SwingUtilities.invokeLater( new Runnable() { // clase interna para asegurar que la GUI se actualice apropiadamente

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
public void run() // establece la capacidad de modificar a campoIntroducir { campoIntroducir.setEditable( editable ); } } // fin de la clase interna ); // fin de la llamada a SwingUtilities.invokeLater } public static void main( String args[] ) { Servidor aplicacion = new Servidor(); aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); aplicacion.ejecutarServidor(); } } // fin de la clase Servidor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

Cliente
import java.io.*; import java.net.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Cliente extends JFrame { private JTextField campoIntroducir; private JTextArea areaPantalla; private ObjectOutputStream salida; private ObjectInputStream entrada; private String mensaje = ""; private String servidorChat; private Socket cliente; // inicializar servidorChat y configurar GUI public Cliente( String host ) { super( "Cliente" ); servidorChat = host; // establecer el servidor al que se va a conectar este cliente Container contenedor = getContentPane(); // crear campoIntroducir y registrar componente de escucha campoIntroducir = new JTextField(); campoIntroducir.setEditable( false ); campoIntroducir.addActionListener( new ActionListener() { // enviar mensaje al servidor public void actionPerformed( ActionEvent evento ) { enviarDatos( evento.getActionCommand() ); campoIntroducir.setText( "" ); } } ); contenedor.add( campoIntroducir, BorderLayout.NORTH ); // crear areaPantalla areaPantalla = new JTextArea(); contenedor.add( new JScrollPane( areaPantalla ), BorderLayout.CENTER ); setSize( 300, 150 ); setVisible( true ); } // fin del constructor de Cliente // conectarse al servidor y procesar mensajes del servidor private void ejecutarCliente() { // conectarse al servidor, obtener flujos, procesar la conexin try { conectarAServidor(); // Paso 1: crear un socket para realizar la conexin obtenerFlujos(); // Paso 2: obtener los flujos de entrada y salida procesarConexion(); // Paso 3: procesar la conexin } // el servidor cerr la conexin catch ( EOFException excepcionEOF ) { System.err.println( "El cliente termino la conexin" ); }

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
// procesar los problemas que pueden ocurrir al comunicarse con el servidor catch ( IOException excepcionES ) { excepcionES.printStackTrace(); } finally { cerrarConexion(); // Paso 4: cerrar la conexin } } // fin del mtodo ejecutarCliente // conectarse al servidor private void conectarAServidor() throws IOException { mostrarMensaje( "Intentando realizar conexin\n" ); // crear Socket para realizar la conexin con el servidor cliente = new Socket( InetAddress.getByName( servidorChat ), 12345 ); // mostrar la informacin de la conexin mostrarMensaje( "Conectado a: " + cliente.getInetAddress().getHostName() ); } // obtener flujos para enviar y recibir datos private void obtenerFlujos() throws IOException { // establecer flujo de salida para los objetos salida = new ObjectOutputStream( cliente.getOutputStream() ); salida.flush(); // vacar bfer de salida para enviar informacin de encabezado // establecer flujo de entrada para los objetos entrada = new ObjectInputStream( cliente.getInputStream() ); mostrarMensaje( "\nSe recibieron los flujos de E/S\n" ); } // procesar la conexin con el servidor private void procesarConexion() throws IOException { // habilitar campoIntroducir para que el usuario del cliente pueda enviar mensajes establecerCampoTextoEditable( true ); do { // procesar mensajes enviados del servidor // leer mensaje y mostrarlo en pantalla try { mensaje = ( String ) entrada.readObject(); mostrarMensaje( "\n" + mensaje ); } // atrapar los problemas que pueden ocurrir al leer del servidor catch ( ClassNotFoundException excepcionClaseNoEncontrada ) { mostrarMensaje( "\nSe recibi un objeto de tipo desconocido" ); } } while ( !mensaje.equals( "SERVIDOR>>> TERMINAR" ) ); } // fin del mtodo procesarConexion // cerrar flujos y socket private void cerrarConexion() { mostrarMensaje( "\nCerrando conexin" ); establecerCampoTextoEditable( false ); // deshabilitar campoIntroducir try { salida.close(); entrada.close();

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
cliente.close(); } catch( IOException excepcionES ) { excepcionES.printStackTrace(); } } // enviar mensaje al servidor private void enviarDatos( String mensaje ) { // enviar objeto al servidor try { salida.writeObject( "CLIENTE>>> " + mensaje ); salida.flush(); mostrarMensaje( "\nCLIENTE>>> " + mensaje ); } // procesar los problemas que pueden ocurrir al enviar el objeto catch ( IOException excepcionES ) { areaPantalla.append( "\nError al escribir el objeto" ); } } // mtodo utilitario que es llamado desde otros subprocesos para manipular a // areaPantalla en el subproceso despachador de eventos private void mostrarMensaje( final String mensajeAMostrar ) { // mostrar mensaje del subproceso de ejecucin de la GUI SwingUtilities.invokeLater( new Runnable() { // clase interna para asegurar que la GUI se actualice apropiadamente public void run() // actualiza areaPantalla { areaPantalla.append( mensajeAMostrar ); areaPantalla.setCaretPosition( areaPantalla.getText().length() ); } } // fin de la clase interna ); // fin de la llamada a SwingUtilities.invokeLater } // mtodo utilitario que es llamado desde otros subprocesos para manipular a // campoIntroducir en el subproceso despachador de eventos private void establecerCampoTextoEditable( final boolean editable ) { // mostrar mensaje del subproceso de ejecucin de la GUI SwingUtilities.invokeLater( new Runnable() { // clase interna para asegurar que la GUI se actualice apropiadamente public void run() // establece la capacidad de modificar campoIntroducir { campoIntroducir.setEditable( editable ); } } // fin de la clase interna ); // fin de la llamada a SwingUtilities.invokeLater } public static void main( String args[] ) { Cliente aplicacion; if ( args.length == 0 ) aplicacion = new Cliente( "127.0.0.1" ); else aplicacion = new Cliente( args[ 0 ] );

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); aplicacion.ejecutarCliente(); } } // fin de la clase Cliente

Ejercicios a Realizar por el Estudiante:


El estudiante despus de adquirir destreza y conocimiento acerca de lenguaje de programacin JAVA en comunicaciones el estudiante de elaborar un programa que no solo enva mensajes a travs del servidor y cliente sino que puedan enviar archivos acjuntos, crear un gragicador en 3d

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA COMPONENTE PRCTICO DEL CURSO: 301403 PROGRAMACION ORIENTADA A OBJETOS

7. FUENTES DOCUMENTALES
Curso Acadmico Modulo Programacin Orientada a Objetos Libros de la Biblioteca Virtual de Unad en Programacin Orientada a Objetos Consulta de Internet Programacin Orientada a Objetos Autor: Deitel y Deitel Introduccin DOO con UML y los Patrones de Diseo JDBC tm, SERVLETS, JSP tm Editorial Pearson Prentice Hall Quinta Edicin. David Arnow Gerald Weiss Introduccin a la Programacin con Java tm Actualizacin a la Versin 2 de Java Editorial Addison Wesley. Fcd Javier Ceballos Java 2 Curso de Programacin 2 Edicin Editorial Alfaomega Ra-Ma. Agustin Froute Java 2 Manual Usuario tutorial 3 Edicin Editorial Alfaomega Ra-Ma 5. Herbert shildt Fundamentos de Programacin Java 2 Editorial Mc Graw Hill . para conocer el lenguaje de programacin JAVA. Arnow, D., Weiss, G., Introduccin a la programacin con JAVA, Addison wesley, 2000. Larman, C., UML y patrones, Prentice Hall, 1998. Meyer, B., Construccin de software orientado a objetos, Prentice Hall, segunda edicin, 1997. Wu, T., Introduccin a la programacin orientada a objetos con Java, Mc Graw Hill, 2000. Joyanes, L., Programacin orientada a objetos, Segunda edicin, Mc Graw Hill, 1998. Grez Voss, Introduccin Orientada a Objetos, Editorial Mc Graw Hill, 1994. Joyanes, L., C++ a su alcance un enfoque orientada a objetos, Editorial, Mc Graw Hill, 1994. Cesar Becerra Santamara, C++ Una Herramienta para la Programacin Orientada a Objetos, Editorial Mc Graw Hill, 1.993. Fco Javier Ceballos, Programacin Orientada a Objetos con C++,Editorial Alfaomega, 1.998. Nathan Meyers, Programacin JAVA en Linux, Editorial Prentice Hall, 2.000. www.lawebdelprogramador.com www.programacion.com http://www.cimat.mx/~jlabreu/CursoJava/ http://www.mindview.net/Books/TIJ

http://java.sun.com/docs/books/tutorial/ http://programacion.com/java/tutoriales/

También podría gustarte