Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tp0.Helper;
- public class Tp4ejercicio6 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- int opcion,opcion2;
- float duracion;
- ILinkedList<Video> listaVid = new SimpleLinkedList<>();
- ILinkedList<Video> listaAux = new SimpleLinkedList<>();
- Video video = new Video();
- String cadena;
- System.out.println("Ejercicio 6 Tp 4");
- System.out.println("Crearemos listas de de reproduccion de videos");
- do {
- opcion = menu();
- switch (opcion) {
- case 1:
- opcion2 = menu2();
- switch(opcion2) {
- case 1:
- System.out.println("Agreguemos los datos de video:");
- video = cargarVid(listaVid);
- if(listaVid.size()<=0) {
- video = cargarVid(listaVid,video);
- listaVid.addLast(video);
- }else {
- while(!validar(listaVid,video)) {
- System.out.println("El ID ya está en uso. Ingrese uno diferente");
- video = cargarVid(listaVid);
- }
- video = cargarVid(listaVid,video);
- listaVid.addLast(video);
- }
- System.out.println(listaVid.toString());
- break;
- case 2:
- video = generarVid();
- if(listaVid.size()<=0) {
- listaVid.addLast(video);
- }else {
- while(!validar(listaVid,video)) {
- video = generarVid();
- }
- listaVid.addLast(video);
- }
- System.out.println(listaVid.toString());
- break;
- }
- break;
- case 2:
- if (listaVid.size()<=0) {
- System.out.println("Primero debe agregar videos!");
- }else {
- System.out.println("Ingrese el tema que desea buscar:");
- cadena = Helper.scanner.nextLine();
- listaAux = ordenarPorTema(listaVid, cadena);
- if(listaAux.size()<=0) {
- System.out.println("No se encontraron elementos");
- }else {
- System.out.println(listaAux.toString());
- System.out.println("La duracion total de los videos de este tema es :");
- System.out.println(duracionTotal(listaAux));
- }
- }
- break;
- case 3:
- if (listaVid.size()<=0) {
- System.out.println("Primero debe agregar videos!");
- }else {
- duracion = Helper.getPositiveFloat("Ingrese la duración máxima que desea en los videos");
- listaAux = ordenarPorDuracion(listaVid, duracion);
- if(listaAux.size()<=0) {
- System.out.println("No se encontraron elementos con duración menor o igual a la dada");
- }else {
- System.out.println(listaAux.toString());
- }
- }
- break;
- case 4:
- if (listaVid.size()<=0) {
- System.out.println("Primero debe agregar videos!");
- }else {
- int n = Helper.getPositiveInt("Ingrese la cantidad de videos que desea");
- if(n>listaVid.size()) {
- System.out.println("La lista no posee tantos videos. Agregue más videos a la lista!");
- }else {
- listaAux = listaAle(listaVid,n);
- System.out.println(listaAux.toString());
- }
- }
- break;
- case 5:
- if (listaVid.size()<=0) {
- System.out.println("Primero debe agregar videos!");
- }else {
- System.out.println("Ingrese el creador de los videos que busca:");
- cadena = Helper.scanner.nextLine();
- listaAux = buscarPorCreador(listaVid, cadena);
- if(listaAux.size()<=0) {
- System.out.println("No se encontraron videos de dicho creador");
- }else {
- System.out.println(listaAux.toString());
- }
- }
- break;
- case 6:
- if (listaVid.size()<=0) {
- System.out.println("Primero debe agregar videos!");
- }else {
- System.out.println(listaVid.toString());
- }
- break;
- case 7:
- System.out.println("Hasta pronto!");
- break;
- default:
- System.out.println("No es una opción correcta ");
- break;
- }
- }while(opcion!=7);
- }
- public static int menu2() {
- int op;
- System.out.println();
- System.out.println("1.Ingresar manualmente");
- System.out.println("2.Generar aleatoriamente");
- System.out.println("3.Volver");
- op = Helper.getPositiveInt("Ingrese una opcion");
- return op;
- }
- public static int menu() {
- int op;
- System.out.println();
- System.out.println("1.Agregar video");
- System.out.println("2.Buscar por tema");
- System.out.println("3.Buscar por duración");
- System.out.println("4.Sublista aleatoria");
- System.out.println("5.Buscar por creador");
- System.out.println("6.Mostrar lista original");
- System.out.println("7.Finalizar programa");
- op = Helper.getPositiveInt("Ingrese una opcion");
- return op;
- }
- public static Video cargarVid(ILinkedList<Video> lista) {
- Video vid = new Video();
- vid.setId(Helper.getPositiveInt("Ingrese identificador del video"));
- return vid;
- }
- public static Video cargarVid(ILinkedList<Video> lista,Video vid) {
- System.out.println("Ingrese título");
- vid.setTitulo(Helper.scanner.nextLine());
- System.out.println("Ingrese creador");
- vid.setCreador(Helper.scanner.nextLine());
- vid.setDuracion(Helper.getPositiveInt("Ingrese la duracion del video"));
- return vid;
- }
- public static boolean validar(ILinkedList<Video> lista,Video video) {
- for(Video v: lista) {
- if (v.equals(video))return false;
- }
- return true;
- }
- public static Video generarVid() {
- Video vid = new Video();
- vid.setId(id());
- vid.setTitulo(titulo());
- vid.setCreador(creador());
- vid.setDuracion(duracion());
- return vid;
- }
- public static int id() {
- int id = Helper.random.nextInt(500);
- return id;
- }
- public static String titulo() {
- String[] titulos = {"Programación orientada a objetos","Definición de clases y objetos","Instaciación de objetos en java",
- "Clase lista enlazada","Lista enlazada simple","Lista doblemente enlazada","Implementación de clase Queue con SLL",
- "Implementación de clase Stack con SLL"};
- String titulo = titulos[Helper.random.nextInt(titulos.length)];
- return titulo;
- }
- public static String creador() {
- String[] creadores = {"JTentor","Pildoritas Informaticas","EPeralta","SPerez Ibarra","Leledios"};
- String creador = creadores[Helper.random.nextInt(creadores.length)];
- return creador;
- }
- public static float duracion() {
- float id = (float)Helper.random.nextInt(1,120);
- return id;
- }
- public static ILinkedList<Video> ordenarPorTema(ILinkedList<Video> original, String tema) {
- ILinkedList<Video> ordenada = new SimpleLinkedList<>();
- String titulo;
- for(Video v: original) {
- titulo = v.getTitulo().toLowerCase();
- if (titulo.contains(tema.toLowerCase())) {
- ordenada.addInOrderForVideoTitulo(v);
- }
- }
- return ordenada;
- }
- public static float duracionTotal(ILinkedList<Video> lista) {
- int duracion = 0;
- for(Video v: lista) {
- duracion += v.getDuracion();
- }
- return duracion;
- }
- public static ILinkedList<Video> ordenarPorDuracion(ILinkedList<Video> original, float max) {
- ILinkedList<Video> ordenada = new SimpleLinkedList<>();
- float duracion;
- for(Video v: original) {
- duracion = v.getDuracion();
- if(duracion<= max)ordenada.addInOrder(v);
- }
- return ordenada;
- }
- public static ILinkedList<Video> buscarPorCreador(ILinkedList<Video> original, String buscado){
- ILinkedList<Video> salida = new SimpleLinkedList<>();
- String creador;
- for(Video v: original) {
- creador = v.getCreador();
- if (creador.equalsIgnoreCase(buscado)) {
- salida.addLast(v);
- }
- }
- return salida;
- }
- public static ILinkedList<Video> listaAle(ILinkedList<Video> original, int n) {
- ILinkedList<Video> ale = new SimpleLinkedList<>();
- int[] ids = new int[original.size()];
- int i = 0;
- for (Video v: original) {
- ids[i] = v.getId();
- i++;
- }
- while(ale.size()<n) {
- int id = ids[Helper.random.nextInt(ids.length)];
- for (Video v: original) {
- if((id == v.getId())&!(ale.search(v))) {
- ale.addFirst(v);
- break;
- }
- }
- }
- return ale;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement