Advertisement
LEANDRONIEVA

ejercicio 6 tp 4

Oct 28th, 2022 (edited)
1,162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.84 KB | None | 0 0
  1. import tp0.Helper;
  2.  
  3. public class Tp4ejercicio6 {
  4.  
  5.     public static void main(String[] args) {
  6.         // TODO Auto-generated method stub
  7.         int opcion,opcion2;
  8.         float duracion;
  9.         ILinkedList<Video> listaVid = new SimpleLinkedList<>();
  10.         ILinkedList<Video> listaAux = new SimpleLinkedList<>();
  11.         Video video = new Video();
  12.         String cadena;
  13.        
  14.         System.out.println("Ejercicio 6 Tp 4");
  15.         System.out.println("Crearemos listas de de reproduccion de videos");
  16.        
  17.         do {
  18.             opcion = menu();
  19.             switch (opcion) {
  20.             case 1:
  21.                 opcion2 = menu2();
  22.                 switch(opcion2) {
  23.                 case 1:
  24.                     System.out.println("Agreguemos los datos de video:");
  25.                     video = cargarVid(listaVid);               
  26.                     if(listaVid.size()<=0) {
  27.                         video = cargarVid(listaVid,video);
  28.                         listaVid.addLast(video);
  29.                     }else {
  30.                         while(!validar(listaVid,video)) {
  31.                             System.out.println("El ID ya está en uso. Ingrese uno diferente");
  32.                             video = cargarVid(listaVid);
  33.                         }
  34.                         video = cargarVid(listaVid,video);
  35.                         listaVid.addLast(video);
  36.                     }          
  37.                     System.out.println(listaVid.toString());
  38.                     break;
  39.                 case 2:
  40.                     video = generarVid();
  41.                     if(listaVid.size()<=0) {
  42.                         listaVid.addLast(video);
  43.                     }else {
  44.                         while(!validar(listaVid,video)) {
  45.                             video = generarVid();
  46.                         }
  47.                         listaVid.addLast(video);
  48.                     }  
  49.                     System.out.println(listaVid.toString());
  50.                     break;
  51.                 }
  52.                 break;
  53.             case 2:
  54.                 if (listaVid.size()<=0) {
  55.                     System.out.println("Primero debe agregar videos!");
  56.                 }else {
  57.                     System.out.println("Ingrese el tema que desea buscar:");
  58.                     cadena = Helper.scanner.nextLine();
  59.  
  60.                     listaAux = ordenarPorTema(listaVid, cadena);
  61.                     if(listaAux.size()<=0) {
  62.                         System.out.println("No se encontraron elementos");
  63.                     }else {
  64.                     System.out.println(listaAux.toString());   
  65.                     System.out.println("La duracion total de los videos de este tema es :");
  66.                     System.out.println(duracionTotal(listaAux));
  67.                     }
  68.                 }
  69.                 break;
  70.             case 3:
  71.                 if (listaVid.size()<=0) {
  72.                     System.out.println("Primero debe agregar videos!");
  73.                 }else {
  74.                     duracion = Helper.getPositiveFloat("Ingrese la duración máxima que desea en los videos");
  75.                     listaAux = ordenarPorDuracion(listaVid, duracion);
  76.                     if(listaAux.size()<=0) {
  77.                         System.out.println("No se encontraron elementos con duración menor o igual a la dada");
  78.                     }else {
  79.                     System.out.println(listaAux.toString());
  80.                     }
  81.                 }
  82.                 break;
  83.             case 4:
  84.                 if (listaVid.size()<=0) {
  85.                     System.out.println("Primero debe agregar videos!");
  86.                 }else {
  87.                     int n = Helper.getPositiveInt("Ingrese la cantidad de videos que desea");
  88.  
  89.                     if(n>listaVid.size()) {
  90.                         System.out.println("La lista no posee tantos videos. Agregue más videos a la lista!");
  91.                     }else {
  92.                         listaAux = listaAle(listaVid,n);
  93.                         System.out.println(listaAux.toString());
  94.                     }
  95.                 }
  96.                 break;
  97.             case 5:
  98.                 if (listaVid.size()<=0) {
  99.                     System.out.println("Primero debe agregar videos!");
  100.                 }else {
  101.                     System.out.println("Ingrese el creador de los videos que busca:");
  102.                     cadena = Helper.scanner.nextLine();
  103.  
  104.                     listaAux = buscarPorCreador(listaVid, cadena);
  105.                     if(listaAux.size()<=0) {
  106.                         System.out.println("No se encontraron videos de dicho creador");
  107.                     }else {
  108.                     System.out.println(listaAux.toString());
  109.                     }
  110.                 }
  111.                 break;
  112.             case 6:
  113.                 if (listaVid.size()<=0) {
  114.                     System.out.println("Primero debe agregar videos!");
  115.                 }else {
  116.                     System.out.println(listaVid.toString());
  117.                 }
  118.                 break;
  119.             case 7:
  120.                 System.out.println("Hasta pronto!");
  121.                 break;
  122.             default:
  123.                 System.out.println("No es una opción correcta ");
  124.                 break;
  125.             }
  126.         }while(opcion!=7);
  127.     }
  128.  
  129.     public static int menu2() {
  130.         int op;
  131.         System.out.println();
  132.         System.out.println("1.Ingresar manualmente");
  133.         System.out.println("2.Generar aleatoriamente");
  134.         System.out.println("3.Volver");
  135.         op = Helper.getPositiveInt("Ingrese una opcion");
  136.  
  137.         return op;
  138.     }
  139.    
  140.     public static int menu() {
  141.         int op;
  142.        
  143.         System.out.println();
  144.         System.out.println("1.Agregar video");
  145.         System.out.println("2.Buscar por tema");
  146.         System.out.println("3.Buscar por duración");
  147.         System.out.println("4.Sublista aleatoria");
  148.         System.out.println("5.Buscar por creador");
  149.         System.out.println("6.Mostrar lista original");
  150.         System.out.println("7.Finalizar programa");
  151.        
  152.         op = Helper.getPositiveInt("Ingrese una opcion");
  153.        
  154.         return op;
  155.     }
  156.    
  157.     public static Video cargarVid(ILinkedList<Video> lista) {
  158.         Video vid = new Video();
  159.        
  160.         vid.setId(Helper.getPositiveInt("Ingrese identificador del video"));
  161.  
  162.         return vid;
  163.     }
  164.     public static Video cargarVid(ILinkedList<Video> lista,Video vid) {
  165.         System.out.println("Ingrese título");
  166.         vid.setTitulo(Helper.scanner.nextLine());
  167.         System.out.println("Ingrese creador");
  168.         vid.setCreador(Helper.scanner.nextLine());
  169.         vid.setDuracion(Helper.getPositiveInt("Ingrese la duracion del video"));
  170.        
  171.         return vid;
  172.     }
  173.  
  174.     public static boolean validar(ILinkedList<Video> lista,Video video) {
  175.         for(Video v: lista) {
  176.             if (v.equals(video))return false;
  177.         }
  178.         return true;
  179.     }
  180.     public static Video generarVid() {
  181.         Video vid = new Video();
  182.        
  183.         vid.setId(id());
  184.         vid.setTitulo(titulo());
  185.         vid.setCreador(creador());
  186.         vid.setDuracion(duracion());
  187.  
  188.         return vid;
  189.     }
  190.    
  191.     public static int id() {
  192.         int id = Helper.random.nextInt(500);
  193.        
  194.         return id;
  195.     }
  196.    
  197.     public static String titulo() {
  198.         String[] titulos = {"Programación orientada a objetos","Definición de clases y objetos","Instaciación de objetos en java",
  199.                 "Clase lista enlazada","Lista enlazada simple","Lista doblemente enlazada","Implementación de clase Queue con SLL",
  200.                 "Implementación de clase Stack con SLL"};
  201.         String titulo = titulos[Helper.random.nextInt(titulos.length)];
  202.        
  203.         return titulo;
  204.     }
  205.    
  206.     public static String creador() {
  207.         String[] creadores = {"JTentor","Pildoritas Informaticas","EPeralta","SPerez Ibarra","Leledios"};
  208.         String creador = creadores[Helper.random.nextInt(creadores.length)];
  209.        
  210.         return creador;
  211.     }
  212.    
  213.     public static float duracion() {
  214.         float id = (float)Helper.random.nextInt(1,120);
  215.        
  216.         return id;
  217.     }
  218.    
  219.     public static ILinkedList<Video> ordenarPorTema(ILinkedList<Video> original, String tema) {
  220.         ILinkedList<Video> ordenada = new SimpleLinkedList<>();
  221.         String titulo;
  222.        
  223.         for(Video v: original) {
  224.             titulo = v.getTitulo().toLowerCase();
  225.             if (titulo.contains(tema.toLowerCase())) {
  226.                 ordenada.addInOrderForVideoTitulo(v);
  227.             }
  228.         }
  229.        
  230.         return ordenada;
  231.     }
  232.    
  233.     public static float duracionTotal(ILinkedList<Video> lista) {
  234.         int duracion = 0;
  235.        
  236.         for(Video v: lista) {
  237.             duracion += v.getDuracion();
  238.         }
  239.        
  240.         return duracion;
  241.     }
  242.    
  243.     public static ILinkedList<Video> ordenarPorDuracion(ILinkedList<Video> original, float max) {
  244.         ILinkedList<Video> ordenada = new SimpleLinkedList<>();
  245.         float duracion;
  246.         for(Video v: original) {
  247.             duracion = v.getDuracion();
  248.             if(duracion<= max)ordenada.addInOrder(v);
  249.         }
  250.        
  251.         return ordenada;
  252.     }
  253.    
  254.     public static ILinkedList<Video> buscarPorCreador(ILinkedList<Video> original, String buscado){
  255.         ILinkedList<Video> salida = new SimpleLinkedList<>();
  256.         String creador;
  257.         for(Video v: original) {
  258.             creador = v.getCreador();
  259.             if (creador.equalsIgnoreCase(buscado)) {
  260.                 salida.addLast(v);
  261.             }
  262.         }
  263.        
  264.         return salida;
  265.     }
  266.    
  267.     public static ILinkedList<Video> listaAle(ILinkedList<Video> original, int n) {
  268.         ILinkedList<Video> ale = new SimpleLinkedList<>();
  269.         int[] ids = new int[original.size()];
  270.         int i = 0;
  271.        
  272.         for (Video v: original) {
  273.             ids[i] = v.getId();
  274.             i++;
  275.         }
  276.        
  277.         while(ale.size()<n) {
  278.             int id = ids[Helper.random.nextInt(ids.length)];       
  279.            
  280.             for (Video v: original) {
  281.                 if((id == v.getId())&!(ale.search(v))) {
  282.                     ale.addFirst(v);
  283.                     break;
  284.                 }
  285.             }
  286.         }
  287.    
  288.         return ale;
  289.     }
  290. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement