Informe
Funcionamiento del programa
Introduccion.- Este progragra esta enfocada al uso del
lenguaje de programacion en java, y que en el cual se aplican
archivos, ya que el programa esta efectuado para un ordenamiento
de CD,s y DVD,s que uno tiene en su hogar.
Este programa ayuda a dar orden y tener un registro
detallado de nuestros discos, ya si mismo dar utilidad y aplicar
lo conocimientos adquiridos en programacion en java.
A continuacion presentamos el codigo esplicado por
partes es decir para que sirve cada sentencia y codigo utilizado
para realizar el programa.
En el código se tiene lo
siguiente:
Son los objetos del programa
Variable "global", se usa para determinar
la cantidad de elementos del archivo
Se creó un objeto x, también
una opción inicializada en 0
Se ve parcialmente parte del menú,
mediante esto se puede ver que la opción se ingresa
mandando el menú como un String a una función op,
la opción elegida se manda a un switch
A continuación se presenta cada case
con su respectivo funcionamiento
CASE 1:
En el case 1 se ingresan los datos en el
siguiente orden: Numero, titulo, genero, contenido y
detalle
Además el "x.contenido" es ingresado
mediante la función contenido:
Puesto que se requiere un return de tipo
String se declara la función como un String, El usuario
puede elegir de una lista predeterminada de categorías la
correspondiente al CD o DVD
Volviendo al case 1, se puede ver una
función archivar:
En este se pueden ver varias
características. Primero se crea un archivo lógico,
el mismo guarda los datos en un archivo de tipo .txt,
además se guardan los datos con sus respectivas
características (String, int) además se puede ver
que los elementos se guardan los elementos en el respectivo orden
en el cual se envían.
CASE 2:
Se ingresa el numero del DVD o CD. Una vez
obtenido el dato, se procedde a llenar el vector vacio mediante
la función copia_archivo_a_vector:
Se llenara el vector vacio con los
elementos del archivo
Puesto que ya se tiene un vector, se
eliminara el elemento seleccionado del vector creado, primero se
busca la posición del elemento seleccionado, luego se
considera la posición seleccionada como límite para
la eliminación de una posición de un vector
cualquiera
Esta función eliminara el archivo ya
creado, como ya se tienen los datos almacenados en la
función los mismos no se perderán
En el case también se puede ver que
como se eliminó un elemento también se reduce en 1
el tamaño del vector
Luego se utiliza la función
copia_archivo_a_vector:
Mediante esta se almacenan los datos del
vector en un archivo que tiene el mismo nombre del archivo en
cuestión
Para comprobar que el programa funciona
correctamente, se listan los datos del vector mediante la
función lista_todo:
CASE 3:
Se ingresa el numero del CD o DVD que se
quiere modificar, puesto que se utilizaron las funciones del Case
2
Se llena el vector vacio con los datos del
vector con la función copia_archivo_a_vector,
Despues se manda el vector y el numero a una función
corregir
Luego se elimina el archivo y al igual que
en el segundo caso se llena el archivo con los datos modificados
del vector
CASE 4:
Se llena el vector con los datos del
archivo, luego se ordena el vector en cuestión mediante la
función ordenar
Al igual que en casos anteriores se elimina
el archivo y se crea el nuevo con los datos ordenados. Luego se
copian los datos del vector al archivo y se listan.
CASE 5:
Se llena el vector con los datos del
archivo, luego para ordenar alfabéticamente por
título se usa la función ordena
Se ordena el vector comparando los
caracteres del título de cada elemento del archivo. Luego
se elimina el archivo y se crea el nuevo con los datos ordenados
y se lista el archivo
CASE 6:
Primero se ingresa el titulo del elemento
en cuestión, luego se llena el vector con los elementos
del archivo y se busca la información directamente del
vector mediante la función info_n
Se ve parte de la función, una vez
obtenido el nombre se muestra la información comparando el
nombre del título en cuestión con cada nombre del
archivo
CASE 7:
Se ingresa el numero del CD o DVD, luego se
llena el vector con los elementos del archivo, luego se manda el
vector a la función info_num
Se ve parcialmente el código. Al
igual que en el case 6 se realiza una comparación para
obtener la información pero en este caso se compara el
numero ingresado con los números del archivo
Código del
programa
import java.io.*; public class { public static class { String contenido; String titulo; String detalle; String genero; int numero = 0; } static int ta = 0; public static void main (String[] { guardar x = new guardar guardar[] vector; int opcion = 0; BufferedReader w = new BufferedReader do { opcion = op ("n*** TRABAJO CON switch (opcion) { case 1: try { int cond = 0; do { x.numero = op ("Ingrese el numero del cond = verifica if (cond == 0) { System.out.println ("Numero repetido, } } while (cond == 0); System.out.println ("Escriba el x.titulo = w.readLine (); System.out.println ("Escriba el x.genero = w.readLine (); System.out.println ("Elija el x.contenido = contenido System.out.println ("Detalle del CD o x.detalle = w.readLine (); archivar (x); } catch (NumberFormatException { System.out.println (" "); } break; case 2: System.out.println ("Ingrese el int n = Integer.parseInt (w.readLine vector = copia_archivo_a_vector vector = elimina (vector, borrar_todo (); ta–; copia_del_vector_al_archivo lista_todo (); break; case 3: System.out.println ("Ingrese el int ni = Integer.parseInt (w.readLine vector = copia_archivo_a_vector vector = corregir (vector, borrar_todo (); copia_del_vector_al_archivo lista_todo (); break; case 4: vector = copia_archivo_a_vector vector = ordenar (vector); borrar_todo (); copia_del_vector_al_archivo lista_todo (); break; case 5: vector = copia_archivo_a_vector vector = cambiar_min vector = ordena (vector); borrar_todo (); copia_del_vector_al_archivo lista_todo (); break; case 6: int cond1 = 0; String bus_peli = " "; do { System.out.println ("Ingrese el bus_peli = w.readLine (); String mayus = bus_peli.charAt (0) + mayus = mayus.toUpperCase bus_peli = bus_peli.replaceFirst cond1 = verifica1 if (cond1 == 0) { System.out.println ("El CD o DVD no } } while (cond1 == 0); vector = copia_archivo_a_vector info_n (vector, bus_peli); break; case 7: int cond2 = 0; int num4 = 0; do { num4 = op ("Ingrese el numero del DVD cond2 = verifica2 (num4); if (cond2 == 0) { System.out.println ("Numero no } } while (cond2 == 0); vector = copia_archivo_a_vector info_num (vector, num4); break; case 8: System.out.println ("ADIOS 🙂 } } while (opcion != 8); } public static guardar[] ordenar { guardar aux = new guardar for (int i = 0 ; i < ta – 1 ; { guardar menor = m [i]; int pos = i; for (int j = i + 1 ; j < ta ; { if (m [j].numero < { menor = m [j]; pos = j; } } m [pos] = m [i]; m [i] = menor; } return (m); } public static String contenido () { BufferedReader w = new BufferedReader String r = " "; int op1 = 0; do { op1 = op ("Categorias de if (op1 == 1) { r = "Pelicula"; } if (op1 == 2) { r = "Musica"; } if (op1 == 3) { r = "Pdf"; } if (op1 == 4) { r = "Fotografias"; } if (op1 == 5) { r = "Programacion"; } } while (op1 > 6); return (r); } public static int op (String t) { BufferedReader w = new BufferedReader System.out.println (t); int t4 = Integer.parseInt (w.readLine return (t4); } //————————————– public static void archivar (guardar { FileOutputStream archivo_logico = new DataOutputStream data = new data.writeInt (z.numero); data.writeUTF (z.titulo); data.writeUTF (z.genero); data.writeUTF data.writeUTF (z.detalle); archivo_logico.close (); } //—————————————————————– public static void lista_todo { guardar z = new guardar try { FileInputStream fi = new System.out.println DataInputStream data = new while (true) { z.numero = data.readInt z.titulo = data.readUTF z.genero = data.readUTF z.contenido = data.readUTF z.detalle = data.readUTF System.out.println (z.numero + "t" + } } catch (FileNotFoundException { System.out.println ("+++ El archivo } catch (EOFException e) { System.out.println (" "); } catch (IOException e) { System.out.println (" "); } } //—————————————————— public static void borrar_todo () { FileOutputStream archivo_logico = new FileOutputStream archivo_logico.close (); } //——————————————————– public static guardar[] { guardar[] z = new guardar ta = 0; try { FileInputStream fi = new DataInputStream data = new while (true) { z [ta] = new guardar (); z [ta].numero = data.readInt z [ta].titulo = data.readUTF z [ta].genero = data.readUTF z [ta].contenido = data.readUTF z [ta].detalle = data.readUTF ta++; } } catch (FileNotFoundException { System.out.println ("+++ El archivo } catch (EOFException e) { System.out.println (" "); } catch (IOException e) { System.out.println (" "); } return (z); } //——————————————————– public static void { FileOutputStream archivo_logico = new DataOutputStream data = new for (int i = 0 ; i < ta ; { data.writeInt (z data.writeUTF (z data.writeUTF (z data.writeUTF (z data.writeUTF (z } archivo_logico.close (); } //——————————————————— public static guardar[] ordena { guardar aux = new guardar for (int i = 0 ; i < ta ; { for (int j = i ; j < ta ; { if (z [i].titulo.compareTo (z { aux = z [i]; z [i] = z [j]; z [j] = aux; } } } return (z); } public static guardar[] cambiar_min { guardar aux = new guardar for (int i = 0 ; i < ta ; { String mayus = z [i].titulo.charAt mayus = mayus.toUpperCase z [i].titulo = z } return (z); } //——————————————————— public static void info_n (guardar { guardar aux = new guardar for (int i = 0 ; i < ta ; { if (z [i].titulo.compareTo (n) == { System.out.println ("Numero: " + z } } } public static void info_num (guardar { guardar aux = new guardar for (int i = 0 ; i < ta ; { if (z [i].numero == n) { System.out.println ("Numero: " + z } } } public static guardar[] elimina { guardar aux = new guardar int pos = 0; for (int i = 0 ; i < ta ; { if (z [i].numero == n) { pos = i; } } for (int i = pos ; i < ta ; { z [i] = z [i + 1]; } return (z); } public static guardar[] corregir { BufferedReader w = new BufferedReader int op1 = 0, pos = 0; for (int i = 0 ; i < ta ; { if (z [i].numero == n) { pos = i; } } do { op1 = op ("Elija una caracteristica switch (op1) { case 1: int cond = 0; do { z [pos].numero = op ("Ingrese el cond = verifica (z if (cond == 0) { System.out.println ("Numero repetido, } } while (cond == 0); break; case 2: System.out.println ("Escriba el z [pos].titulo = w.readLine break; case 3: System.out.println ("Escriba el z [pos].genero = w.readLine break; case 4: System.out.println ("Elija el z [pos].contenido = contenido break; case 5: System.out.println ("Detalle del CD o z [pos].detalle = w.readLine break; } } while (op1 != 6); return (z); }
public static int verifica (int { guardar z = new guardar int condicion = 1; try { FileInputStream fi = new DataInputStream data = new while (true) { z.numero = data.readInt z.titulo = data.readUTF z.genero = data.readUTF z.contenido = data.readUTF z.detalle = data.readUTF if (numero == z.numero) { condicion = 0; } }
} catch (FileNotFoundException { System.out.println ("+++ El archivo } catch (EOFException e) { System.out.println (" "); } catch (IOException e) { System.out.println (" "); } return (condicion); } public static int verifica1 (String { guardar z = new guardar int condicion = 0; try { FileInputStream fi = new DataInputStream data = new while (true) { z.numero = data.readInt z.titulo = data.readUTF z.genero = data.readUTF z.contenido = data.readUTF z.detalle = data.readUTF if (z.titulo.compareTo (titulo) == { condicion = 1; } } } catch (FileNotFoundException { System.out.println ("+++ El archivo } catch (EOFException e) { System.out.println (" "); } catch (IOException e) { System.out.println (" "); } return (condicion); } public static int verifica2 (int { guardar z = new guardar int condicion = 0; try { FileInputStream fi = new DataInputStream data = new while (true) { z.numero = data.readInt z.titulo = data.readUTF z.genero = data.readUTF z.contenido = data.readUTF z.detalle = data.readUTF if (z.numero == numero) { condicion = 1; } } } catch (FileNotFoundException { System.out.println ("+++ El archivo } catch (EOFException e) { System.out.println (" "); } catch (IOException e) { System.out.println (" "); } return (condicion); } } |
Bibliografía
Introduccion a la programacion en java
-"John S. Dean, Raymond H. Dean"
Autor:
Maquera Nina Jose Luis
UNIVERSIDAD CATÓLICA BOLIVIANA
"SAN PABLO"
FACULTAD DE CIENCIAS EXACTAS E
INGENIERÍA
PROGRAMACION I
PROYECTO FINAL
DOCENTE: PRADO VILLARROEL IRMA
PARALELO: 1
FECHA DE ENTREGA: 3 – DICIEMBRE
LA PAZ – BOLIVIA
1-2013