Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Aplicación de archivos en Java – Almacenamiento de CDs y DVDs



  1. Informe Funcionamiento del
    programa
  2. Código del programa
  3. Bibliografía

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:

Monografias.com

Son los objetos del programa

Monografias.com

Variable "global", se usa para determinar
la cantidad de elementos del archivo

Monografias.com

Se creó un objeto x, también
una opción inicializada en 0

Monografias.com

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:

Monografias.com

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:

Monografias.com

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:

Monografias.com

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:

Monografias.com

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:

Monografias.com

Se llenara el vector vacio con los
elementos del archivo

Monografias.com

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

Monografias.com

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:

Monografias.com

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:

Monografias.com

CASE 3:

Monografias.com

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

Monografias.com

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:

Monografias.com

Se llena el vector con los datos del
archivo, luego se ordena el vector en cuestión mediante la
función ordenar

Monografias.com

Monografias.com

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:

Monografias.com

Se llena el vector con los datos del
archivo, luego para ordenar alfabéticamente por
título se usa la función ordena

Monografias.com

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:

Monografias.com

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

Monografias.com

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:

Monografias.com

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

Monografias.com

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
proyecto_final

{

public static class
guardar

{

String contenido;

String titulo;

String detalle;

String genero;

int numero = 0;

}

static int ta = 0;

public static void main (String[]
arg) throws IOException

{

guardar x = new guardar
();

guardar[] vector;

int opcion = 0;

BufferedReader w = new BufferedReader
(new InputStreamReader (System.in));

do

{

opcion = op ("n*** TRABAJO CON
ARCHIVOS ***nn1. Registrar CD o DVDn2. Borrar un CD o
DVD dañadon3. Corregir informacion registrada n4.
Listado general por numeron5. Listado ordenado por
titulon6. Informacion por titulon7. Informacion por
numeron8. Salir ");

switch (opcion)

{

case 1:

try

{

int cond = 0;

do

{

x.numero = op ("Ingrese el numero del
cd o dvd");

cond = verifica
(x.numero);

if (cond == 0)

{

System.out.println ("Numero repetido,
ingrese otro para continuar!");

}

}

while (cond == 0);

System.out.println ("Escriba el
titulo: ");

x.titulo = w.readLine ();

System.out.println ("Escriba el
genero: ");

x.genero = w.readLine ();

System.out.println ("Elija el
contenido");

x.contenido = contenido
();

System.out.println ("Detalle del CD o
DVD: ");

x.detalle = w.readLine ();

archivar (x);

}

catch (NumberFormatException
ex)

{

System.out.println (" ");

}

break;

case 2:

System.out.println ("Ingrese el
numero del CD o DVD que desea eliminar");

int n = Integer.parseInt (w.readLine
());

vector = copia_archivo_a_vector
();

vector = elimina (vector,
n);

borrar_todo ();

ta–;

copia_del_vector_al_archivo
(vector);

lista_todo ();

break;

case 3:

System.out.println ("Ingrese el
numero del CD o DVD que desea corregir");

int ni = Integer.parseInt (w.readLine
());

vector = copia_archivo_a_vector
();

vector = corregir (vector,
ni);

borrar_todo ();

copia_del_vector_al_archivo
(vector);

lista_todo ();

break;

case 4:

vector = copia_archivo_a_vector
();

vector = ordenar (vector);

borrar_todo ();

copia_del_vector_al_archivo
(vector);

lista_todo ();

break;

case 5:

vector = copia_archivo_a_vector
();

vector = cambiar_min
(vector);

vector = ordena (vector);

borrar_todo ();

copia_del_vector_al_archivo
(vector);

lista_todo ();

break;

case 6:

int cond1 = 0;

String bus_peli = " ";

do

{

System.out.println ("Ingrese el
titulo del DVD o CD");

bus_peli = w.readLine ();

String mayus = bus_peli.charAt (0) +
"";

mayus = mayus.toUpperCase
();

bus_peli = bus_peli.replaceFirst
(bus_peli.charAt (0) + "", mayus);

cond1 = verifica1
(bus_peli);

if (cond1 == 0)

{

System.out.println ("El CD o DVD no
existe! Ingrese otro para continuar");

}

}

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
o CD");

cond2 = verifica2 (num4);

if (cond2 == 0)

{

System.out.println ("Numero no
existe! Ingrese otro para continuar");

}

}

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 m[])

{

guardar aux = new guardar
();

for (int i = 0 ; i < ta – 1 ;
i++)

{

guardar menor = m [i];

int pos = i;

for (int j = i + 1 ; j < ta ;
j++)

{

if (m [j].numero <
menor.numero)

{

menor = m [j];

pos = j;

}

}

m [pos] = m [i];

m [i] = menor;

}

return (m);

}

public static String contenido ()
throws IOException

{

BufferedReader w = new BufferedReader
(new InputStreamReader (System.in));

String r = " ";

int op1 = 0;

do

{

op1 = op ("Categorias de
contenido:n1. Peliculan2. Musican3. Pdfn4.
Fotografiasn5. Programacion");

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)
throws IOException

{

BufferedReader w = new BufferedReader
(new InputStreamReader (System.in));

System.out.println (t);

int t4 = Integer.parseInt (w.readLine
());

return (t4);

}

//————————————–

public static void archivar (guardar
z) throws IOException

{

FileOutputStream archivo_logico = new
FileOutputStream ("Almacenamiento.TXT", true);

DataOutputStream data = new
DataOutputStream (archivo_logico);

data.writeInt (z.numero);

data.writeUTF (z.titulo);

data.writeUTF (z.genero);

data.writeUTF
(z.contenido);

data.writeUTF (z.detalle);

archivo_logico.close ();

}

//—————————————————————–

public static void lista_todo
()

{

guardar z = new guardar
();

try

{

FileInputStream fi = new
FileInputStream ("Almacenamiento.TXT");

System.out.println
("Listado:");

DataInputStream data = new
DataInputStream (fi);

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" +
z.titulo + "t" + z.genero + "t" + z.contenido + "t" +
z.detalle);

}

}

catch (FileNotFoundException
e)

{

System.out.println ("+++ El archivo
no existe!!!!!");

}

catch (EOFException e)

{

System.out.println (" ");

}

catch (IOException e)

{

System.out.println (" ");

}

}

//——————————————————

public static void borrar_todo ()
throws IOException

{

FileOutputStream
archivo_logico;

archivo_logico = new FileOutputStream
("Almacenamiento.TXT");

archivo_logico.close ();

}

//——————————————————–

public static guardar[]
copia_archivo_a_vector ()

{

guardar[] z = new guardar
[20];

ta = 0;

try

{

FileInputStream fi = new
FileInputStream ("Almacenamiento.TXT");

DataInputStream data = new
DataInputStream (fi);

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
e)

{

System.out.println ("+++ El archivo
no existe!!!!!");

}

catch (EOFException e)

{

System.out.println (" ");

}

catch (IOException e)

{

System.out.println (" ");

}

return (z);

}

//——————————————————–

public static void
copia_del_vector_al_archivo (guardar z[]) throws
IOException

{

FileOutputStream archivo_logico = new
FileOutputStream ("Almacenamiento.TXT", true);

DataOutputStream data = new
DataOutputStream (archivo_logico);

for (int i = 0 ; i < ta ;
i++)

{

data.writeInt (z
[i].numero);

data.writeUTF (z
[i].titulo);

data.writeUTF (z
[i].genero);

data.writeUTF (z
[i].contenido);

data.writeUTF (z
[i].detalle);

}

archivo_logico.close ();

}

//———————————————————

public static guardar[] ordena
(guardar z[])

{

guardar aux = new guardar
();

for (int i = 0 ; i < ta ;
i++)

{

for (int j = i ; j < ta ;
j++)

{

if (z [i].titulo.compareTo (z
[j].titulo) > 0)

{

aux = z [i];

z [i] = z [j];

z [j] = aux;

}

}

}

return (z);

}

public static guardar[] cambiar_min
(guardar z[])

{

guardar aux = new guardar
();

for (int i = 0 ; i < ta ;
i++)

{

String mayus = z [i].titulo.charAt
(0) + "";

mayus = mayus.toUpperCase
();

z [i].titulo = z
[i].titulo.replaceFirst (z [i].titulo.charAt (0) + "",
mayus);

}

return (z);

}

//———————————————————

public static void info_n (guardar
z[], String n)

{

guardar aux = new guardar
();

for (int i = 0 ; i < ta ;
i++)

{

if (z [i].titulo.compareTo (n) ==
0)

{

System.out.println ("Numero: " + z
[i].numero + "nTitulo: " + z [i].titulo + "nGenero: " + z
[i].genero + "nContenido: " + z [i].contenido +
"nDetalle: " + z [i].detalle);

}

}

}

public static void info_num (guardar
z[], int n)

{

guardar aux = new guardar
();

for (int i = 0 ; i < ta ;
i++)

{

if (z [i].numero == n)

{

System.out.println ("Numero: " + z
[i].numero + "nTitulo: " + z [i].titulo + "nGenero: " + z
[i].genero + "nContenido: " + z [i].contenido +
"nDetalle: " + z [i].detalle);

}

}

}

public static guardar[] elimina
(guardar z[], int n)

{

guardar aux = new guardar
();

int pos = 0;

for (int i = 0 ; i < ta ;
i++)

{

if (z [i].numero == n)

{

pos = i;

}

}

for (int i = pos ; i < ta ;
i++)

{

z [i] = z [i + 1];

}

return (z);

}

public static guardar[] corregir
(guardar z[], int n) throws IOException

{

BufferedReader w = new BufferedReader
(new InputStreamReader (System.in));

int op1 = 0, pos = 0;

for (int i = 0 ; i < ta ;
i++)

{

if (z [i].numero == n)

{

pos = i;

}

}

do

{

op1 = op ("Elija una caracteristica
de la pelicula que desea corregir:n1. Numero n2.
Titulon3. Generon4. Contenidon5. Detallen6. Finalizo la
correccion");

switch (op1)

{

case 1:

int cond = 0;

do

{

z [pos].numero = op ("Ingrese el
numero del cd o dvd");

cond = verifica (z
[pos].numero);

if (cond == 0)

{

System.out.println ("Numero repetido,
ingrese otro para continuar!");

}

}

while (cond == 0);

break;

case 2:

System.out.println ("Escriba el
titulo: ");

z [pos].titulo = w.readLine
();

break;

case 3:

System.out.println ("Escriba el
genero: ");

z [pos].genero = w.readLine
();

break;

case 4:

System.out.println ("Elija el
contenido");

z [pos].contenido = contenido
();

break;

case 5:

System.out.println ("Detalle del CD o
DVD: ");

z [pos].detalle = w.readLine
();

break;

}

}

while (op1 != 6);

return (z);

}

 

public static int verifica (int
numero)

{

guardar z = new guardar
();

int condicion = 1;

try

{

FileInputStream fi = new
FileInputStream ("Almacenamiento.TXT");

DataInputStream data = new
DataInputStream (fi);

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
e)

{

System.out.println ("+++ El archivo
no existe!!!!!");

}

catch (EOFException e)

{

System.out.println (" ");

}

catch (IOException e)

{

System.out.println (" ");

}

return (condicion);

}

public static int verifica1 (String
titulo)

{

guardar z = new guardar
();

int condicion = 0;

try

{

FileInputStream fi = new
FileInputStream ("Almacenamiento.TXT");

DataInputStream data = new
DataInputStream (fi);

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) ==
0)

{

condicion = 1;

}

}

}

catch (FileNotFoundException
e)

{

System.out.println ("+++ El archivo
no existe!!!!!");

}

catch (EOFException e)

{

System.out.println (" ");

}

catch (IOException e)

{

System.out.println (" ");

}

return (condicion);

}

public static int verifica2 (int
numero)

{

guardar z = new guardar
();

int condicion = 0;

try

{

FileInputStream fi = new
FileInputStream ("Almacenamiento.TXT");

DataInputStream data = new
DataInputStream (fi);

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
e)

{

System.out.println ("+++ El archivo
no existe!!!!!");

}

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

Monografias.com

DOCENTE: PRADO VILLARROEL IRMA

PARALELO: 1

FECHA DE ENTREGA: 3 – DICIEMBRE

LA PAZ BOLIVIA

1-2013

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter