You are on page 1of 28

UNIVERSIDAD POLITCNICA DE TULANCINGO UPT

Tpicos de Programacin Orientada a Objetos


Carpeta de evidencias 1er Parcial

Alumno.- Uriel Amador Islas Catedrtico.- Ing. Juan Antonio Crdenas Carrera.- Ingeniera en Sistemas Computacionales Grupo.- ISC 54 Feche entrega.- 30/01/2014

INDICE 1.1 Examen Diagnostico 1.2 Archivo 1.3 Clase File 1.4 Clase FileWriter 1.5 Clase PrintWriter 1.6 Clase FileReader 1.7 Clase BufferedReader 1.8 Clase BufferedWriter 1.9 Clase InputStreamReader 1.10 Clase ObjectInputStream y ObjectOutputStream 1.11 Clase FileInputStream y FileOutputStream 1.12 Serializable 1.13 1er Programa 1.14 2do Programa 1.15 3er Programa 1.16 4to Programa 1.17 5to Programa 1.18 6to Programa 1.19 7mo Programa

1.1 Examen diagnostico.1. Qu es una estructura de datos? Es un conjunto de datos elementales para facilitar la manipulacin de informacin. 2. Qu son los arreglos? Son una coleccin de variables del mismo tipo. 3. Qu son los registros? Son espacios fsicos dentro del microprocesador con capacidad de 4 bits hasta 64 bits. 4. Cmo a los campos individuales de un registro? Tendramos que mandar llamar al mtodo que se encuentra en una clase, para mostrar el dato en pantalla. 5. Cules son los mtodos de asignacin de memoria? -Segmentacin y -Paginacin 6. Qu son los punteros? Es una variable cuyo valor es una direccin de memoria. 7. Qu es una pila? Es una lista estructurada de tipo LIFO donde el primero en entrar es el primero en salir. 8. Enlista los tipos de pilas.9. Qu es una lista enlazada? Despliega los datos almacenados en el arreglo con ayuda de un segundo arreglo llamado ndice. 10. Enliste las operaciones que pueden realizarse en una lista enlazada.1) Recorrido (inicio, info, ndice)

2) Apuntador (inicio) 3) Repetir mientras apuntador != Null 4) Imprimir info [apuntador] 5) Apuntador (ndice) 6) Fin del ciclo 7) Salir 11. Qu es una lista doblemente enlazada? Lista enlazada de nodos, donde cada nodo tiene un par de campos de enlace. 12. Qu es un nodo dummy? Es el primer nodo y se considera falso. 13. Cmo verificar una funcin o procedimiento recursivo? Con mtodos de directa o indirecta o de condicin de corte. 14. Cmo determinar si un problema puede resolverse recursivamente? Si es posible resolverse con un ciclo o si estn diseados para que sean recursivos. 15. Cmo funcionan los arboles? Cuando hay cero nodos se dice que el rbol est vaco, en caso contrario en un nodo denominado raz, el cual tiene 0 o ms referencias. 16. Cules son los tipos de rboles? Binario y generales. 17. Qu es un rbol binario de bsqueda? Tiene la propiedad de que los elementos en el subrbol izquierdo de cualquier nodo x son menores, y el subrbol derecho son mayores. 18. Qu es un rbol binario de expresin? Es un rbol construido con subrboles, mediante expresiones matemticas.

19.

Ejemplifique los tipos de recorrido de un rbol binario.-

20. Cmo obtener la expresin aritmtica a partir de un rbol binario? Mediante mtodos, como un compilador o algoritmo. 21. Describe la diferencia entre los mtodos de bsqueda secuencial y bsqueda lineal.El secuencial busca casilla por casilla y el lineal busca desde el centro del arreglo.

1.2 Archivo.Es un grupo de datos estructurados que son almacenados en algn medio de almacenamiento y pueden ser usados por las aplicaciones/programas. Desde el punto de vista de ms bajo nivel, un archivo se define como: Un conjunto de bits almacenados en un dispositivo, y accesible a travs de un camino de acceso que lo identifica.

