Foro de elhacker.net

Programación => Java => Mensaje iniciado por: miguel96 en 21 Noviembre 2014, 13:18 pm



Título: Asignar nombre filas y columna matrices
Publicado por: miguel96 en 21 Noviembre 2014, 13:18 pm
Buenos dias!
Os traigo una dudilla de un ejercicio de la universidad. Bueno el caso es que nos han mandado hacer un programa en el que creamos una liga de futbol con un numero n de equipos. El programa lo tengo mas o menos hecho, la matriz la se hacer, se como recorrerla para que el usuario vaya introduciendo los datos de los partidos, lo que no se es como asignar nombre a las filas y columnas es decir, en vez de aparecer numeros tipo partido entre 0 y 1, pues asignarle un String que lo introduciera el usuario tipo Madrid, Barsa etc...
No se si habrá quedado claro. Os dejo por aquí el código de la parte del programa que llevo hecha.
Un saludo y gracias de antemano.

import java.util.Scanner;
public class Pruebas{
   public static void main(String[] args){
      Scanner lectura=new Scanner (System.in);
      int n=Integer.parseInt(args[0]);
      int matriz[][]=new int [n][n];
      
      int fila=n;
      int columna=n;
      //Creamos dos bucles for que vayan recorriendo columnas y filas respectivamente
      for(fila=0;fila<n;fila++){  
         for(columna=0;columna<n;columna++){
            System.out.println("Introduzca los puntos obtenidos por el Local  en el partido "+fila+" contra "+columna);
            matriz[fila][columna]=lectura.nextInt();
            //Si el valor que introduce el usuario no es 0,1 o 3 el programa se cerrar para obligar al usuario a reiniciarlo y introducir los datos correctamente
            if((matriz[fila][columna]!=0)&&(matriz[fila][columna]!=1)&&(matriz[fila][columna]!=3)){
               System.out.println("El valor introducido no es correcto");
               System.exit(0);
            }
            
         }
      }
      
      boolean bandera=true;  //variable tipo booleana para recorrer el bucle do-while infinitas veces hasta que el valor de la variable no cambie
      do {
         System.out.println("Elige una de las siguien opciones"); //Creamos el menu con sus distintas opciones
         System.out.println("1-.Resultado de todos los partidos de la liga");
         System.out.println("2-.Mostrar puntos obtenidos por:");
         System.out.println("3-.Puntos obtenidos por todos los equipos");
         System.out.println("4-.Mostrar equipo con mayor puntuación");
         System.out.println("5-.Salir");
         System.out.println("Introduzca la opcion deseada: ");
         
         int opcion=lectura.nextInt();//Llamamos al Scanner lectura para que el usuario introduca la opcion.
         switch (opcion) {//Bucle switch que depende de la opcion del menu que anteriormente haya introducido el usuario
         case 1://Resultado de todos los partidos de la liga
            for(fila=0;fila<n;fila++){
               for(columna=0;columna<n;columna++){
            if (matriz[fila][columna]==3){
               System.out.println("El ganador del partido entre "+fila+" y "+columna+" ha sido 0");
            }else if(matriz[fila][columna]==0){
               System.out.println("El ganador del partido entre "+fila+" y "+columna+" ha sido 1");
            }else if(matriz[fila][columna]==1){
               System.out.println("El resultado del partido "+fila+" y "+columna+" ha sido un empate");
            }
               }
            }
         break;
         case 2:
            int i=0;
            for (;i<=n*n;i++) {
             System.out.println(i+" Resultado entre el partido"+fila+" y "+columna);    
            for(fila=0;fila<n;fila++){
                 
               for(columna=0;columna<n;columna++){
               
                        
               }
               }
         }
            
            break;
         case 3:
            int suma=0;
            for(fila=0;fila<n;fila++){
               suma=0;
               for(columna=0;columna<n;columna++){
                  suma=suma+matriz[fila][columna];
               }
            
               System.out.println("Los puntos totales obtenidos por el equipo "+fila+" han sido "+suma);
            }
         
         break;
         case 4:
            break;
         case 5:
            bandera=false;//Para salir del programa
            break;
            
         }//Fin del switch
      
         
      }while(bandera==true);
   }//Fin del main
}//Fin de la clase


Título: Re: Asignar nombre filas y columna matrices
Publicado por: miguel96 en 21 Noviembre 2014, 13:20 pm
Si veis otra cosa que se pueda mejorar tambien se acepta, soy un novato total, llevo programando dos meses, no habia programado antes en mi vida y estoy un poco verde en el tema.


Título: Re: Asignar nombre filas y columna matrices
Publicado por: DarK_FirefoX en 21 Noviembre 2014, 17:57 pm
Como tal el hecho de asignarle nombres a las filas, es algo abstracto, lo que puedes hacer es crear un array de strings, donde en la posición i de ese array tienes el nombre que quieres poner. y despues lo que haces es indexar en ese array para sacar el nombre. Ej: arrayNuevo