Está en la página 1de 13

VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

FORMATO DE INFORME DE PRÁCTICA DE LABORATORIO /


TALLERES / CENTROS DE SIMULACIÓN – PARA ESTUDIANTES

CARRERA: Ingeniería de Sistemas ASIGNATURA: Programación III

NRO. PRÁCTICA: 4 TÍTULO PRÁCTICA: Manejo de Archivos Randomicos y de Objetos

OBJETIVO ALCANZADO:

Manejar archivos de randomicos y archivos de objetos comprendiendo en primer lugar los conceptos tanto de archivos
como lo de métodos utilizados y estos conceptos fueron profundizados con las prácticas realizadas.

ACTIVIDADES DESARROLLADAS

1. Se realizó un análisis del ejercicio planteado y así desarrollando primero el Diagrama de clases para tener
definido el proceso que vamos a seguir.
Diagrama:

Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

2. Después ya en el programa comenzamos a programar comenzando por la creación de los paquetes, luego
las clases dentro de ellas los métodos correspondientes y también sus atributos tomando en cuenta todo lo
necesario para la ejecución del programa.
También dentro de los paquetes se crearon las ventanas para poder desarrollar la interfaz gráfica.

3. A continuación comenzamos a programar los métodos de las clases ControladorCIientey


ControladorVideojuergo desarrollando así el CRUD, con los métodos de nuevo, modificar, eliminar, además de
los otros métodos para crear los archivos randomicos y de texto.

Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

4. Descripción de la clases ControladorVideojuego es una clases importante porque es donde se crean todos que
serán llamados dentro de la interfaz. Dentro de este método se crea un atributo listaJ de tipo lista (Video juego)
la cual será necesaria y llamada dentro de toda la clase.
Se crea el constructor donde se inicializa la listaJ como un ArrayList y también se generan los setters and
getters.

4.1 Método leerArc


Recibe como parámetro de entrada una ruta de tipo String, por medio de este método podemos leer el contenido
guardado dentro del archivo randomico.

Código
public void leerArc(String ruta) {
RandomAccessFile a = null;
try {
a = new RandomAccessFile(ruta, "r");
listaJ.clear();
for (int i = 0; true; i++) {
Videojuego v = new Videojuego();
a.seek(i * 72);
v.setCodigo(a.readInt());
String nom = "";
for (int e = 0; e < 20; e++) {
nom += a.readChar();
}
v.setNombre(nom);
String tip = "";
for (int t = 0; t < 10; t++) {
tip += a.readChar();
}
v.setTipo(tip);
v.setPrecio(a.readDouble());
listaJ.add(v);
}
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
} finally {
try {
a.close();
} catch (IOException ex) {
}
}
}

4.2 Método crearV


Recibe como parámetro cod de tipo entero, nom de tipo String, tip de tipo String, pre de tipo duble. Nos permite
crear un objeto de tipo Video juego.

Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

Código
public void crearV(int cod, String nom, String tip, double pre) {
Videojuego v = new Videojuego();
v.setCodigo(cod);
v.setNombre(nom);
v.setTipo(tip);
v.setPrecio(pre);
listaJ.add(v);
}

4.3 Método guardarArc


Recibe com parámetro de entrada ruta de tipo String. Nos permite guardar información del juego dentro del
archivo randomico.

Código
try {
RandomAccessFile a = new RandomAccessFile(ruta, "rw");
a.seek(0);
for (Videojuego j : this.listaJ) {
a.writeInt(j.getCodigo());
for (int i = 0; i < 20; i++) {
a.writeChar(j.getNombre().charAt(i));
}
for (int e = 0; e < 10; e++) {
a.writeChar(j.getTipo().charAt(e));
}
a.writeDouble(j.getPrecio());
}
a.close();
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
}
}

4.4 Método BuscarV


Tiene como parámetro e entrada cod de tipo entero. Como su nombre lo indica si deseamos buscar cierta
información relacionada al juego, mediante el código ingresado por parámetro la encuentra, mediante una
comparación con el código ingresado y el código del juego. Este método nos retorna el juego que se busca.

Código
public Videojuego buscarV(int cod) {
leerArc("LJuegos.dat");
for (Videojuego v : this.listaJ) {
if (v.getCodigo() == cod) {

Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

return v;
}
}
Videojuego vn = new Videojuego();
return vn;
}

4.5 Método Actualizar


Tiene como parámetro de entrada cod de tipo entero, nom de tipo String, tip de tipo String y pre de tipo double.
Es el método encargado de modificar la información del juego que nosotros así lo deseemos.

Código
public void actualizar(int cod, String nom, String tip, double pre) {
for (int i = 0; i < this.listaJ.size(); i++) {
if (this.listaJ.get(i).getCodigo() == cod) {
Videojuego j = new Videojuego();
j.setCodigo(cod);
j.setNombre(nom);
j.setTipo(tip);
j.setPrecio(pre);
listaJ.set(i, j);
}
}
}

4.6 Método elimiar


Tiene como parámetro de entrada cod de tipo entero, según el código que ingresemos lo busca lo eliminar
y retorna falso si el código ingresado no existe.

Código
public boolean eliminar(int cod) {
Videojuego v = buscarV(cod);
if (v != null) {
return listaJ.remove(v);
}
return false;
}

4.7 Método listarJ


Mediante una condición se verifica si existe el archivo, si este existe lista los juegos almacenados en el
archivo.

Código
public void listarJ() {
if (existeArc()) {
leerArc("LJuegos.dat");
for (Videojuego v : listaJ) {
System.out.println(v);
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

}
} else {
JOptionPane.showMessageDialog(null, "Aun no existe un archivo de Juegos.");
}
}

4.8 Método existeArc

Verifica si el archivo existe o no y retorna verdadero o falso.

Código
public boolean existeArc() {
File a = new File("LJuegos.dat");
if (a.exists()) {
return true;
}
return false;
}

6. Descripción de la clases ControladorCliente es una clases importante porque es donde se crean todos que
serán llamados dentro de la interfaz. Dentro de este método se crea un atributo listaC y juegosC de tipo lista
(Cliente) la cual será necesaria y llamada dentro de toda la clase.
Se crea el constructor donde se inicializa la listaC Y juegosC como un ArrayList y también se generan los
setters and getters.

6.1 Método leerArc


Recibe como parámetro de entrada ruta de tipo String. Este método es el encargado de leer la infomacion
que contiene el archivo de objetos.

Código
public void leerArc(String ruta) {
FileInputStream a = null;
try {
a = new FileInputStream(ruta);
ObjectInputStream archivoLectura = new ObjectInputStream(a);
listaC.clear();
while (true) {
Cliente c = (Cliente) archivoLectura.readObject();
this.listaC.add(c);
}
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
} catch (ClassNotFoundException ex) {
} finally {
try {

Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

a.close();
} catch (IOException ex) {
}
}
}

6.2 Método guardarC


Recibe como parámetro de entrada ruta de tipo String. Por medio de este método podemos guardad la
información de cliente dentro de un archivo de objetos.

Código
public void guardarC(String ruta) {
FileOutputStream a = null;
try {
a = new FileOutputStream(ruta);
ObjectOutputStream aE = new ObjectOutputStream(a);
for (Cliente c : listaC) {
aE.writeObject(c);
}
aE.close();
a.close();
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
}
}

6.3 Método buscarC


Recibe como parámetro de entrada cod de tipo entero, este código es comparado con el código del cliente y
retorna el cliente buscado.

Codigo
public Cliente buscarC(int cod) {
leerArc("LClientes.dat");
for (Cliente c : listaC) {
if (c.getCodigo() == cod) {
return c;
}
}
Cliente cn = new Cliente();
return cn;
}

6.4 Método Actualizar


Recibe como parámetro de entrada cod de tipo entero , nom de tipo String, ape de tipo String, dir de tipo String,
tel de tipo String, juego de tipo list(Videojuego), compara el código ingresado, con el código del cliente y modifica
la información que haya sido actualizada.

Código
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

public void actualizarC(int cod, String nom, String ape, String dir, String tel, List<Videojuego> juegos) {
for (int i = 0; i < listaC.size(); i++) {
if (listaC.get(i).getCodigo() == cod) {
Cliente c = new Cliente();
c.setCodigo(cod);
c.setNombre(nom);
c.setApellido(ape);
c.setDireccion(dir);
c.setTelefono(tel);
c.setJuegos(juegos);
listaC.set(i, c);
}
}
}

6.5 Método nuevoC


Tiene como parámetro de entrada cod de tipo String, nom de tipo String, ape de tipo String,dir de tipo String,
tel de tipo String, juego de tipo list(Videojuego). Este método es el encargado de crear un registtro de tipo
cliente según la información proporcionada por el usuario.

Código
public void nuevoC(int cod, String nom, String ape, String dir, String tel, List<Videojuego> juego) {
Cliente c = new Cliente();
c.setCodigo(cod);
c.setNombre(nom);
c.setApellido(ape);
c.setDireccion(dir);
c.setTelefono(tel);
listaC.add(null);
guardarC("LClientes.dat");
}

6.6 Método eliminarC


Tiene como parámetro de entrada cod de tipo entero, según el código ingresado este método elimina e al
cliente que contenga este código. Primero verifica que exista el cliente y según sea el caso retorna true o false.

Código
public boolean eliminarC(int cod) {
Cliente c = buscarC(cod);
if (c != null) {
return listaC.remove(c);
}
return false;
}

Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

6.7 Método de existeArc


Este método verifica si el archivo existe o no.

Código
public boolean existeArc() {
File a = new File("LClientes.dat");
if (a.exists()) {
return true;
}
return false;
}

6.8 Metodo listarC


Este método permite listar todos los clientes almacenados en el archivo de objeto.
Crea una condición y verifica si existe el archivo y lo lista.

Código
public void listarC() {
if (existeArc()) {
leerArc("LClientes.dat");
for (Cliente c : listaC) {
System.out.println(c);
}
} else {
JOptionPane.showMessageDialog(null, "Aun no existe un archivo de Clientes.");
}
}

N. Posteriormente se comenzó a enlazar los métodos ya creados, con la interfaz para que esta funcione.

RESULTADO(S) OBTENIDO(S):

Ventana principal

Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

Si seleccionamos la pestaña clientes nos aparece el siguiente menú


Donde podemos agregar, buscar, actualizar, eliminar y listado según necesitemos.

Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

Si seleccionamos la pestaña Videojuegos nos aparece el siguiente menú


Donde podemos agregar, buscar, actualizar, eliminar y listado según necesitemos.

Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

Si seleccionamos la pestaña Compra nos aparece agregar la compra que se a realizado y también listado para listar
las compras que se hayan realizado

Según lo que vayamos necesitando vamos utilizando el programa.

CONCLUSIONES:

Es posible concluir que el manejo de archivos en el lenguaje Java permite que el programa guarde todos los datos e
información de una forma permanente y sobre todo en dispositivos físicos para así en caso de que sea necesario
poderlos recuperar. También como conclusión podemos decir que el paquete de java.io es la encargada de obtener
y proveer los archivos y rutas lógicas permitiendo de esta manera que el usuario tenga un manejo ordenado y fácil de
los archivos y directorio. Además para el programador es fácil realizar una búsqueda con los archivos de acceso
aleatorio ya que su acceso no es secuencial y de tal manera no es necesario recorrer el archivo por o tanto facilita la
codificación.

RECOMENDACIONES:

Se debe tomar en cuenta los erros que pueden surgir al momento de leer o escribir en los archivos para corregir estos
errores es necesario utilizar las excepciones ya que nos proporcionan una gran ayuda.

También se debe considerar que al crear un archivo de acceso aleatorio debemos tomar en cuenta el tipo de dato que
ingresemos ya que este depende de la cantidad de bytes y cada tipo tiene diferente cantidad de bytes.

Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

Nombre de estudiantes: Adriana Castillo, Lucy Garay.

Firma de estudiante:

Resolución CS N° 076-04-2016-04-20

También podría gustarte