Skip to content

Commit

Permalink
V 0.2.0 - Cambio de los arrays por vectores dinámicos, gestión de pré…
Browse files Browse the repository at this point in the history
…stamos y cambios en la gestión de artículos
  • Loading branch information
jesusrodriguezg committed Jan 19, 2018
1 parent 006bcf4 commit 523557d
Show file tree
Hide file tree
Showing 9 changed files with 375 additions and 183 deletions.
50 changes: 24 additions & 26 deletions GestionArticulos.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package biblioteca;

import java.util.Vector;

public class GestionArticulos {
private final int TAM=100;
private int posicion=0;
private Articulo[] gestionarticulos=new Articulo[TAM];
private Vector <Articulo> gestionarticulos=new Vector <Articulo>();

public void menu() {
public void menu(String nombre) {
int opcion=0;
do {
System.out.println("GESTIÓN DE ARTÍCULOS");
System.out.println("--------------------");
System.out.println("ARTÍCULOS DE LA REVISTA "+nombre.toUpperCase());
System.out.println("--------------------------------------");
System.out.println("1. Añadir artículo.");
System.out.println("2. Eliminar artículo.");
System.out.println("3. Modificar artículo.");
Expand All @@ -32,7 +32,6 @@ public void menu() {
case 0:
System.out.println("Volviendo al menú principal...");
System.out.println();
GestionBiblioteca.menu();
break;
default:
System.out.println("Debe introducir una opción entre 0 y 4.");
Expand All @@ -42,10 +41,6 @@ public void menu() {
}

private void addArticulo() {
if (posicion>=TAM) {
System.out.println("No puede añadir más artículos porque el espacio para artículos está completo.");
return;
}
long codarticulo=PedirDatos.leerLong("Introduzca el código del artículo que desea añadir.");
if (buscarArticulo(codarticulo)!=-1) {
System.out.println("No se puede añadir el artículo con el código "+codarticulo+" porque ya existe.");
Expand All @@ -55,13 +50,12 @@ private void addArticulo() {
String autor=PedirDatos.leerCadena("Introduzca el autor del artículo");
int numpaginas=PedirDatos.leerEntero("Introduzca el número de páginas del artículo");
Articulo a=new Articulo(codarticulo, titulo, autor, numpaginas);
this.gestionarticulos[posicion]=a;
posicion++;
this.gestionarticulos.addElement(a);
System.out.println("El artículo con el código "+codarticulo+" se ha añadido correctamente.");
}

private void delArticulo() {
if (posicion<=0) {
if (this.gestionarticulos.isEmpty()) {
System.out.println("No puede eliminar artículos porque no existe ninguno.");
return;
}
Expand All @@ -71,16 +65,12 @@ private void delArticulo() {
System.out.println("No se puede eliminar el artículo con el código "+codarticulo+" porque no existe.");
return;
}
for (int i = pos; i < posicion-1; i++) {
this.gestionarticulos[i]=this.gestionarticulos[i+1];
}
posicion--;
this.gestionarticulos[posicion]=null;
this.gestionarticulos.remove(pos);
System.out.println("El artículo con el código "+codarticulo+" ha sido eliminado correctamente.");
}

private void setArticulo() {
if (posicion<=0) {
if (this.gestionarticulos.isEmpty()) {
System.out.println("No puede modificar artículos porque no existe ninguno.");
return;
}
Expand All @@ -91,28 +81,36 @@ private void setArticulo() {
return;
}
System.out.println("Los datos del artículo con el código "+codarticulo+" son:");
System.out.println(this.gestionarticulos[pos]);
System.out.println(this.gestionarticulos.elementAt(pos));
String titulo=PedirDatos.leerCadena("Introduzca el nuevo título del artículo");
String autor=PedirDatos.leerCadena("Introduzca el nuevo autor del artículo");
int numpaginas=PedirDatos.leerEntero("Introduzca el nuevo número de páginas del artículo");
Articulo a=new Articulo (codarticulo, titulo, autor, numpaginas);
this.gestionarticulos[pos]=a;
this.gestionarticulos.add(pos, a);
System.out.println("El artículo con el código "+codarticulo+" ha sido modificado correctamente.");
}

private void mostrarArticulo() {
for (int i = 0; i < posicion; i++) {
System.out.println(this.gestionarticulos[i]);
for (int i = 0; i < this.gestionarticulos.size(); i++) {
System.out.println(this.gestionarticulos.elementAt(i));
System.out.println("-------------------------");
}
}

private int buscarArticulo(long codarticulo) {
for (int i = 0; i < posicion; i++) {
if (this.gestionarticulos[i].getCodarticulo()==codarticulo) {
for (int i = 0; i < this.gestionarticulos.size(); i++) {
if (this.gestionarticulos.elementAt(i).getCodarticulo()==codarticulo) {
return i;
}
}
return -1;
}

public String toString() {
String ret="";
for (int i= 0; i < this.gestionarticulos.size(); i++) {
ret+=this.gestionarticulos.elementAt(i)+"\n-------------------------\n";
}
return ret;
}
}
196 changes: 150 additions & 46 deletions GestionBiblioteca.java
Original file line number Diff line number Diff line change
@@ -1,65 +1,169 @@
package biblioteca;

import java.util.Vector;

public class GestionBiblioteca {
private static GestionLibros gl=new GestionLibros();
private static GestionRevistas gr=new GestionRevistas();
private static GestionCdrom gc=new GestionCdrom();
private static GestionArticulos ga=new GestionArticulos();
private static GestionUsuarios gu=new GestionUsuarios();
private GestionLibros gl=new GestionLibros();
private GestionRevistas gr=new GestionRevistas();
private GestionCdrom gc=new GestionCdrom();
private GestionUsuarios gu=new GestionUsuarios();

private Vector <Prestamo> prestamos=new Vector<Prestamo>();

public static void menu() {
public void menu() {
int opcion=0;
System.out.println("BIBLIOTECA DEL I.E.S. POLÍGONO SUR");
System.out.println("----------------------------------");
System.out.println("1. Gestión de libros.");
System.out.println("2. Gestión de revistas.");
System.out.println("3. Gestión de CD-ROM.");
System.out.println("4. Gestión de artículos.");
System.out.println("5. Gestión de usuarios.");
System.out.println("0. Salir.");
opcion=PedirDatos.leerEntero("¿Qué desea hacer?");
switch (opcion) {
case 1:
gestionLibros();
break;
case 2:
gestionRevistas();
break;
case 3:
gestionCdrom();
break;
case 4:
gestionArticulos();
break;
case 5:
gestionUsuarios();
break;
case 0:
System.out.println("¡Adiós!");
break;
default:
System.out.println("Debe introducir una opción entre 0 y 5.");
break;
}
do {
System.out.println("BIBLIOTECA DEL I.E.S. POLÍGONO SUR");
System.out.println("----------------------------------");
System.out.println("1. Gestión de libros.");
System.out.println("2. Gestión de revistas.");
System.out.println("3. Gestión de CD-ROM.");
System.out.println("4. Gestión de usuarios.");
System.out.println("5. Realizar préstamo.");
System.out.println("6. Devolver préstamo.");
System.out.println("7. Mostrar préstamos.");
System.out.println("0. Salir.");
opcion=PedirDatos.leerEntero("¿Qué desea hacer?");
switch (opcion) {
case 1:
gestionLibros();
break;
case 2:
gestionRevistas();
break;
case 3:
gestionCdrom();
break;
case 4:
gestionUsuarios();
break;
case 5:
realizarPrestamo();
break;
case 6:
devolverPrestamo();
break;
case 7:
mostrarPrestamos();
break;
case 0:
System.out.println("¡Adiós!");
break;
default:
System.out.println("Debe introducir una opción entre 0 y 7.");
break;
}
} while (opcion!=0);
}

private static void gestionLibros() {
private void gestionLibros() {
gl.menu();
}

private static void gestionRevistas() {
private void gestionRevistas() {
gr.menu();
}

private static void gestionCdrom() {
private void gestionCdrom() {
gc.menu();
}

private static void gestionArticulos() {
ga.menu();
}

private static void gestionUsuarios() {
private void gestionUsuarios() {
gu.menu();
}

public void realizarPrestamo() {
long codusuario=PedirDatos.leerLong("Introduzca el código del usuario que desea solicitar un préstamo.");
int pos=gu.buscarUsuario(codusuario);
if (pos==-1) {
System.out.println("El usuario con el código "+codusuario+" no existe.");
return;
}
char tipomaterial=PedirDatos.leerCaracter("Introduzca el tipo de material que desea. (L = Libro | R = Revista | C = CD-ROM)");
while (tipomaterial!='L'&&tipomaterial!='R'&&tipomaterial!='C') {
tipomaterial=PedirDatos.leerCaracter("Valor incorrecto. Introduzca el tipo de material que desea. (L = Libro | R = Revista | C = CD-ROM)");
}
long codmaterial=0;
switch (tipomaterial) {
case 'L':
codmaterial=PedirDatos.leerLong("Introduzca el ISBN del libro que desea sacar.");
pos=gl.buscarLibro(codmaterial);
if (pos==-1) {
System.out.println("El libro con el ISBN "+codmaterial+" no existe.");
return;
}
break;
case 'R':
codmaterial=PedirDatos.leerLong("Introduzca el código de la revista que desea sacar.");
pos=gr.buscarRevista(codmaterial);
if (pos==-1) {
System.out.println("La revista con el código "+codmaterial+" no existe.");
return;
}
break;
case 'C':
codmaterial=PedirDatos.leerLong("Introduzca el código del CD-ROM que desea sacar.");
pos=gc.buscarCdrom(codmaterial);
if (pos==-1) {
System.out.println("El CR-ROM con el código "+codmaterial+" no existe.");
return;
}
break;
}
if (buscarPrestamo(tipomaterial, codmaterial)!=-1) {
System.out.println("El material que desea pedir se encuentra prestado actualmente.");
return;
}
String fechaprestamo=PedirDatos.leerCadena("Introduzca la fecha del préstamo (DD/MM/AAAA).");
Prestamo p=new Prestamo(codusuario, tipomaterial, codmaterial, fechaprestamo);
this.prestamos.addElement(p);
System.out.println("Préstamo realizado correctamente.");
}

public void devolverPrestamo() {
if (this.prestamos.isEmpty()) {
System.out.println("No se pueden devolver préstamos porque todavía no se ha realizado ninguno.");
return;
}
long codusuario=PedirDatos.leerLong("Introduzca el código de usuario que realizó el préstamo.");
char tipomaterial=PedirDatos.leerCaracter("Introduzca el tipo de material que se prestó.");
long codmaterial=PedirDatos.leerLong("Introduzca el código del material que se prestó.");
int pos=buscarPrestamo(codusuario, tipomaterial, codmaterial);
if (pos==-1) {
System.out.println("No existe ningún préstamo con los datos introducidos.");
return;
}
String fechadevolucion=PedirDatos.leerCadena("Introduzca la fecha de devolución (DD/MM/AAAA).");
this.prestamos.elementAt(pos).setFechadevolucion(fechadevolucion);
System.out.println("Se ha devuelto el siguiente préstamo:\nCódigo del préstamo: "+(pos+1)+"\n"+this.prestamos.elementAt(pos));
}

public void mostrarPrestamos() {
for (int i = 0; i < this.prestamos.size(); i++) {
System.out.println(this.prestamos.elementAt(i));
System.out.println("-------------------------");
}
}

//Método de búsqueda para los préstamos
private int buscarPrestamo(char tipomaterial, long codmaterial) {
for (int i = 0; i < this.prestamos.size(); i++) {
if (tipomaterial==this.prestamos.elementAt(i).getCodmaterial()&&codmaterial==this.prestamos.elementAt(i).getCodmaterial()&&
this.prestamos.elementAt(i).getFechadevolucion()==null) {
return i;
}
}
return -1;
}

//Método de búsqueda para las devoluciones
private int buscarPrestamo(long codusuario, char tipomaterial, long codmaterial) {
for (int i = 0; i < this.prestamos.size(); i++) {
if (codusuario==this.prestamos.elementAt(i).getCodusuario()&&tipomaterial==this.prestamos.elementAt(i).getCodmaterial()&&
codmaterial==this.prestamos.elementAt(i).getCodmaterial()&&this.prestamos.elementAt(i).getFechadevolucion()==null) {
return i;
}
}
return -1;
}
}
Loading

0 comments on commit 523557d

Please sign in to comment.