public static void main(String[] args) { // Variable que nos permite manipular la lista de peliculas y juegos. ListaPeliJuegos peliJuegos = new ListaPeliJuegos(); // Variable que nos permite manipular la lista de usuarios. ListaUsuario usuarios = new ListaUsuario(); // Variable que nos permite manipular la lista de inventario. ListaInventario inventario = new ListaInventario(); // Variable que nos permite manipular la lista de rentas. ListaRenta rentas = new ListaRenta(); // Variable que nos permite manipular la lista de ventas. ListaVenta ventas = new ListaVenta(); // Variable que nos provee de ciertos métodos necesarios. Metodos metodos = new Metodos(); // Variable que nos ayuda a llevar el control de las fechas. Calendar fecha = Calendar.getInstance(); // Acá insertamos las películas predeterminadas a la lista de peliculas y juegos y a la lista // del inventario. NodoPeliJuego nodo1 = peliJuegos.AgregarPeliJuego(peliJuegos.nodo1()); inventario.InsertarInventario(nodo1); NodoPeliJuego nodo2 = peliJuegos.AgregarPeliJuego(peliJuegos.nodo2()); inventario.InsertarInventario(nodo2); NodoPeliJuego nodo3 = peliJuegos.AgregarPeliJuego(peliJuegos.nodo3()); inventario.InsertarInventario(nodo3); NodoPeliJuego nodo4 = peliJuegos.AgregarPeliJuego(peliJuegos.nodo4()); inventario.InsertarInventario(nodo4); NodoPeliJuego nodo5 = peliJuegos.AgregarPeliJuego(peliJuegos.nodo5()); inventario.InsertarInventario(nodo5); NodoPeliJuego nodo6 = peliJuegos.AgregarPeliJuego(peliJuegos.nodo6()); inventario.InsertarInventario(nodo6); NodoPeliJuego nodo7 = peliJuegos.AgregarPeliJuego(peliJuegos.nodo7()); inventario.InsertarInventario(nodo7); NodoPeliJuego nodo8 = peliJuegos.AgregarPeliJuego(peliJuegos.nodo8()); inventario.InsertarInventario(nodo8); NodoPeliJuego nodo9 = peliJuegos.AgregarPeliJuego(peliJuegos.nodo9()); inventario.InsertarInventario(nodo9); NodoPeliJuego nodo10 = peliJuegos.AgregarPeliJuego(peliJuegos.nodo10()); inventario.InsertarInventario(nodo10); int opt = 0; do { try { Scanner teclado = new Scanner(System.in); System.out.println( "Menú\n" + "1. Insertar y modificar inventario \n" + "2. Buscar pelìculas por genero\n" + "3. Venta\n" + "4. Renta\n" + "5. Mostrar inventario\n" + "6. Usuarios\n" + "7. Pelìculas con renta activa \n" + "8. Pelicula más rentada/comprada\n" + "9. Pelicula menos rentada/comprada\n" + "10. Salir"); opt = teclado.nextInt(); switch (opt) { case 1: // Variables que nos permiten definir el nodo a insertar. NodoPeliJuego nodos = new NodoPeliJuego(); String nombre; String tipo = ""; int costo; String genero; System.out.println("1. Insertar\n" + "2. Modificar\n" + "3. Eliminar"); opt = teclado.nextInt(); switch (opt) { case 1: teclado = new Scanner(System.in); int opcion; System.out.println("Nombre de película o juego:"); nombre = teclado.nextLine(); System.out.println("Tipo:\n" + "1. Película\n" + "2. Juego"); opcion = teclado.nextInt(); switch (opcion) { case 1: tipo = "Pelicula"; break; case 2: tipo = "Juego"; break; } System.out.println("Costo por unidad:"); costo = teclado.nextInt(); System.out.println("Género"); genero = teclado.next(); nodos.setNombre(nombre); nodos.setCosto(costo); nodos.setGenero(genero); nodos.setTipo(tipo); nodos = peliJuegos.AgregarPeliJuego(nodos); inventario.InsertarInventario(nodos); break; case 2: // Variables que nos permiten buscar y modificar el nodo deseado. int option; teclado = new Scanner(System.in); System.out.println("Nombre de la película a modificar"); String buscarNombre = teclado.nextLine(); System.out.println("Nombre nuevo de película o juego:"); nombre = teclado.nextLine(); System.out.println("Tipo:\n" + "1. Película\n" + "2. Juego"); option = teclado.nextInt(); switch (option) { case 1: tipo = "Pelicula"; break; case 2: tipo = "Juego"; break; } System.out.println("Costo por unidad:"); costo = teclado.nextInt(); System.out.println("Género"); genero = teclado.next(); nodos.setNombre(nombre); nodos.setCosto(costo); nodos.setGenero(genero); nodos.setTipo(tipo); peliJuegos.modificarPeliJuego(buscarNombre, nodos); break; case 3: // Variable que nos permite buscar la película que se desea eliminar. teclado = new Scanner(System.in); String delPeli; System.out.println("Nombre de la pelìcula"); delPeli = teclado.nextLine(); peliJuegos.BorrarPelicula(delPeli); break; } break; case 2: // Variables que nos permiten buscar todas las películas con el genero deseado. teclado = new Scanner(System.in); String buscarGenero; System.out.println("Digite el genero deseado"); buscarGenero = teclado.nextLine(); System.out.println(metodos.printMovie(peliJuegos.getRaiz(), buscarGenero)); break; case 3: teclado = new Scanner(System.in); String usuario; String movie; System.out.println("1. Efectuar venta\n" + "2. Compras clientes"); int opti = teclado.nextInt(); switch (opti) { case 1: // Variables que nos permiten registrar el comprador y buscar la película a vender. teclado = new Scanner(System.in); System.out.println("Nombre de comprador:"); usuario = teclado.nextLine(); System.out.println("Nombre de pelicula"); movie = teclado.nextLine(); ventas.agregarVenta(usuario, movie, peliJuegos.getRaiz()); break; case 2: // Variable que nos permite listar todas las compras del usuario deseado. teclado = new Scanner(System.in); String seekUser; System.out.println("Nombre del usuario"); seekUser = teclado.nextLine(); metodos.ventasClientes(ventas.getRaiz(), seekUser); break; } break; case 4: teclado = new Scanner(System.in); String socio; String peli; System.out.println("1. Efectuar renta\n" + "2. Deshacer renta"); opt = teclado.nextInt(); switch (opt) { case 1: // Variables que nos permiten identificar al socio y película deseada. teclado = new Scanner(System.in); int mes; System.out.println("Digite el nombre del socio"); socio = teclado.nextLine(); System.out.println("Pelìcula a rentar"); peli = teclado.nextLine(); mes = Calendar.MONTH; rentas.agregarRenta(socio, peli, peliJuegos.getRaiz(), usuarios.getRaiz(), mes); break; case 2: /* Variables que nos permiten eliminar la renta deseada por medio de su ID y lleva el control de cuando el socio devolvio la película rentada. */ teclado = new Scanner(System.in); int ID; int recepcion; System.out.println("ID de renta:"); ID = teclado.nextInt(); System.out.println("Mes de recepcion"); recepcion = teclado.nextInt(); rentas.BorrarRenta(ID, recepcion); break; } break; case 5: // Método que nos imprime todo el inventario con el que se cuenta. System.out.println(metodos.printInventario(inventario.getRaiz())); break; case 6: teclado = new Scanner(System.in); NodoUsuario nuevoUsuario = new NodoUsuario(); System.out.println( "1. Insertar\n" + "2. Modificar\n" + "3. Eliminar\n" + "4. Listar rentas\n"); opt = teclado.nextInt(); switch (opt) { case 1: // Variables que identificaran al socio. String nombreSocio = ""; System.out.println("Nombre del socio:"); nombreSocio = teclado.next(); String direccion = ""; System.out.println("Dirección del socio:"); direccion = teclado.next(); int telefono = 0; System.out.println("Número teléfonico del socio:"); telefono = teclado.nextInt(); nuevoUsuario.setDireccion(direccion); nuevoUsuario.setNombre(nombreSocio); nuevoUsuario.setTelefono(telefono); usuarios.agregarUsuario(nuevoUsuario); break; case 2: /* Variables que nos permiten determinar cuál socio se desea modificar y darle sus atributos. */ teclado = new Scanner(System.in); String nombreUsu = ""; System.out.println("Nombre del usuario a modificar"); nombreUsu = teclado.nextLine(); String nuevoNombre = ""; System.out.println("Nombre del usuario:"); nuevoNombre = teclado.next(); System.out.println("Dirección del usuario:"); direccion = teclado.next(); System.out.println("Teléfono del usuario:"); telefono = teclado.nextInt(); nuevoUsuario.setDireccion(direccion); nuevoUsuario.setNombre(nuevoNombre); nuevoUsuario.setTelefono(telefono); usuarios.modificarUsuario(nuevoUsuario, nombreUsu); break; case 3: // Variable que nos permite determinar cuál socio se desea eliminar. String nombreEliminar = ""; System.out.println("Nombre de usuario: "); nombreEliminar = teclado.next(); usuarios.BorrarUsuario(nombreEliminar); break; case 4: // Método que nos lista todas las rentas activas de un socio. teclado = new Scanner(System.in); String user; System.out.println("Nombre del usuario:"); user = teclado.nextLine(); System.out.println(metodos.rentasClientes(rentas.getListaRenta(), user)); break; } break; case 7: // Método que nos imprime todas las películas que actualmente se encuentran rentadas- System.out.println(metodos.pelisRentaActiva(peliJuegos.getRaiz())); break; case 8: // Método que nos imprime la película más rentada / comprada. System.out.println(metodos.masRentaCompra(peliJuegos.getRaiz())); break; case 9: // Método que nos imprime la película menos rentada / comprada. System.out.println(metodos.menosRentaCompra(peliJuegos.getRaiz())); break; } } catch (RuntimeException e) { System.out.println("Opción incorrecta"); } } while (opt != 10); }