De esto trata el problema: En una biblioteca se desean agregar libros para cada una de sus categorías las cuales son: Cuerpo humano, Tecnología, Informática y Programación para ello deben introducir la siguiente información: Nombre del libro, Autor, Editorial y Fecha.
Cuando quiero pasar a cualquier caso diferente del 1, 6 y default me marca la excepción :c
import java.util.*;
//Estructura de los libros
class Libros
{
String titulo;
String autor;
String editorial;
String fecha;
}
public class Biblioteca
{
public static void main(String[] args) throws Exception
{
Scanner leer=new Scanner(System.in);
Libros areas[][]=new Libros[2][2];
byte opcion=0,posicion=0;
String libro="",tituloB="";
areas[0][0]=new Libros();
areas[0][1]=new Libros();
areas[1][0]=new Libros();
areas[1][1]=new Libros();
System.out.println("*** Categor\u00edas Disponibles ***");
System.out.println("*** 1.-Cuerpo Humano ***\n*** 2.-Tecnolog\u00eda ***\n*** 3.-Inform\u00e1tica ***\n*** 4.-Programaci\u00f3n ***");
System.out.println("***********************************");
do
{
leer.nextLine();
System.out.println("\n*** Men\u00fa Principal *****");
System.out.println("*** 1.-Agregar libro ***\n*** 2.-Modificar datos de un libro ***\n*** 3.-Eliminar un libro ***\n"+"*** 4.-Buscar un libro ***\n*** 5.-Mostrar libros disponibles ***\n*** 6.-Salir ***");
System.out.println("*************************************");
System.out.print("Qué desea realizar? ");
opcion=leer.nextByte();
switch (opcion)
{
case 1:
System.out.println("En qué categor\u00eda desea agregarlo? ");
posicion=leer.nextByte();
switch (posicion)
{
case 1:
leer.nextLine();
System.out.print("Ingrese el t\u00edtulo del libro: ");
areas[0][0].titulo=leer.nextLine();
System.out.print("Ingrese el nombre del autor: ");
areas[0][0].autor=leer.nextLine();
System.out.print("Ingrese la editorial: ");
areas[0][0].editorial=leer.nextLine();
System.out.print("Ingrese la fecha con formato aaaa/mm/dd: ");
areas[0][0].fecha=leer.nextLine();
System.out.println("");
break;
case 2:
leer.nextLine();
System.out.print("Ingrese el t\u00edtulo del libro: ");
areas[0][1].titulo=leer.nextLine();
System.out.print("Ingrese el nombre del autor: ");
areas[0][1].autor=leer.nextLine();
System.out.print("Ingrese la editorial: ");
areas[0][1].editorial=leer.nextLine();
System.out.print("Ingrese la fecha con formato aaaa/mm/dd: ");
areas[0][1].fecha=leer.nextLine();
System.out.println("");
break;
case 3:
leer.nextLine();
System.out.print("Ingrese el t\u00edtulo del libro: ");
areas[1][0].titulo=leer.nextLine();
System.out.print("Ingrese el nombre del autor: ");
areas[1][0].autor=leer.nextLine();
System.out.print("Ingrese la editorial: ");
areas[1][0].editorial=leer.nextLine();
System.out.print("Ingrese la fecha con formato aaaa/mm/dd: ");
areas[1][0].fecha=leer.nextLine();
System.out.println("");
break;
case 4:
leer.nextLine();
System.out.print("Ingrese el t\u00edtulo del libro: ");
areas[1][1].titulo=leer.nextLine();
System.out.print("Ingrese el nombre del autor: ");
areas[1][1].autor=leer.nextLine();
System.out.print("Ingrese la editorial: ");
areas[1][1].editorial=leer.nextLine();
System.out.print("Ingrese la fecha con formato aaaa/mm/dd: ");
areas[1][1].fecha=leer.nextLine();
System.out.println("");
break;
default:
System.out.println("Ingrese una categoria v\u00e1lida...");
}
break;
case 2:
leer.nextLine();
System.out.println("Qué libro desea editar?");
libro=leer.nextLine();
for (int filas=0; filas<areas.length; filas++)
for (int columnas=0; columnas<areas.length; columnas++)
{
if(areas[filas][columnas].titulo.equalsIgnoreCase(libro))
{
System.out.print("\nTitulo: "+areas[filas][columnas].titulo+"\nAutor: "+areas[filas][columnas].autor+"\nEditorial: "
+areas[filas][columnas].editorial+"\nFecha de registro: "+areas[filas][columnas].fecha+"\n");
System.out.print("Ingrese el t\u00edtulo del libro: ");
areas[filas][columnas].titulo=leer.nextLine();
System.out.print("Ingrese el nombre del autor: ");
areas[filas][columnas].autor=leer.nextLine();
System.out.print("Ingrese la editorial: ");
areas[filas][columnas].editorial=leer.nextLine();
System.out.print("Ingrese la fecha con formato aaaa/mm/dd: ");
areas[filas][columnas].fecha=leer.nextLine();
System.out.println("");
break;
}
}
System.out.println("Datos actulizados con \u00e9xito!");
break;
case 3:
leer.nextLine();
System.out.println("Qué libro desea eliminar?");
libro=leer.nextLine();
for (int filas=0; filas<areas.length; filas++)
for (int columnas=0; columnas<areas.length; columnas++)
{
if(areas[filas][columnas].titulo.equalsIgnoreCase(libro))
{
areas[filas][columnas].titulo="";
areas[filas][columnas].autor="";
areas[filas][columnas].editorial="";
areas[filas][columnas].fecha="";
break;
}
}
System.out.println("Libro eliminado conéxito!");
break;
case 4:
leer.nextLine(); //Limpia el objeto de lectura
System.out.println("Qué libro desea buscar?");
libro=leer.nextLine();
for (int filas=0; filas<areas.length; filas++)
for (int columnas=0; columnas<areas.length; columnas++)
{
if(areas[filas][columnas].titulo.equalsIgnoreCase(libro))
{
System.out.print("Titulo: "+areas[filas][columnas].titulo+"\nAutor: "+areas[filas][columnas].autor+"\nEditorial: "
+areas[filas][columnas].editorial+"\nFecha de registro: "+areas[filas][columnas].fecha+"\n");
break;
}
}
break;
case 5:
for (int filas=0; filas<areas.length; filas++)
{
for (int columnas=0; columnas<areas.length; columnas++)
{
System.out.print("\nTitulo: "+areas[filas][columnas].titulo+"\nAutor: "+areas[filas][columnas].autor+"\nEditorial: "
+areas[filas][columnas].editorial+"\nFecha de registro: "+areas[filas][columnas].fecha+"\n");
}
System.out.println("");
}
break;
case 6:
System.out.print("Hasta luego...");
break;
default:
System.out.println("Ingresa una opci\u00f3n v\u00e1lida...");
}
}while(opcion != 6);
}
}