universidad nacional abierta ya distancia

Anuncio
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
GUIA COMPONENTE PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
GUÍA COMPONENTE PRÁCTICO
301403 – PROGRAMACION ORIENTADA A OBJETOS
CESAR ORLANDO JIMENEZ ANGARITA
(Director Nacional)
Zona: Centro Bogotá Cundinamarca,
Cead: José Acevedo y Gómez
Enero 2013
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
GUIA COMPONENTE PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
2. ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO
Curso Académico Modulo Programación Orientada a Objetos
Libros de la Biblioteca Virtual de Unad en Programación Orientada a Objetos
Consulta de Internet Programación Orientada a Objetos
Autor: Deitel y Deitel Introducción DOO con UML y los Patrones de Diseño JDBC tm, SERVLETS,
JSP tm Editorial Pearson Prentice Hall Quinta Edición.
David Arnow Gerald Weiss Introducción a la Programación con Java tm Actualización a la Versión
2 de Java Editorial Addison Wesley.
Fcd Javier Ceballos Java 2 Curso de Programación 2 Edición Editorial Alfaomega Ra-Ma.
Agustin Froute Java 2 Manual Usuario tutorial 3 Edición Editorial Alfaomega Ra-Ma 5.
Herbert shildt Fundamentos de Programación Java 2 Editorial Mc Graw Hill . para conocer el
lenguaje de programación JAVA.
Arnow, D., Weiss, G., Introducción a la programación con JAVA, Addison wesley, 2000.
Larman, C., UML y patrones, Prentice Hall, 1998.
Meyer, B., Construcción de software orientado a objetos, Prentice Hall, segunda edición, 1997.
Wu, T., Introducción a la programación orientada a objetos con Java, Mc Graw Hill, 2000.
Joyanes, L., Programación orientada a objetos, Segunda edición, Mc Graw Hill, 1998.
Grez Voss, Introducción 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 Santamaría, C++ Una Herramienta para la Programación Orientada a Objetos,
Editorial Mc Graw Hill, 1.993.
Fco Javier Ceballos, Programación Orientada a Objetos con C++,Editorial Alfaomega, 1.998.
Nathan Meyers, Programación 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 PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
3. INDICE DE CONTENIDO
Pág.
1. PRESENTACION
1
2. ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO
2
3. INDICE DE CONTENIDO
3
4. LISTADO DE TABLAS
4
5. CARACTERÍSTICAS GENERALES
5
6. DESCRIPCIÓN DE PRÁCTICAS
8
PRACTICA No. 01 – Estructuras no dinámicas Utilizando Java Eclipse
8
Ejercicios Propuestos por el tutor:
11
Ejercicios a Realizar por el Estudiante:
36
PRACTICA No. 02 – Estructuras dinámicas Utilizando Java Eclipse
37
Ejercicios Propuestos por el tutor:
40
Ejercicios a Realizar por el Estudiante:
73
PRACTICA No. 03 – Base de Datos Modelo Relacional entidad Relación Access
Utilizando Java Eclipse.
74
Ejercicios Propuestos por el tutor:
76
Ejercicios a Realizar por el Estudiante:
106
PRACTICA No. 04 – Redes Encriptamiento y Desincriptamiento de un dato, Chat
cliente Servidor, computacion Grafica Utilizando Java Eclipse
109
Ejercicios Propuestos por el tutor:
Ejercicios a Realizar por el Estudiante:
111
119
120
7. Fuentes Documentales
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
GUIA COMPONENTE PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
5. CARACTERÍSTICAS GENERALES
Introducción
Actualmente una de las áreas más importantes en la industria y el
ámbito académico es la orientación a objetos, el curso que a
continuación se relaciona tiene el nombre de Programación Orientada
a Objetos el cual es teórico – práctico, de 3 créditos y hace parte de la
formación profesional en el programa de Ingeniería de Sistemas.
El curso está compuesto por tres unidades académicas didácticas:
Unidad Uno comprende la introducción y elementos básicos de la
programación orientada a objetos (POO) y las propiedades básicas
de la POO aplicado con JAVA.
Unidad Dos hace referencia al diseño de la estructura y
comportamiento de un objeto y se inicia con los Fundamentos de la
programación en el lenguaje JAVA.
Unidad tres se enfocan en el trabajo con las clases, el manejo de la
herencia y la extensión de las clases aplicado con JAVA.
Justificación
El uso de y aplicaciones de herramientas enfocadas a la POO, hacen
que el profesional en Ingeniería sea capaz de diseñar 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 programación estructurada con la
programación orientada a objetos y enfrentar los retos del cambio, le
permite desarrollar su capacidad de comunicación, y su espíritu
Investigativo y crítico con una lenguaje de programación orientado a
objetos.
Para lograr la apropiación de todo el contenido temático el estudiante
aplicara en todo momento su autoformación y se apoyara en el tutor
para la resolución de dudas, también se tendrán uso de herramientas
tecnológicas para la interacción con los tutores y alumnos dentro de
los laboratorios.
Intencionalidades
formativas
Propósitos:
Dar a conocer a los estudiantes de una forma clara los conceptos
fundamentales de la Programación Orientada a Objetos en JAVA.
Dar a Conocer a los estudiantes las ventajas de aplicar la
Programación Orientada a Objetos ya que simplifica la construcción
de programas y lo motiva para estudiar las características del
lenguaje JAVA.
Capacitar a los estudiantes a comprender y utilizar herramientas de
Programación Orientadas a Objetos como JAVA, para el diseño de
aplicaciones.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
GUIA COMPONENTE PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
Objetivos:
Que el estudiante Describa los conceptos que caracterizan al modelo
Programación Orientada a Objetos Utilizando JAVA.
Que el estudiante Valore en que medida las técnicas Programación
Orientada a Objetos favorecen la calidad del software, analizando
sobre todo cómo facilitan la reutilización y extensibilidad en JAVA.
Que el estudiante entienda la importancia de trabajar Herramientas
Programación Orientadas a Objetos, para el desarrollo de nuevas
aplicaciones empresariales en JAVA.
Que le estudiante Aprenda un lenguaje Programación Orientada a
Objetos, junto a su entorno de programación.
Que el estudiante aplique técnicas de programación Orientada a
Objetos en JAVA.
Que el estudiante identifique analice y diseñe ejemplos de aplicación
en JAVA
Metas:
Al terminar este curso de Programación Orientada a Objetos el
estudiante:
Desarrollara aplicaciones teniendo en cuenta los fundamentos
teóricos, y el manejo de objetos como principal elemento de
Construcción de soluciones en JAVA.
Tendrá la capacidad de analizar, diseñar y desarrollar software
utilizando el entorno de Programación 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 Programación Orientada a Objetos, para poder
analiza, diseñar, desarrollar e implantar aplicaciones más robustas y
con código reutilizable con JAVA.
El estudiante adquiere destrezas en el uso de procedimientos que le
permitan analizar, diseñar y desarrollar aplicaciones haciendo uso de
la programación Orientada a Objetos con JAVA.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
GUIA COMPONENTE PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
El estudiante aprende un lenguaje Programación Orientada a Objetos,
junto a su entorno de programación JAVA.
Denominación de
practicas
Práctica 01: Estructuras no dinámicas Utilizando Java Eclipse
Practica 02: Estructuras dinámicas Utilizando Java Eclipse
Practica 03: Base de Datos Modelo Relacional entidad Relación
Access Utilizando Java Eclipse
Practica 04: Redes Encriptamiento y desincriptamiento de un dato,
Chat cliente Servidor Utilizando Java Eclipse
Practica 05: Computación Grafica 2D y 3D Utilizando Jcreator Java
Eclipse
Número de horas
4 Horas por laboratorio, 4 Cinco Laboratorios, un total 16 Horas
Porcentaje
25 Puntos de la plataforma Campus Virtual
Curso Evaluado por SI___
proyecto
Seguridad
industrial
NO_X_
No Ingresar Alimentos líquidos o sólidos al Laboratorio. Para
que se presente algún corto circuito.
No ingresar fumando al Laboratorio. Para que moleste a los
compañeros.
No ingresar otros aparatos electrónicos como radios, Walkman,
para que no interfieran en el desarrollo del laboratorio.
No Cambiar los computadores de sitio sin autorización 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 PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
6. DESCRIPCIÓN DE PRÁCTICAS
PRACTICA No. 01 – Estructuras no dinámicas con Java Utilizando Jcreator LE
Tipo de practica
Presencial
Otra ¿Cuál
Porcentaje de evaluación
Horas de la practica
Temáticas de la práctica
Intencionalidades
formativas
Autodirigida
Remota
X
25 Puntos Plataforma Campus Virtual
4 Horas Laboratorio ST y 12 Horas Independientes
Estructuras no dinámicas con Java
Utilizando Jcreator LE
Propósito(s):
Desarrollar destreza en los estudiantes de las estructuras no
dinámicas que permitan conceptuar los fundamentos básicos
en el desarrollo programas informáticos mediante la utilización
de un lenguaje de programación Java.
Comprender las técnicas básicas del diseño de Estructuras no
dinámicas en algoritmos y la lógica de programación en Java.
Adquirir destrezas y habilidades en la toma decisiones,
utilizando las estructuras no dinámicas y mediante la mediación
Tutorial, lecturas complementarias, trabajo individual y
cooperativo para el desarrollo de algoritmos en Java.
Codificar estructuras no dinámicas en un lenguaje de
programación diferentes supuestos semánticos y problemas
cotidianos en JAVA.
Meta(s):
El estudiante desarrolla el proyecto y los diferentes talleres en
forma adecuada, utilizando las diferentes técnicas 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 línea de programación de
computadoras con lenguaje de programación JAVA.
El estudiante desarrolla habilidades que lo lleven por el camino
del pensamiento crítico, permitiéndoles aprender, comprender,
practicar y aplicar nueva información, 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 PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
Competencia(s):
El estudiante describe y analiza de manera adecuada y
sistematizada las técnicas y pautas para la construcción y
secuencia de un algoritmo codificado en JAVA.
El estudiante diseña y aplica algoritmos y diagramas de flujo en
la construcción de programas, como técnica principal en la
resolución de un determinado problema en JAVA.
El estudiante mediante lecturas y mediaciones sobre técnicas
de construcción de software analiza, sistematiza y pone en
práctica las buenas practicas de desarrollo de algoritmos y de
programación en lenguaje JAVA.
Fundamentación Teórica:
Estructuras no dinámicas Conceptos, antecedentes y desarrollo de los algoritmos,
Estructuras no dinámicas General de un Algoritmo
Estructuras no dinámicas mediante un lenguaje de programación en JAVA.
Estructuras no dinámicas Arreglos mediante un lenguaje de programación en JAVA
Estructuras no dinámicas Vectores mediante un lenguaje de programación en JAVA
Estructuras no dinámicas Métodos de búsqueda mediante un lenguaje de programación en JAVA
Estructuras no dinámicas Métodos de Ordenamiento mediante un lenguaje de programación en JAVA
Estructuras no dinámicas y Archivos mediante un lenguaje de programación en JAVA
Descripción de la practica:
El estudiante debe instalar una maquina virtual y Java Eclipse en su casa, este software
debe ser bajado a través de internet de la página Sum Macrosystem
El estudiante debe bajar la Guía de Laboratorio para la práctica de la Plataforma campus
Virtual del curso Académico de Programación Orientada a Objetos.
El estudiante mediante la herramienta de copiar y pegar debe practicar los diferentes
ejercicios propuestos en esta guía para que vaya adquiriendo destreza en el lenguaje de
programación Java.
El estudiante debe de estar en capacidad de investigar los diferentes códigos de java ya
que todos los ejercicios que propone la guía de laboratorio están propuestos java.swing.*,
o ambiente grafico y el estudiante debe tener las condiciones de pasarlo en java.io.*, o
ambiente en código de línea todos los propuestos en estas.
Recursos a utilizar en la práctica (Equipos / instrumentos)
Computadores Modernos con buena Configuración y con software licenciado
Software a utilizar en la práctica 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 PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
práctica:
Instalación de la maquina virtual e Instancian del Java Eclipse
Seguridad Industrial:
No Ingresar Alimentos líquidos o sólidos al Laboratorio. Para que se presente algún corto circuito
No ingresar fumando al Laboratorio. Para que moleste a los compañeros
No ingresar otros aparatos electrónicos como radios, Walkman, para que no interfieran en el
desarrollo del laboratorio.
No Cambiar los computadores de sitio sin autorización del monitor del laboratorio.
No desconfigurar los los equipos de computo ya que este presta servicio a toda la comunidad
unadista.
Metodología
Conocimiento previo para el desarrollo de la práctica. El estudiante de ver el Curso Académico de
Programación Orientada a Objetos tiene que tener buenas bases de Algoritmos, Introducción a
Programación, Estructura de Datos, Bases de Datos, Redes de Comunicación,
Forma de trabajo: El estudiante analizara primero todo los programas propuestos por el tutor de
laboratorio los cuales están analizados, diseñados y desarrollados completamente listos para que
su código sea copiado y pegado en JAVA y luego ser ejecutados, luego el estudiante de haber
analizado el código 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 librerías import java.io.* y applet
Sistema de Evaluación
El sistema de evaluación estará a cargo de los tutores de Laboratorio ya que ellos son
autónomos 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 guía de laboratorio en
java.io.*; y applet
Rúbrica de evaluación
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
GUIA COMPONENTE PRÁCTICO 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 dinámicas Utilizando Java Eclipse
Rúbrica de Evaluación:
Ítem
Evaluado
Valoración
Baja
Valoración
Media
Valoración
Alta
Estructura del
Programas sin
formato (0)
Programas sin
ejecutables (4)
Programas
ejecutables (8)
8
Programas No
documentado
(0)
Programas
Medio
documentado
(4)
Programas Bien
documentado
(8)
8
Programa no
cumple con lo
sugerido (0)
Programa
regular con lo
sugerido (4)
Programa
Cumple con lo
sugerido (9)
9
Programa
codificado en
Java Eclipse
Redacción y
Ortografía
documentación
del programa
Fines del
programa
TOTAL DE
PUNTOS
POSIBLES
Máximo
Puntaje
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 guías 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 PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
Retroalimentación
La retroalimentación de los diferentes productos entregados en el laboratorio serán
evaluados por el tutor Plataforma Campus Virtual.
Ejercicios Propuestos por el tutor:
Guía de Laboratorio Estructuras no dinámicas utilizando el lenguaje de programación Java
trabajos con java.swing.*; o ambiente grafico :
Desarrollo del primer taller
Después 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 extensión java), en este caso
LecturaVector.
b. En la Casilla de Texto Location: C:\ o utilice el botón … y seleccione C: (Carpeta Raíz).
c. Pulse el Botón Finish.
3. En la Ventana de Código 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 PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
Menú Build > Compile File
Menú Build > Execute File
1. CAJAS DE DIALOGO
El método showMessageDialog
Este método nos permite mostrar diálogos que muestran un mensaje y contienen un botón de
aceptación. Los parámetro mínimos necesarios dependen del carácter del mensaje aunque general
mente son la ventana padre, el mensaje a mostrar, el título del diálogo y el tipo de mensaje que se
mostrará. En las siguientes figuras podremos ver algunos ejemplos junto al código que lo genera.
JOptionPane.showMessageDialog( null, “Diálogo de información”);
JOptionPane.showMessageDialog( null,
JOptionPane.WARNING_MESSAGE);
JOptionPane.showMessageDialog(
JOptionPane.ERROR_MESSAGE);
null,
“Diálogo
“Diálogo
de
advertencia”,
de
error”,
“Título
“Título
del
del
Mensaje”,
Mensaje”,
El método showInputDialog
Este método nos permite mostrar diálogos estandarizados que nos piden que introduzcamos algún
dato. Al igual que en los métodos anteriores los argumentos que utilizan principalmente son el
mensaje a mostrar, el título, etc. A continuación vemos un ejemplo de uso de este método.
String n = JOptionPane.showInputDialog(null, "Introduce el dato");
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
GUIA COMPONENTE PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
Como podemos observar en el código anterior este método nos devuelve una cadena que contiene
los datos que hemos introducido en el diálogo.
donde las cajas de Dialogo están en el paquete de clases javax.swing, por eso, en la cláusula
import javax.swing.*;
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
GUIA COMPONENTE PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
2. Definiciones de Arreglos
1. Declaración de un arreglo:
int A[]; // A es un arreglo de enteros
int A[10]; // error, el tamaño 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.
Creación de un arreglo
int A[]= new int[10]; // 10 enteros
Subindicación de un arreglo:
A[0], A[1], ..., A[9] // correcto
A[10]
// error, índice fuera
// de rango
3.
Modificación de un arreglo:
A[3]= 8;
4.
Tamaño de un arreglo:
A.length // correcto
A.length() // error, sin paréntesis
5.
Inicialización de un arreglo:
for (int i=0; i<A.length; i++)
A[i]= i;
6.
Asignación de punteros a arreglos
int B[];
B= A;
// A y B son el mismo arreglo
if (A==B) // Comparación de punteros
// true!
...
A[0]= 10;
B[0]
// también 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 PRÁCTICO 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 PRÁCTICO 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 PRÁCTICO 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 PRÁCTICO 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 PRÁCTICO 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 PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
9. IMPLEMENTACION DE CLASES QUE ADMINISTRAN ARREGLOS
9.1. Programa 1. Creación 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 PRÁCTICO 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 PRÁCTICO 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 PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
9.2.. Programa 2. Uso de un Objeto StringBuffer para la presentación 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 PRÁCTICO 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 PRÁCTICO 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 PRÁCTICO 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 PRÁCTICO 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 PRÁCTICO 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 PRÁCTICO 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 PRÁCTICO 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 PRÁCTICO 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 PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
10.5. Programa Simulación 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 PRÁCTICO 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 PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
10.6. Programa Simulación 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 PRÁCTICO 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 PRÁCTICO 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 después de adquirir destreza y conocimiento acerca de lenguaje de
programación JAVA debe realizar todos los programas propuesto por el tutor y debe
pasarlos con código 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 PRÁCTICO DEL CURSO: 301403 – PROGRAMACION ORIENTADA A OBJETOS
7. FUENTES DOCUMENTALES
Curso Académico Modulo Programación Orientada a Objetos
Libros de la Biblioteca Virtual de Unad en Programación Orientada a Objetos
Consulta de Internet Programación Orientada a Objetos
Autor: Deitel y Deitel Introducción DOO con UML y los Patrones de Diseño JDBC tm, SERVLETS,
JSP tm Editorial Pearson Prentice Hall Quinta Edición.
David Arnow Gerald Weiss Introducción a la Programación con Java tm Actualización a la Versión
2 de Java Editorial Addison Wesley.
Fcd Javier Ceballos Java 2 Curso de Programación 2 Edición Editorial Alfaomega Ra-Ma.
Agustin Froute Java 2 Manual Usuario tutorial 3 Edición Editorial Alfaomega Ra-Ma 5.
Herbert shildt Fundamentos de Programación Java 2 Editorial Mc Graw Hill . para conocer el
lenguaje de programación JAVA.
Arnow, D., Weiss, G., Introducción a la programación con JAVA, Addison wesley, 2000.
Larman, C., UML y patrones, Prentice Hall, 1998.
Meyer, B., Construcción de software orientado a objetos, Prentice Hall, segunda edición, 1997.
Wu, T., Introducción a la programación orientada a objetos con Java, Mc Graw Hill, 2000.
Joyanes, L., Programación orientada a objetos, Segunda edición, Mc Graw Hill, 1998.
Grez Voss, Introducción 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 Santamaría, C++ Una Herramienta para la Programación Orientada a Objetos,
Editorial Mc Graw Hill, 1.993.
Fco Javier Ceballos, Programación Orientada a Objetos con C++,Editorial Alfaomega, 1.998.
Nathan Meyers, Programación 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/
Descargar