1.3 Clase File.La clase File permite crear y abrir rutas y/o archivos. Y se declara: File objeto=new File("c:/ficheros/archivo.txt"); Mtodos.mkdir() = crea el directorio. createNewFile() = crea el archivo. getName() = devuelve el nombre del archivo. AbsolutePath() = devuelve la ruta donde se almaceno el archivo. Delete() = elimina el archivo/ruta. renameTo() = cambia el nombre del archivo. canRead() = devuelve falso/verdadero si el archivo se puede leer.

1.4 Clase FileWriter.La clase FileWriter permite tener acceso al fichero en modo escritura. FileWriter objeto1=new FileWriter(objeto, true); El colocar el true al lado del objeto permite sobrescribir el archivo sin borrarle informacin.

Mtodos.Writer() = escribe en el archivo. Close() = cierra la escritura y transfiere la informacin que se escribi en la RAM.

1.5 Clase PrintWriter.La clase PrintWriter permite escribir caracteres en el fichero de la misma forma que en la pantalla. Y se crea a partir de la clase FileWriter. PrintWriter objeto2=new PrintWriter(objeto1); Mtodos.Flush() = asegura que la informacin quede guardada en el archivo. Print() = escribe en el archivo. Println() = escribe en el archivo con salto de lnea.

1.6 Clase FileReader.La clase FileReader permite tener acceso al fichero en modo lectura. FileReader objeto3 = new FileReader(objeto1); Mtodos.Read() = lee el archivo, carcter por carcter. readLine() = lee el archivo lnea por lnea.

1.7 Clase BufferedReader.La clase BufferedReader permite la lectura del archivo, de tipo String. BufferedReader objeto4=new BufferedReader(objeto3);

1.8 Clase BufferedWriter.La clase BufferedWriter permite la escritura en archivos, de tipo String. BufferedWriter objeto5=new BufferedWriter(objeto1); Mtodos.newLine() = genera el salto de lnea. Write() = permite escribir en el archivo desde el teclado.

1.9 Clase InputStreamReader.La clase InputStreamReader permite leer archivos, pero los lee en bytes y el Reader los convierte en caracteres. InputStreamReader (System.in); objeto6=new InputStreamReader

1.10 Clase ObjectInputStream y ObjectOutputStream.El flujo de entrada/salida es el que procesa los datos y se ha de vincular a un objeto fileIn/fileOut de la clase FileInputStream/FileOutputStream. ObjectInputStream entrada=new ObjectInputStream(fileIn); ObjectOutputStream salida=new ObjectOutputStream(fileOut); o en una sla lnea ObjectInputStream entrada=new ObjectInputStream(new FileInputStream("object.obj")); ObjectOutputStream salida=new ObjectOutputStream(new FileOutputStream(object.obj")); Mtodos.writerObject() = escribe en el objeto de flujo de salida. readObject() = lee el objeto de flujo de entrada en el mismo orden de entrada.

1.11 Clase FileInputStream y FileOutputStream.Crea un flujo de entrada/salida a disco, pasndole el nombre del archivo en disco o un objeto de la clase File. FileInputStream fileIn=new FileInputStream("object.obj"); FileOutputStream fileOut=new FileOutputStream("object.obj");

1.12 Serializable.Un objeto se puede serializar si implementa el interface Serializable. Este interface no declara ninguna funcin miembro, se trata de un interface vaco.

1.13 1er Programa.Generar la tabla de multiplicar asignndole el valor por default.


package tablademultiplicar; import java.util.Scanner; public class Multiplicacion { //creamos tres variables de tipo entero... public int n; public int i; public int res; //metodo donde se realizan las operaciones de multiplicacion... public void Operacion() { //ciclo para que aumente el valor a multiplicar... for (i=0; i<=10; i++) { //numero de la tabla... n=2;

//operacion para mostrar el resultado de la multiplicacion... res = n * i; //imprime en pantalla los valores System.out.println(n + " * " + i + " = " + res); } } }

1.14 2do Programa.Crear un programa que cree el fichero y muestre los distintos mtodos que se pueden utilizar.
package ejemplo2; import java.io.*; public class Fichero { void crearFichero() throws IOException{ File f = new File("C://ejemplo");//ruta para guardar o abrir el fichero f.mkdir();//crea un directorio //nombre del fichero a guardar en la ruta antes declarada... File fichero=new File(f,"Fichero.txt"); //File fichero2=new File(f,"Ficheo.txt"); fichero.createNewFile(); //===>crea el fichero //Metodos para checar si se pueden leer ficheros y/o rutas... if(fichero.exists()) { System.out.println("Si se puede leer..."); //System.out.println("Se creo el archivo..."); } else { System.out.println("No se puede leer..."); //System.out.println("Solo se modifico el archivo...");

//imprimir el nombre del fichero... System.out.println(fichero.getName());

//Imprimir la ruta del fichero.. System.out.println(fichero.getAbsolutePath());

//Elimina el fichero... System.out.println(fichero.delete());

//Elimina la ruta del fichero... System.out.println(f.delete());

//Sobreescribe el nombre del ficero... System.out.println(fichero.renameTo(fichero2)); }

1.15 3er Programa.package ejercicio2; import java.io.*; public class Ficheros { void crearFicheros() throws IOException{ File fi=new File("D:\\ejemplo2"); //se crea el directorio del archivo a guardar fi.mkdir();//genera el directorio File fi2=new File(fi,"archivo1.jpg");//crea el archivo a guardar de tipo jpg //condicin para ir agregando archivos a la ruta principal... if(fi2.createNewFile()){// se crea el primer archivo si es que no existe...

} else{//se crea una segunda carpeta y otro archivo, si ya se creo por primera vez el directorio File fi3=new File(fi,"/ejemplo3");//se crea el directorio fi3.mkdir();//se genera la ruta File fi4=new File(fi3,"archivo2.pdf");//se crea el archivo a guardar de tipo pdf if(fi4.createNewFile()){//si no existe lo genera } else{//se crea 2 archivos mas, si ya se creo la segunda carpeta con el archivo File fi5=new File(fi3,"archivo3.txt");//crea el arcivo a guardar de tipo txt fi5.createNewFile();// crea el archivo File fi6=new File(fi3,"archivo4.docx");//crea el arcivo a guardar de tipo docx fi6.createNewFile();// crea el archivo } } } }

1.16 4to Programa.Clase Escribir.package ejemplo4; import java.io.*; import java.io.FileWriter; public class Escribir { void Escribir()throws IOException{ File f=new File("E:\\ejercicio2.txt");//abre el archivo //crea el objeto para leer y escribir en el archivo sin borrar lo que tiene FileWriter fw = new FileWriter(f,true); //crea el objeto para introducir texto en el archivo BufferedWriter bw = new BufferedWriter(fw);

//escribe en el archivo bw.write("Esta es una linea de codigo..."); bw.close();//cierra y permite la escritura en el archivo } }

Clase EscribirTeclado.package ejemplo4; import java.io.*; import java.util.Scanner; public class EscribirTeclado { void EscTeclado()throws IOException{ Scanner esc=new Scanner(System.in);//crea el objeto para escribir mediante teclado File f=new File("E:\\ejercicio3.txt");//busca el archivo en la ruta epacificada String tec;//crea la variable tec de tipo cadena //crea el obbjeto para leer el archivo y pide que aniada al archivo FileWriter fw = new FileWriter(f,true); //crea el obbjeto para escribir en el archivo PrintWriter pw = new PrintWriter(fw); //pide escribir por teclado y se finaliza con un enter pw.println(tec=esc.nextLine()); pw.close();//metodo para cerrar e imprimir en el archivo } }

Clase Metodo2.package ejemplo4; import java.io.*; public class Metodo2 { void MetEscritura2(){ try{ // Abrimos el archivo... FileInputStream abrir = new FileInputStream("E:\\archivo3.txt");

// Creamos el objeto de entrada, donde va almacenar // la informacion del fichero... DataInputStream informacion = new DataInputStream(abrir); // Creamos el Buffer de Lectura... BufferedReader buffer InputStreamReader(informacion)); String imprimirLinea; // Leer el archivo linea por linea... while ((imprimirLinea = buffer.readLine()) != null) { // Imprimimos la lnea por pantalla System.out.println (imprimirLinea); } // Cerramos el archivo que almacena la informacion... informacion.close(); }catch (Exception e){ //Catch de excepciones... System.err.println("Ocurrio un error: " + e.getMessage());//imprime un error } } } = new BufferedReader(new

1.17 5to Programa.Desarrollar una aplicacin en java utilizando ficheros donde: 1.- Imprimir las tablas de multiplicacin del 1 al 10, generadas mediante cdigo y utilizando ciclos. 2.- Generar una base de datos donde se puedan guardar nombre, telfono, direccin y correo electrnico, dichos datos se tendrn que pedir al usuario, en tiempo de ejecucin, almacenando por lo menos 10 registros; cabe sealar que cada inciso tendra que generarse en diferentes clases pero en un mismo proyecto.

Clase BD.package aplicacionmenu;

import java.io.*; import java.util.Scanner; public class BD { void Datos()throws IOException{ File f=new File("C:\\Users\\darklove\\Desktop\\Aplicacion_Menu"); f.mkdir(); File f2=new File(f,"BD.txt"); f2.createNewFile(); FileWriter fw=new FileWriter(f2,true); BufferedWriter bw=new BufferedWriter(fw); Scanner leer=new Scanner(System.in); int a=1; //ciclo do while() par que haga primero y despues de //un determinado numero (10) pida si quiere agregar //mas contactos do{ System.out.print("Introduce tu nombre: "); String nom; //introduce datos desde teclado nom=leer.next(); System.out.print("Introduce tu telefono: "); int tel; tel=leer.nextInt(); System.out.print("Introduce tu direccion: "); String direc; direc=leer.next(); System.out.print("Introduce tu correo electronico: "); String correo; correo=leer.next(); //escribe mediante teclado bw.write("Nombre: //realiza un salto de linea " + nom);

bw.newLine(); bw.write("Telefono: bw.newLine(); bw.write("Direccion: bw.newLine(); bw.write("Correo Electronico: " + correo); bw.newLine(); bw.newLine(); //condicional para agregar mas contactos if(a==10){ System.out.println("Quieres introducir mas registros?\n1-si\n2-no"); int b; b=leer.nextInt(); if(b==1){ System.out.println("Introduce el numero de registros qu deseas registrar?"); int c; c=leer.nextInt(); //operacion para restarle al valor de a que lleva el conteo //de los registro introducidos a=a-c; } else if(b!=1 && b!=2){ System.out.print("Error..."); } } //incremento de los registros en +1 a++; }while(a<=10); bw.close(); //metodo para regresar al menu con un if... System.out.println("Regresar al menu?\n1-si\n0-no"); int x; " + direc); " + tel);

x=leer.nextInt(); if(x==1){ Menu m=new Menu(); m.Menu(); } else if(x!=1 && x!=0){ System.out.println("Error...\nSaliendo del programa..."); } else{ System.out.println("Saliendo del programa..."); } } }

Clase Menu.package aplicacionmenu; import java.io.*; import java.util.Scanner; public class Menu { void Menu()throws IOException{ Scanner leer=new Scanner(System.in); System.out.println("Selecciona una opcion:\n1 - Tablas de multiplicar del 1 al 10..." + "\n2 - Base de Datos..."); int a; //variable para seleccionar opciones a=leer.nextInt(); //opciones para relaizar... switch(a){ case 1: System.out.println(" Tablas de multiplicar");

Tablas tab=new Tablas(); //manda llamar el metodo Multiplicar de la clase Tablas

tab.Multiplicar(); break; case 2: System.out.println(" BD bd=new BD(); //manda llamar el metodo Datos() de la clase BD bd.Datos(); break; default: System.out.println("Error..."); break; } } Base de Datos");

Clase Tablas.package aplicacionmenu; import java.io.*; import java.util.Scanner; public class Tablas { void Multiplicar()throws IOException{ Scanner leer=new Scanner(System.in); File f=new File("C:\\Users\\darklove\\Desktop\\Aplicacion_Menu"); f.mkdir(); File f2=new File(f,"Tablas.txt"); f2.createNewFile(); FileWriter fw=new FileWriter(f2); BufferedWriter bw=new BufferedWriter(fw); //creacion y asignacion del tamanio de los arreglos a y z int a[],z[]; a=new int[10];

z=new int[10]; a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5; a[5]=6; a[6]=7; a[7]=8; a[8]=9; a[9]=10; bw.write("Tabla 1 +"Tabla 6 bw.newLine(); //ciclo para multiplicar el arreglo por la variable i for(int i=1; i<=10; i++){ //resultado z de la multiplicacion del arreglo a por i z[0]=a[0]*i; z[5]=a[5]*i; z[1]=a[1]*i; z[6]=a[6]*i; z[2]=a[2]*i; z[7]=a[7]*i; z[3]=a[3]*i; z[8]=a[8]*i; z[4]=a[4]*i; z[9]=a[9]*i; //escribe todos las posicines del arreglo en el archivo bw.write(a[0]+" * "+i+" = "+z[0]+" +a[1]+" * "+i+" = "+z[1]+" +a[2]+" * "+i+" = "+z[2]+" +a[3]+" * "+i+" = "+z[3]+" +a[4]+" * "+i+" = "+z[4]+" +a[5]+" * "+i+" = "+z[5]+" +a[6]+" * "+i+" = "+z[6]+" +a[7]+" * "+i+" = "+z[7]+" +a[8]+" * "+i+" = "+z[8]+" +a[9]+" * "+i+" = "+z[9]); " " " " " " " " " Tabla 2 Tabla 7 Tabla 3 Tabla 8 Tabla 4 Tabla 9 Tabla 5 Tabla 10" ); "

bw.newLine(); } bw.close(); // metodo para regresar al menu System.out.println("Regresar al menu?\n1-si\n0-no"); int x;

x=leer.nextInt(); if(x==1){ Menu m=new Menu(); m.Menu(); } else if(x!=1 && x!=0){ System.out.println("Error...\nSaliendo del programa..."); } else{ System.out.println("Saliendo del programa..."); } } }

1.18 6to Programa.Clase Menu.package ejemplo5; import java.io.*; public class Menu { public static void men () throws IOException { //lee archivos en bytes y los transforma en caracteres... InputStreamReader streamReader = new InputStreamReader(System.in); //permite leer el texto BufferedReader buffered = new BufferedReader(streamReader); File fichero = new File(""); String fichero_nombre; int opcion = 0; //ciclo para mostrar las opciones while (opcion != 5) {

System.out.println("\n\n\n"); System.out.println("Elige una opcion:\n(1) Crear un nuevo fichero" + "\n(2) Leer un fichero \n(3) Escribir en el fichero" + "\n(4) Buscar una palabra en el fichero \n(5) Finalizar \n>>"); //convierte los numeros tipo cadena en enteros opcion = Integer.parseInt(buffered.readLine()); switch (opcion) { case 1: Menu1 m1=new Menu1(); System.out.println("Nombre del fichero:"); //pide escribir el nombre del archivo fichero_nombre = buffered.readLine(); //el fichero es igual que el menu1 fichero = m1.menu1(fichero_nombre); break; case 2: Menu2 m2=new Menu2(); System.out.println("Nombre del fichero:"); fichero_nombre = buffered.readLine(); m2.menu2(fichero_nombre); break; case 3: Menu3 m3=new Menu3(); m3.menu3(fichero); break; case 4: Menu4 m4=new Menu4(); m4.menu4(fichero); break; case 5: break;

default: System.out.println("Opcion no disponible."); break; } } System.out.println("Gracias por usar esta aplicacin"); } }

Clase Menu1.package ejemplo5; import java.io.*; public class Menu1 { public static File menu1(String fichero_nombre) throws IOException { File fichero = new File(fichero_nombre); //condicional para comprobar si existe el fichero y si se puede leer //sino existe el fichero lo crea en la ruta por default if (fichero.exists()) { System.out.println("El fichero " + fichero_nombre + " ya existe en " + fichero.getAbsolutePath()); if (fichero.canRead()) System.out.println("El fichero es accesible."); else System.out.println("Error, el fichero deberia ser borrado."); } else { System.out.println("El fichero " + fichero_nombre + " no existe.");

if (fichero.createNewFile()) System.out.println("El fichero esta creado en " + fichero.getAbsolutePath()); else System.out.println("Error al crear el fichero."); } //regresa el valor return fichero; } }

Clase Menu2.package ejemplo5; import java.io.*; public class Menu2 { public static void menu2(String fichero_nombre) throws IOException { File fichero = new File (fichero_nombre); //condicionla par verificar si existe el archivo // si existe muestra en pantalla de ejecucion el contenido if (fichero.exists()) { FileReader contenido = new FileReader(fichero); BufferedReader bytes_a_texto = new BufferedReader(contenido); String linea; while ((linea = bytes_a_texto.readLine()) != null) { System.out.println(linea); } } else System.out.println("No existe tal fichero."); } }

Clase Menu3.package ejemplo5; import java.io.*; public class Menu3 { public static void menu3(File fichero) throws IOException { //condicional si el archivo existe if (fichero.exists()) { System.out.println("Texto para agregar: "); //Metodo para leer el archivo InputStreamReader entrada = new InputStreamReader(System.in); BufferedReader buffered = new BufferedReader(entrada); String texto = "\n\t\b\r" + buffered.readLine(); //metodo para escribir en el archivo FileWriter escritura = new FileWriter(fichero,true); PrintWriter escribir = new PrintWriter(escritura); //metodo para escribir en el archivo y dar un salto de linea escribir.println(texto); escribir.flush(); // sino se pone esto, ni escribe. Se queda en la RAM. escribir.close(); } else System.out.println("No se en que fichero tengo que escribir :p"); } }

Clase Menu4.package ejemplo5; import java.io.*; import java.util.Scanner; public class Menu4 { public static void menu4(File fichero) throws IOException

{ //metodo para buscar palabras en el fichero System.out.println("Palabra a buscar: "); InputStreamReader entrada = new InputStreamReader(System.in); BufferedReader buffered = new BufferedReader(entrada); String palabra_a_buscar = buffered.readLine(); //comprueba si el fichero existe if (fichero.exists()) { Scanner linea = new Scanner(fichero); //usa el salto de linea como delimitador linea.useDelimiter("\n"); //mientras haya lineas que leer while (linea.hasNext()) { String frase = linea.next(); //la matriz palabras es igual al corte del espaccio en blanco String [] palabras = frase.split(" "); for (String leidas:palabras) { //si leidas es igual a palabra_a_buscar va a mostrar en pantalla // la informacion del archivo if (leidas.equals(palabra_a_buscar)) System.out.println(frase); } } } else { System.out.println(" el fichero que tengo que leer, no esta"); } }

1.19 7mo Programa.Clase Lectura.package ficherodisco; import java.io.*; public class lectura { public lectura() throws IOException, ClassNotFoundException { //le pasa el nombre de un archivo/objeto de la clase File FileInputStream fs = new FileInputStream("datos.obj"); //procesa los datos y los hace vincular con fs ObjectInputStream os=new ObjectInputStream(fs); //lee objetos del flujo entrada Personas p=(Personas) os.readObject(); //imprime el valor de p en Name System.out.println(p.getName()); //imprime el valor de p en System.out.println(p.getEdad()); //cierra el flujo de datos os.close(); } }

Clase Disco.package ficherodisco; import java.io.*; public class Disco {

void discocrear() throws FileNotFoundException, IOException{ //crea un flujo de salida a disco

FileOutputStream fs= new FileOutputStream("datos.obj"); //procesa los datos y los hace vincular con fs ObjectOutputStream os=new ObjectOutputStream(fs); //escribe en el objeto os.writeObject(new Personas("paco",40)); //cierra el flujo os.close(); } }

Clase Personas.package ficherodisco; import java.io.*; public class Personas implements Serializable { //creacion de variables para procesar sus setters y getters private String name; private int edad; //constructor public Personas (String n, int e){ name=n; edad=e; } public void setName (String n){ name=n; } public String getName(){ return name; } public void setEdad(int e){ edad=e; } public int getEdad(){

return edad; } }

You might also like