Advertisement
RafaelFascio

TP1 Ejercicio5

Apr 21st, 2021 (edited)
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.04 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.ArrayList;
  3. import java.util.Random;
  4. /*TRABAJO PRACTICO N° 1
  5.  * EJERCICIO 5
  6.  * Escribir un programa que permita ingresar la información de muchos libros de acuerdo a la implementación
  7. del caso ejemplo c); luego el usuario podrá indicar un rango de precios en particular y el programa deberá
  8. mostrar los libros cuyos precios se encuentren dentro del rango especificado.
  9. Indicaciones:
  10. Este ejercicio necesita del objeto scanner para ingresar datos por la consola o teclado, se espera que el
  11. código controle los problemas que normalmente ocurren al operar con la consola o teclado.
  12. Se espera una correcta modularización entre el código que realiza el ingreso y validación de los datos
  13. respecto del código que hace lo que se solicita en el ejercicio.
  14.  
  15.  */
  16.  
  17. public class Ej_5 {
  18.  
  19.     ArrayList<Libro> libros = new ArrayList<Libro>();
  20.     public static void main(String[] args) {
  21.        
  22.  
  23.         Ej_5 ejemplo =  new Ej_5 ( ) ;
  24.         ejemplo. Ejecutar ( ) ;
  25.         ejemplo.mostrarRango();
  26.     }
  27.    
  28.     public void Ejecutar() {
  29.         Scanner reader = new Scanner(System.in);
  30.         Libro libro;
  31.    
  32.         System.out.println("Opciones");
  33.         System.out.println(" 1. Ingresa por consola");
  34.         System.out.println(" 2. Generar aleatoriamente");
  35.         char opcion = reader.next().charAt(0);
  36.         boolean op=true;
  37.        
  38.         switch (opcion) {
  39.        
  40.         case '1' :
  41.             libro = crearLibro();
  42.             libros.add(libro);
  43.             System.out.println(libro);
  44.             while(op) {
  45.             try{   
  46.             System.out.println("Crear otro libro (True/False): ");
  47.             op = reader.nextBoolean();
  48.             if (op) {
  49.                 libro = crearLibro();
  50.                 libros.add(libro);
  51.                 System.out.println(libro);     
  52.             continue;
  53.             }
  54.             break;
  55.             }catch (Exception exception) {
  56.                 System.out.println("!!!!!!!Ingrese un valor Lógico¡¡¡¡¡¡¡('true' o 'false')");
  57.                 op=true;
  58.                 reader.nextLine();
  59.             }
  60.             }
  61.            
  62.         case '2' :  
  63.                     libro = randomCreate();
  64.                     libros.add(libro);
  65.                     System.out.println(libro);
  66.                     while(op) {
  67.                     try{   
  68.                     System.out.println("Crear otro libro (True/False): ");
  69.                     op = reader.nextBoolean();
  70.                     if (op) {
  71.                         libro = randomCreate();
  72.                         libros.add(libro);
  73.                         System.out.println(libro);     
  74.                     continue;
  75.                     }
  76.                     break;
  77.                     }catch (Exception exception) {
  78.                         System.out.println("!!!!!!!Ingrese un valor Lógico¡¡¡¡¡¡¡('true' o 'false')");
  79.                         op=true;
  80.                         reader.nextLine();
  81.                     }
  82.                     }
  83.         }
  84.     }
  85.    
  86.     public void mostrarRango() {
  87.         Scanner read = new Scanner(System.in);
  88.         Libro libroP;
  89.         System.out.println("Ingrese el rango de precios a buscar");
  90.         Integer fromPrecio = 0;
  91.         Integer toPrecio = 0;
  92.        
  93.         while (true) {
  94.             try {
  95.             System.out.println("Desde que precio.: ");
  96.             fromPrecio = Integer.parseInt(read.nextLine());
  97.             if (fromPrecio < 0) {
  98.                 System.out.println("Ingrese un precio correcto");
  99.                 continue;
  100.             }
  101.             break;
  102.             }catch(Exception exception){
  103.                 System.out.println("Ingrese un precio correcto");
  104.             }
  105.         }
  106.         while (true) {
  107.             try {
  108.             System.out.println("Hasta que precio.: ");
  109.             toPrecio = Integer.parseInt(read.nextLine());
  110.             if (toPrecio < fromPrecio) {
  111.                 System.out.println("Ingrese un precio mayor a "+ fromPrecio);
  112.                 continue;
  113.             }
  114.             break;
  115.             }catch(Exception exception) {
  116.                 System.out.println("Ingrese un precio correcto");
  117.             }
  118.         }
  119.        
  120.         int vacio=0;
  121.         Integer precio;
  122.         for (int i=0;i< libros.size();i++) {
  123.             libroP=libros.get(i);
  124.             precio = libroP.getPrecio();;
  125.             if (precio >= fromPrecio && precio <= toPrecio) {
  126.                 System.out.println(libros.get(i));
  127.                 vacio=vacio+1;
  128.             }
  129.         }
  130.         if (vacio==0) {
  131.             System.out.println("No hay ningún Libro en ese rango de precios");
  132.         }
  133.     }
  134.    
  135.    
  136.     public  Libro crearLibro () {
  137.         Scanner scanner = new Scanner(System.in);
  138.         String titulo;
  139.         String autor;
  140.         String editorial;
  141.         Integer añoDePublicacion;
  142.         Integer precio;
  143.        
  144.         System.out.println("Ingrese la informacion del libro");
  145.         System.out.println("Titulo.....:");
  146.         titulo = scanner.nextLine();
  147.        
  148.         System.out.println("Autor......:");
  149.         autor = scanner.nextLine();
  150.        
  151.         System.out.println("Editorial..:");
  152.         editorial = scanner.nextLine();
  153.        
  154.         while (true) {
  155.             try {
  156.                 System.out.println("Año de publicacion:");
  157.                 añoDePublicacion = Integer.parseInt(scanner.nextLine());
  158.                 if (añoDePublicacion < 0 || añoDePublicacion>2022) {
  159.                     System.out.println("Ingrese un año correcto,no superior al año corriente");
  160.                     continue;
  161.                 }
  162.                 break;
  163.             }
  164.             catch (Exception exception) {
  165.                 System.out.println("Ingrese un año correcto");
  166.             }
  167.         }
  168.        
  169.         while (true) {
  170.             try {
  171.                 System.out.println("Precio..:");
  172.                 precio = Integer.parseInt(scanner.nextLine());
  173.                 if (precio < 0) {
  174.                     System.out.println("Ingrese un precio correcto");
  175.                     continue;
  176.                 }
  177.                 break;
  178.             }
  179.             catch (Exception exception) {
  180.                 System.out.println("Ingrese un precio correcto");
  181.             }
  182.         }
  183.         Libro libro = new Libro(titulo, autor, editorial, añoDePublicacion, precio);
  184.         return libro;
  185.     }
  186.    
  187.    
  188.     private Libro randomCreate() {
  189.         String titulo;
  190.         String autor;
  191.         String editorial;
  192.         Integer añoDePublicacion;
  193.         Integer precio;
  194.        
  195.    
  196.        
  197.         titulo = variosTitulos[random.nextInt(variosTitulos.length)];
  198.         autor = variosAutores[random.nextInt(variosAutores.length)];
  199.         editorial = variasEditoriales[random.nextInt(variasEditoriales.length)];
  200.         añoDePublicacion = random.nextInt(2021);
  201.         precio = random.nextInt(1000);
  202.        
  203.         Libro libro = new Libro(titulo, autor, editorial, añoDePublicacion, precio);
  204.         return libro;
  205.     }
  206.    
  207.     //Datos para crear libros aleatoriamente
  208.     private static String[] variosTitulos = {
  209.             "a","b","c","d","e","f","g","h","y","j","k","m",
  210.             "n","o","p","q","r","s","t","u","v","w","x","y","z"
  211.     };
  212.     private static String[] variosAutores = {
  213.             "a","b","c","d","e","f","g","h","y","j","k","m",
  214.             "n","o","p","q","r","s","t","u","v","w","x","y","z"
  215.     };
  216.     private static String[] variasEditoriales = {
  217.             "a","b","c","d","e","f","g","h","y","j","k","m",
  218.             "n","o","p","q","r","s","t","u","v","w","x","y","z"
  219.     };
  220.     static Random random = new Random();
  221.  
  222. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement