jtentor

Para Valentin

Oct 27th, 2020
497
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //
  2. // Created by Julio Tentor <jtentor@fi.unju.edu.ar>
  3. //
  4.  
  5. /*
  6. Utilizar colas para organizar los emails de la cuenta de correo de un usuario. Los correos electrónicos se
  7. agregan inicialmente en la cola Bandeja de Entrada pero posteriormente se los debe reubicar en las colas
  8. Principal, Social y Promociones. La información de los correos es la siguiente: remitente, asunto y cuerpo. Si
  9. el asunto contiene el nombre de alguna red social se debe agregar el correo a la cola Social, si contiene la
  10. palabra oferta, venta o viajes se debe agregar a la cola Promociones y el resto se debe agregar en Principal.
  11. Desencolar los emails de cada cola presentando su información en pantalla e indicar la cantidad de correos
  12. de cada una.
  13. Modifique el programa escrito de manera que permita optar entre el ingreso de valores por consola o por
  14. un generador de valores aleatorios.
  15.  
  16. Indicaciones :
  17. Este ejercicio necesita del objeto scanner para ingresar datos por la consola o teclado, se espera que el
  18. código controle los problemas que normalmente ocurren al operar con la consola o teclado.
  19. Se espera una correcta modularización entre el código que realiza el ingreso y validación de los datos
  20. respecto del código que hace lo que se solicita en el ejercicio.
  21. El ejercicio debe implementar un mecanismo para seleccionar el ingreso de valores por consola o
  22. generados aleatoriamente.
  23.  
  24.  */
  25.  
  26.  
  27. public class TP3E05 {
  28.  
  29.     private MailAccount mailAccount;
  30.  
  31.     public void Run() {
  32.  
  33.         mailAccount = new MailAccount();
  34.  
  35.         getData();
  36.  
  37.         System.out.println("Mails creados:\n" + mailAccount.toStringInBox() );
  38.  
  39.         mailAccount.processAllMails();
  40.  
  41.         System.out.println("\n" + mailAccount.toStringAllLabels());
  42.     }
  43.  
  44.  
  45.     private void getData() {
  46.  
  47.         Integer option;
  48.         while (true) {
  49.             System.out.println(
  50.                     "\nTrabajo Práctico Nº 3 - Ejercicio 5\n" +
  51.                             "\nOpciones" +
  52.                             "\n 1. Ingresa valores por consola" +
  53.                             "\n 2. Genera valores aleatorios"
  54.             );
  55.             option = Helper.getInteger("\nSu opción: ");
  56.  
  57.             switch (option) {
  58.                 case 1 :
  59.                     consoleInput();
  60.                     return;
  61.                 case 2 :
  62.                     randomGenerate();
  63.                     return;
  64.             }
  65.         }
  66.     }
  67.  
  68.  
  69.  
  70.     private void consoleInput() {
  71.  
  72.         String sender;
  73.         String subject;
  74.         String body;
  75.  
  76.         System.out.println("\nIngrese los datos de los mails");
  77.         do {
  78.             while(true) {
  79.                 System.out.print("Remitente: ");
  80.                 sender = Helper.scanner.nextLine();
  81.                 if (!sender.isEmpty()) {
  82.                     break;
  83.                 }
  84.                 System.out.println("Ingrese un remitente válido...");
  85.             }
  86.  
  87.             while(true) {
  88.                 System.out.print("Asunto...: ");
  89.                 subject = Helper.scanner.nextLine();
  90.                 if (!subject.isEmpty()) {
  91.                     break;
  92.                 }
  93.                 System.out.println("Ingrese un asunto válido...");
  94.             }
  95.  
  96.             while(true) {
  97.                 System.out.print("Cuerpo...: ");
  98.                 body = Helper.scanner.nextLine();
  99.                 if (!body.isEmpty()) {
  100.                     break;
  101.                 }
  102.                 System.out.println("Ingrese un cuerpo válido...");
  103.             }
  104.  
  105.             if ( !mailAccount.add(new EMail(sender, subject, body)) ) {
  106.                 System.out.println("La bandeja de entrada está llena ...");
  107.             }
  108.         } while (Character.toUpperCase(Helper.getCharacter("Ingresa otro mail (S/N): ")) != 'N');
  109.     }
  110.  
  111.     private void randomGenerate() {
  112.         for(int count = Helper.random.nextInt(20) + 1; count > 0; --count) {
  113.             mailAccount.add(
  114.                 new EMail(
  115.                         senderValues[Helper.random.nextInt(senderValues.length)],
  116.                         subjectValues[Helper.random.nextInt(subjectValues.length)],
  117.                         "Cuerpo del mail"));
  118.         }
  119.  
  120.     }
  121.  
  122.     private static String [] senderValues = new String[] {
  123.       "Ana", "Baltazar", "Carola", "Dario", "Estela", "Federico", "Gloria", "Horacio", "Ines"
  124.     };
  125.     private static String [] subjectValues = new String[] {
  126.             "Facebook avisa que llevas una hora conectado",
  127.             "Felicitaciones aprobó Estructura de Datos",
  128.             "Instagram está bueno",
  129.             "Oferta de notebook",
  130.             "Tienen que dedicarse más",
  131.             "Tik Tok es entretenido",
  132.             "Un poco de esfuerzo no hace mal",
  133.             "Venta de chupetines",
  134.             "Nos se pueden hacer Viajes a china"
  135.     };
  136. }
  137.  
RAW Paste Data