Advertisement
JuanFelipeArango28

pregunta1 ipoo 1

Feb 3rd, 2021
525
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 14.68 KB | None | 0 0
  1. /*
  2.  
  3. NOMBRES:
  4. Miguel Angel Rivera Reyes 2059876-3743
  5. Juan Felipe Arango Guzman 2060066-3743
  6.  */
  7. package taller.pkg1;
  8.  
  9. import javax.swing.JOptionPane;
  10. import java.text.DecimalFormat;
  11. public class Taller1 {
  12.  
  13.     String datos[][] = new String[50][6];
  14.     String entrada;
  15.     int Contadorcolumnas;
  16.     int contadorfilas, contador;
  17.     public void menu() {
  18.         boolean bandera = false;
  19.  
  20.      do{   entrada = JOptionPane.showInputDialog("Ingrese una opcion valida\n\n"
  21.                 +"a. Ingresar los datos del pesaje\n"
  22.                 + "b. Mostrad la cantidad de viajes realizados en total y peso\n"
  23.                 + "c. Mostrar la cantidad a los tres destinos y el peso promedio de los tres destinos\n"
  24.                 + "d. Consultar los viajes por fecha y destino\n"
  25.                 + "e. Salir.\n");
  26.        
  27.         char opcion = (char)entrada.codePointAt(0);
  28.        
  29.         switch(opcion){
  30.            
  31.             case'a': opcionA();  break;
  32.             case'b': opcionB(); break;
  33.             case'c': opcionC(); break;
  34.             case'd': opcionD(); break;
  35.             case'e': bandera = true; break;
  36.             default: JOptionPane.showMessageDialog(null, "Verifique que la opcion digitada sea valida.", "ERROR", 0);
  37.         }
  38.     }while(bandera != true);
  39.     }
  40.  
  41.     public void opcionA(){
  42.        
  43.    
  44.     boolean bandera2 = false;
  45.     int bandera3 = 0;
  46.     int contadorVerifiacacion =0;
  47.     int verificarInt;
  48.     String placa;
  49.     String entradaLetras = null, entradaNumeros =null;
  50.  
  51.    
  52.     do{
  53.         entrada = JOptionPane.showInputDialog("Ingresar los datos del pesaje\n\n" +
  54.                 "Placa del vehiculo\n"
  55.                 + "Ingrese la placa del vehiculo.\n");
  56.          placa = entrada;
  57.        
  58.          
  59.          if(placa.length() < 6 || placa.length() >6){
  60.          JOptionPane.showMessageDialog(null, "Los datos ingresados no corresponden a una placa, tenga en cuenta que su placa esta conformada por 6 digitos, 3(letras) y 3 (numeros) RESPECTIVAMENTE",
  61.                  "ERROR", 0);
  62.          }
  63.          else{
  64.         entradaLetras = placa.substring(0, 3);
  65.          
  66.         entradaNumeros = placa.substring(3, 6);
  67.          
  68.          
  69.          System.out.println(entradaLetras);
  70.          System.out.println(entradaNumeros);
  71.          
  72.           try {
  73.              verificarInt = Integer.parseInt(entradaNumeros);
  74.              bandera3++;
  75.         } catch (Exception e) {
  76.             JOptionPane.showMessageDialog(null, "Verifique que los 3 ultimos digitos de su placa sean NUMEROS");
  77.         }
  78.        
  79.          
  80.         for (int x = 0; x < entradaLetras.length(); x++) {
  81.                 char c = entradaLetras.charAt(x);
  82.                
  83.                 if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))) {
  84.                    
  85.                       JOptionPane.showMessageDialog(null, "Error, verifique que hayas digitado las 3 letras de la placa se su vehiculo.");
  86.                       contadorVerifiacacion = 0;
  87.                       break;
  88.                 }else
  89.                 {contadorVerifiacacion++;
  90.                     System.out.println(contadorVerifiacacion);
  91.                
  92.                     }
  93.                 }
  94.         if(contadorVerifiacacion ==3 && bandera3 ==1){
  95.                     bandera2 =true;
  96.         }
  97.        
  98.          }
  99.     }while(bandera2 !=true);
  100.        
  101.     boolean banderapeso = false;
  102.     int pesoInt =0;
  103.     String peso;
  104.        do{ entrada = JOptionPane.showInputDialog("Ingresar los datos del pesaje\n\n" +
  105.                 "Peso");
  106.         peso = entrada;
  107.        
  108.            try {
  109.                 pesoInt = Integer.parseInt(peso);
  110.                
  111.                 if(pesoInt <= 50)
  112.                 banderapeso = true;
  113.                 else
  114.                     JOptionPane.showMessageDialog(null, "El peso maximo permitido por nuestras carreteras es de un maximo de 50 toneladas, por favor verifique que el peso de su vehiculo este en ese rango", "ERROR",0);
  115.            } catch (Exception e) {
  116.                JOptionPane.showMessageDialog(null, "Ingrese solo numeros, no ingresar una letra ni otro caracter posible", "ERROR", 0);
  117.            }
  118.        
  119.        }while(banderapeso != true);
  120.         String destino;
  121.         boolean banderaDestino = false;
  122.        do{
  123.            
  124.            entrada = JOptionPane.showInputDialog("Ingresar los datos del pesaje\n\n" +
  125.                 "Destino\n" +
  126.                  "1. Buenaventura\n" +
  127.                  "2. Bogota\n" +
  128.                  "3. Barranquilla\n");
  129.                destino = entrada;
  130.                
  131.                
  132.                
  133.                
  134.                switch(destino){
  135.                    
  136.                    case "1": banderaDestino = true; break;
  137.                    case "2": banderaDestino = true; break;
  138.                    case "3": banderaDestino = true; break;
  139.                    default: JOptionPane.showMessageDialog(null, "Ingrese una opcion valida", "ERROR",0);
  140.  
  141.                    
  142.                }
  143.                
  144.        }while(banderaDestino != true);
  145.        
  146.        boolean banderaMes = false;
  147.        String mes;
  148.        int RangoMes=0, mesint;
  149.        do{
  150.            entrada = JOptionPane.showInputDialog("Ingresar los datos del pesaje\n\n" +
  151.                 "Fecha\n"
  152.                  + "2. Mes");
  153.         mes = entrada;
  154.        
  155.         mesint = Integer.parseInt(mes);
  156.         switch(mes){
  157.            
  158.             case"1": RangoMes = 31; banderaMes = true; break;
  159.             case"2": RangoMes = 28; banderaMes = true; break;
  160.             case"3": RangoMes = 31; banderaMes = true; break;
  161.             case"4": RangoMes = 30; banderaMes = true; break;
  162.             case"5": RangoMes = 31; banderaMes = true; break;
  163.             case"6": RangoMes = 30; banderaMes = true; break;
  164.             case"7": RangoMes = 31; banderaMes = true; break;
  165.             case"8": RangoMes = 31; banderaMes = true; break;
  166.             case"9": RangoMes = 30; banderaMes = true; break;
  167.             case"10":RangoMes = 31; banderaMes = true; break;
  168.             case"11":RangoMes = 30; banderaMes = true; break;
  169.             case"12":RangoMes = 31; banderaMes = true; break;
  170.             default: JOptionPane.showMessageDialog(null,"Ingrese un mes valido, recuerde que son 12 meses y son asignados como 1, 2, 3 ,4...","ERROR",0);
  171.  
  172.                                                                                    
  173.            
  174.            
  175.         }
  176.        }while (banderaMes != true);
  177.        
  178.        
  179.        boolean banderaDia = false;
  180.        int diaint = 0;
  181.        String dia;
  182.        do{ entrada = JOptionPane.showInputDialog("Ingresar los datos del pesaje\n\n" +
  183.                 "Fecha\n"
  184.                  + "1. Dia");
  185.         dia = entrada;
  186.        
  187.            try {
  188.                diaint = Integer.parseInt(dia);
  189.            } catch (Exception e) {
  190.                JOptionPane.showMessageDialog(null, "Ingrese un dia valido, recuerde que los meses tienen 28 o 31 o 30 dias.\n\n" +"NOTA: " +"El mes numero "+ mes +
  191.                        " es un mes de " + RangoMes + " dias\n", "ERROR", 0);
  192.            }
  193.        
  194.            if(diaint <= RangoMes)
  195.                {
  196.                    banderaDia = true;
  197.                }
  198.            else{
  199.                 JOptionPane.showMessageDialog(null, "Ingrese un dia valido, recuerde que los meses tienen 28 o 31 o 30 dias.\n\n" +"NOTA: " + "El mes numero " + mes +
  200.                         " es un mes de " + RangoMes + " dias\n", "ERROR", 0);
  201.            }
  202.            
  203.         }while(banderaDia != true);
  204.          String año;
  205.          boolean banderaAño = false;
  206.          int añoint =0;
  207.         do{
  208.             entrada = JOptionPane.showInputDialog("Ingresar los datos del pesaje\n\n" +
  209.                 "Fecha\n"
  210.                  + "3. Año");
  211.         año = entrada;
  212.        
  213.             try {
  214.                 añoint = Integer.parseInt(año);
  215.             } catch (Exception e) {
  216.                 JOptionPane.showMessageDialog(null, "Ingrese un dato valido(numeros)", "ERROR", 0);
  217.             }
  218.         if(añoint < 1895)
  219.             JOptionPane.showMessageDialog(null, "Año no valido, digite años siguientes o iguales a 1895, ya que el primer vehiculo de carga fue creado en este año", "ERROR",0);
  220.         else
  221.             banderaAño =true;
  222.        
  223.         }while(banderaAño != true);
  224.        
  225.        
  226.         datos[contadorfilas][Contadorcolumnas] = placa;
  227.         Contadorcolumnas++;
  228.         datos[contadorfilas][Contadorcolumnas] = peso;
  229.         Contadorcolumnas++;
  230.         datos[contadorfilas][Contadorcolumnas] = destino;
  231.         Contadorcolumnas++;
  232.         datos[contadorfilas][Contadorcolumnas] = dia;
  233.         Contadorcolumnas ++;
  234.         datos[contadorfilas][Contadorcolumnas] = mes;
  235.         Contadorcolumnas++;
  236.         datos[contadorfilas][Contadorcolumnas] = año;
  237.        
  238.         contadorfilas++;
  239.         Contadorcolumnas = 0;
  240.    
  241.     }
  242.    
  243.     public void opcionB(){
  244.  
  245.          contador = 0;
  246.         int peso =0, peso2 =0;
  247.             for (int i = 0; i < datos.length; i++) {
  248.                 for (int j = 0; j < datos[0].length; j++) {
  249.                   if(j == 0){
  250.                       if(datos[i][0] != null)
  251.                           contador++;
  252.                   else
  253.                           break;      
  254.                 }
  255.             }
  256.            
  257.             }    
  258.                
  259.             String numeroViajes = Integer.toString(contador);
  260.            
  261.            
  262.            
  263.             for (int i = 0; i < datos.length; i++) {
  264.                 for (int j = 0; j < datos[0].length; j++) {
  265.                   if(j == 1){
  266.                       if(datos[i][1] != null){
  267.                           peso = Integer.parseInt(datos[i][1]);
  268.                           peso2 = peso2 + peso;
  269.                       }else
  270.                           break;      
  271.                 }
  272.             }
  273.            
  274.             }  
  275.            
  276.        
  277.             JOptionPane.showMessageDialog(null, "El numero de viajes en total es de:" + contador + "\n" + "El peso total es de: " + peso2, "Resultado",1);
  278.         }
  279.    
  280.     public void opcionC(){
  281.         // Mostrar la cantidad a los tres destinos y el peso promedio de los tres destinos
  282.         int destino1=0, destino2=0,destino3=0;
  283.         int pasInt;
  284.        
  285.         int Suma1 =0, suma2 =0, suma3 =0;
  286.         double promedioBuenaventura =0, promedioBogota =0, PromedioBarranquilla=0;
  287.        
  288.             for (int i = 0; i < datos.length; i++) {
  289.                 for (int j = 0; j < datos[0].length; j++) {
  290.                   if(j == 2){
  291.                       if(datos[i][2] != null){
  292.                           switch(datos[i][2]){
  293.                               case "1":{ destino1++;
  294.                               pasInt = Integer.parseInt(datos[i][1]);
  295.                               Suma1 += pasInt;
  296.                              
  297.                               }
  298.                               break;
  299.                               case "2":{ destino2++;
  300.                               int pasInt2 = Integer.parseInt(datos[i][1]);
  301.                               suma2 += pasInt2;
  302.                               }break;
  303.                              
  304.                               case "3":{ destino3++;
  305.                               int pasInt3 = Integer.parseInt(datos[i][1]);
  306.                               suma3 += pasInt3;
  307.                               }break;
  308.                              
  309.                           }
  310.                       }
  311.                      
  312.                   else
  313.                           break;      
  314.                 }
  315.             }
  316.            
  317.             }  
  318.              
  319.            
  320.             DecimalFormat formatoo = new DecimalFormat("##.##");
  321.            
  322.             if(destino1 != 0)
  323.             formatoo.format(promedioBuenaventura = Suma1/destino1);
  324.             if(destino2 != 0)
  325.             formatoo.format(promedioBogota = suma2/destino2);
  326.             if(destino3 != 0)
  327.             formatoo.format(PromedioBarranquilla = suma3/destino3);  
  328.            
  329.             JOptionPane.showMessageDialog(null,"La cantidad de viajes de los 3 destinos respectivamente son.\n" + "1. Buenaventura: "
  330.                      + destino1 + "\n" + "Peso promedio: "+promedioBuenaventura+"\n"+"2. Bogota: " + destino2 + "\n" +"Peso promedio: "+promedioBogota+"\n"+ "3. Baranquilla: " + destino3 + "\n"
  331.                       + "Peso promedio: " + PromedioBarranquilla);
  332.            
  333.            /*System.out.println(promedioBogota);
  334.            System.out.println(PromedioBarranquilla);
  335.            System.out.println(promedioBuenaventura);
  336.         */
  337.     }
  338.            
  339.    
  340.     public void opcionD(){
  341.        
  342.         //Consultar los viajes por fecha y destino
  343.         int contador2 =0;
  344.         entrada = JOptionPane.showInputDialog("ingrese el destino que quiere filtrar");
  345.         String destino = entrada;
  346.        
  347.         entrada = JOptionPane.showInputDialog("Ingrese la fecha por la cual desea filtrar\n" + "1. Dia");
  348.         String dia = entrada;
  349.        
  350.          entrada = JOptionPane.showInputDialog("Ingrese la fecha por la cual desea filtrar\n" + "2. Mes");
  351.         String mes = entrada;
  352.        
  353.          entrada = JOptionPane.showInputDialog("Ingrese la fecha por la cual desea filtrar\n" + "3. Año");
  354.         String año = entrada;
  355.        
  356.         String salidaD="";
  357.         String entradaD="";
  358.         String adentroD="";
  359.         String formato = "PLACA=P  PESO=PS  DESTINO=D  DIA=DI  MES=M  AÑO=A\n";
  360.         String titulos = "      P       PS  D  DI  M   A\n";
  361.         for (int i = 0; i < contadorfilas; i++) {
  362.                
  363.            adentroD = datos[i][2] + datos[i][3] + datos[i][4] + datos[i][5];
  364.            entradaD = destino + dia + mes + año;
  365.          
  366.                
  367.                if(adentroD.equals(entradaD)){    
  368.                    salidaD = salidaD + datos[i][0] + ", "+ datos[i][1] +", " +datos[i][2] + ", "+datos[i][3] + ", "+datos[i][4] + ", "+ datos[i][5] + "\n";
  369.                     System.out.println(salidaD);  
  370.                    contador2++;
  371.               }
  372.         }
  373.                  
  374.         if(contador2 !=0)
  375.         {
  376.         JOptionPane.showMessageDialog(null,"Los viajes que fueron relizados el dia " + dia + " del mes "+ mes + " del año "+año +" RESPECTIVAMENTE," + " fueron los siguientes:\n"+titulos+ salidaD+formato);
  377.         }
  378.         else
  379.         {
  380.             JOptionPane.showMessageDialog(null, "No se encontro ninguna coincidencia, verifique los datos de entrada ", "ERROR",0);
  381.         }
  382.    
  383.    
  384.     }
  385.    
  386.    
  387.  
  388.    
  389.    
  390.     public static void main(String[] args) {
  391.  
  392.         Taller1 busqueda = new Taller1();
  393.  
  394.         busqueda.menu();
  395.        
  396.        
  397.        
  398.  
  399.     }
  400.  
  401.    
  402.  
  403. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement