Ejemplo de Matriz

Iniciado por betast, 25 Febrero 2019, 04:52 AM

0 Miembros y 1 Visitante están viendo este tema.

betast

Les comparto este pequeño programa con la ayuda de Tektor.

Ejercicio:
Se requiere una matriz que realice las siguientes operaciones
-Ingresar TC(meses[1-12] ) y TF(vendedor)
-Obtener la información de ventas de cada mes y vendedor
-Obtener el mejor y el peor vendedor
-Obtener el mejor y el peor mes de ventas
-Dado un mes(COLUMNAS), obtener el mejor y el peor vendedor
-Dado un vendedor(FILAS), obtener el mejor y el peor mes de ventas
                             Incluir menú

//código del menú
package metodos;


import javax.swing.JOptionPane;
import static metodos.miMatriz.mes;
import static metodos.miMatriz.vendedor;
public class menu1{
   
    public static void main(String args[]){
        int opcion;
        String op;
       
do{
    op= JOptionPane.showInputDialog("Menu De opciones: \n"
            + "1) Ingresar TC(meses[1-12] ) y TF(vendedor)\n"
            + "2) Obtener la informacion de ventas de cada mes y vendedor\n"
            + "3) Obtener el mejor y el peor vendedor \n"
            + "4) Obtener el mejor y el peor mes de ventas\n  "
            + "5) Dado un mes(TC), obtener el mejor y el peor vendedor\n"
            + "6) Dado un vendedor(TF), obtener el mejor y el peor mes de ventas\n"
            + "7) EJECUTAR TODAS LAS OPCIONES(RECOMENDADA)\n "
            + "8) Salir\n");
     try{
         opcion = Integer.parseInt(op);
         
         
     }catch(NumberFormatException ex){
         JOptionPane.showMessageDialog(null, "Error, solo se permiten numeros");
         opcion=0;
     }
     switch(opcion){
         case 0:
             break;
             
         case 1:
            miMatriz.llenarM();
            miMatriz.mostrarM();
             break;
             
         case 2:
            miMatriz.vectorMes();
            miMatriz.vectorVendedor();
            miMatriz.mostrarVec("La información de ventas de cada mes es: ", mes);
            miMatriz.mostrarVec("La información de ventas de cada vendor es: ", vendedor);
             break;
             
         case 3:
            miMatriz.MejorVendedor();
            miMatriz.PeorVendedor();
             break;
             
         case 4:
            miMatriz.MejorVendedor();
            miMatriz.PeorVendedor();
             break;
         case 5:
            miMatriz.pedircolumna();
             break;
             
         case 6:
             miMatriz.pedirfila();
             break;
         case 7:
            miMatriz.llenarM();
            miMatriz.mostrarM();
            miMatriz.vectorMes();
            miMatriz.mostrarVec("La información de ventas de cada mes es: ", mes);
            miMatriz.vectorVendedor();
            miMatriz.mostrarVec("La información de ventas de cada vendor es: ", vendedor);
            miMatriz.MejorVendedor();
            miMatriz.PeorVendedor();
            miMatriz.MejorMes();
            miMatriz.PeorMes();
            miMatriz.pedircolumna();
            miMatriz.pedirfila();
             break;
         
             
         default: JOptionPane.showMessageDialog(null, "Saliendo...");
     }
        }while(opcion !=8);   
    }
   
}




//-------------------------------------------------------------------------------------------------
//Código del programa

package metodos;
import javax.swing.JOptionPane;
 
public class miMatriz {
    public static int ventas[][];
    public static int mes[];
    public static int vendedor[];
    public static int tf, tc;
   

    public static void llenarM(){
        int i, j;
        tc = Integer.parseInt( JOptionPane.showInputDialog(
        "Entre número de meses [1 - 12]:") );
        tf = Integer.parseInt( JOptionPane.showInputDialog(
        "Entre número de vendedores: ") );
        ventas = new int[tf][tc];
        mes = new int[tc];
        vendedor = new int[tf];       
        for(i=0; i<tf; i++){
            for(j=0; j<tc; j++){
                ventas[i][j] = Integer.parseInt(JOptionPane.showInputDialog(
                "Entre ventas del vendedor en ["+i+"]["+j+"]:"));
            }
        } 
    }
   
    public static void mostrarM( ){
        int i, j;
        String aux="Los elementos de la matriz de ventas son: \n";
        for(i=0; i<tf; i++){
            for(j=0; j<tc; j++){
                aux += "[ "+ventas[i][j]+" ]";
            }
            aux+="\n";
        }
        JOptionPane.showMessageDialog(null, aux);
    }
   
    public static void vectorMes(){
        int i, j;
        for(j=0;j<tc;j++){
            for(i=0; i<tf; i++){
                mes[j] += ventas[i][j];
            }
        }
    }
     
    public static void vectorVendedor(){
        int i, j;
        for(i=0; i<tf; i++){
            for(j=0; j<tc; j++){
                vendedor[i] += ventas[i][j];
            }
        }
    }

        public static void mostrarVec( String x, int vec[] ){
        int i;
        String aux="< ";
        for(i=0; i<vec.length; i++){
            if( i < (vec.length-1) )
                aux += ""+vec[i]+","
                        + " ";
            else
                aux += ""+vec[i]+" >";
        }
        JOptionPane.showMessageDialog(null, ""+x+"\n"+aux);
    }
   
    public static void MejorVendedor( ){
        int pos=0, i;
        int may=vendedor[0];
        for(i=0; i<vendedor.length; i++){
            if(vendedor[i]>may){
                may=vendedor[i];
                pos=i;
            }
        }
        JOptionPane.showMessageDialog(null, "El mejor vendedor es: "+pos);
    }
   
    public static void PeorVendedor( ){
        int pos1=0, i;
        int men=vendedor[0];
        for(i=0; i<vendedor.length; i++){
            if(vendedor[i]<men){
                men=vendedor[i];
                pos1=i;
            }
        }
        JOptionPane.showMessageDialog(null, "El peor vendedor es: "+pos1);
    }
   
    public static void MejorMes( ){
        int pos=0, i;
        int may=mes[0];
        for(i=0; i<mes.length; i++){
            if(mes[i]>may){
                may=mes[i];
                pos=i;
            }
        }
        JOptionPane.showMessageDialog(null, "El mejor mes de ventas es: "+pos);
    }
   
    public static void PeorMes( ){
        int pos=0, i;
        int men=mes[0];
        for(i=0; i<mes.length; i++){
            if(mes[i]<men){
                men=mes[i];
                pos=i;
            }
        }
        JOptionPane.showMessageDialog(null, "El peor mes de ventas es: "+pos);
    }

public static void pedircolumna(){
    int c=0, tc1, o;
   
    tc1= Integer.parseInt( JOptionPane.showInputDialog(
     "Ingrese el número de columna en la que desea buscar:") );
    if(tc1>=ventas[0].length){
        JOptionPane.showInputDialog("Opcion no valida");
    }
    o = Integer.parseInt( JOptionPane.showInputDialog(
    "OPCIONES: \n"
            + "1) Hallar el mejor mes de ventas \n"
            + "2) Hallar el peor mes de ventas \n") );
    if (o==1){
        JOptionPane.showMessageDialog(null, "El mayor dato en la columna "+tc1+" es:" +Obtenermayor(tc1, ventas)); 
    }
    else {
        if(o==2){
       JOptionPane.showMessageDialog(null, "El menor dato en la columna "+tc1+" es:" +Obtenermenor(tc1, ventas));       
        }
        else{
            JOptionPane.showMessageDialog(null, "Opcion no valida");
        }
    }
   
}
       public static int Obtenermayor(int mes, int ventas[][]){
           int mayor= ventas[0][mes];
           for(int i=1; i<ventas.length; i++){
               if(ventas[i][mes]>mayor){
                   mayor = ventas[i][mes];
               }
           }
        return mayor;   
       }
        public static int Obtenermenor(int mes, int ventas[][]){
           int menor= ventas[0][mes];
           for(int i=1; i<ventas.length; i++){
               if(ventas[i][mes]<menor){
                   menor = ventas[i][mes];
               }
           }
        return menor;   
       }
       
public static void pedirfila(){
    int c=0, tc1, o;
   
    tc1= Integer.parseInt( JOptionPane.showInputDialog(
     "Ingrese el número de fila en la que desea buscar:") );
    if(tc1>=ventas[0].length){
        JOptionPane.showInputDialog("Opcion no valida");
    }
    o = Integer.parseInt( JOptionPane.showInputDialog(
    "OPCIONES: \n"
            + "1) Hallar el mejor vendedor \n"
            + "2) Hallar el peor vendedor \n") );
    if (o==1){
        JOptionPane.showMessageDialog(null, "El mayor dato en la fila "+tc1+" es:" +Obtenermayorf(tc1, ventas)); 
    }
    else {
        if(o==2){
       JOptionPane.showMessageDialog(null, "El menor dato en la fila "+tc1+" es:" +Obtenermenorf(tc1, ventas));       
        }
        else{
            JOptionPane.showMessageDialog(null, "Opcion no valida");
        }
    }
   
}
       public static int Obtenermayorf(int vendedor, int ventas[][]){
           int mayor= ventas[vendedor][0];
           for(int i=1; i<ventas.length; i++){
               if(ventas[vendedor][i]>mayor){
                   mayor = ventas[vendedor][i];
               }
           }
        return mayor;   
       }
       
        public static int Obtenermenorf(int vendedor, int ventas[][]){
           int menor= ventas[vendedor][0];
           for(int i=1; i<ventas.length; i++){
               if(ventas[vendedor][i]<menor){
                   menor = ventas[vendedor][i];
               }
           }
        return menor;   
       }
   
    public static void main(String args[]){
       
        llenarM();
        mostrarM();
        vectorMes();
        mostrarVec("La información de ventas de cada mes es: ", mes);
        vectorVendedor();
        mostrarVec("La información de ventas de cada vendor es: ", vendedor);
        MejorVendedor();
        PeorVendedor();
        MejorMes();
        PeorMes();
        pedircolumna();
        pedirfila();
        System.exit(0);
    }
   
}