Foros del Web » Programación para mayores de 30 ;) » Java »

Problema a la hora de imprimir un array

Estas en el tema de Problema a la hora de imprimir un array en el foro de Java en Foros del Web. Hola. Tengo una pequeña duda de programación básica. He creado una clase de nombre Alumne la cual posee los atributos Nombre (String), Apellidos (String), Curso ...
  #1 (permalink)  
Antiguo 21/01/2012, 11:51
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 1 mes
Puntos: 0
Problema a la hora de imprimir un array

Hola.

Tengo una pequeña duda de programación básica. He creado una clase de nombre Alumne la cual posee los atributos Nombre (String), Apellidos (String), Curso (int) y notas de tipo array de int (int [] ).


Código JAVA:
Ver original
  1. package exercicis.part5;
  2.  
  3.  
  4. public class Alumne2 {
  5.     String nom;
  6.     String cognoms;
  7.     int curs;
  8.     int[]notes;
  9.  
  10.     public Alumne2 (String n, String cg, int c, int[]not) {
  11.         nom=n;
  12.         cognoms=cg;
  13.         curs=c;
  14.         notes=not;
  15.        
  16.     }
  17.  
  18. }

Después, hago esto:


Código JAVA:
Ver original
  1. package exercicis.part5;
  2.  
  3. import java.util.Scanner;
  4.  
  5.  
  6. public class ProvaAlumne3 {
  7.     public static void main(String[] args) {
  8.        
  9.         int [] notes=new int [6];      
  10.         Alumne2 [] clase=new Alumne2 [2];
  11.        
  12.         Scanner entrada=new Scanner(System.in);
  13.        
  14.         String nom;
  15.         String cognoms;
  16.         int curs;
  17.        
  18.        
  19.        
  20.         for (int posicio=0;posicio<clase.length;posicio++) {
  21.            
  22.             System.out.print("Nom:");
  23.             nom=entrada.next();
  24.             System.out.print("Cognoms:");
  25.             cognoms=entrada.next();
  26.             System.out.print("Curs: ");
  27.             curs=entrada.nextInt();
  28.      
  29.             for (int posicioNotes=0;posicioNotes<notes.length;posicioNotes++) {
  30.                 int nota=posicioNotes+1;
  31.                 System.out.print("Introdueix la nota (" +nota+"):");
  32.                 notes[posicioNotes]=entrada.nextInt();
  33.                
  34.                
  35.             }
  36.            
  37.            
  38.             clase[posicio]=new Alumne2(nom, cognoms, curs, notes);
  39.                        
  40.         }
  41.        
  42.         for (int posicio = 0 ; posicio < clase.length ; posicio++) {
  43.             System.out.println(clase[posicio].nom+" "+clase[posicio].cognoms);
  44.             System.out.println("De "+clase[posicio].curs);
  45.             System.out.println("Te les seguents notes:" );
  46.             for (int posicioNotes = 0 ; posicioNotes < clase[posicio].notes.length ; posicioNotes++) {
  47.                 System.out.print(" "+ clase[posicio].notes[posicioNotes]);
  48.             }
  49.                
  50.             System.out.println("");
  51.            
  52.         }
  53.        
  54.        
  55.     }
  56.    
  57. }

Con lo que pretendo agregar los datos de 2 o x alumnos con un bucle y después imprimirlos por pantalla con otro bucle.

El problema lo tengo a la hora de imprimir las notas, por que en todos los alumnos me imprime el mismo array de notas, el último que he creado.

Juan Tomas
De 1
Te les seguents notes:
2 2 2 2 2 2

Pedro Mata
De 1
Te les seguents notes:
2 2 2 2 2 2

Supongo que lo arreglaría haciendo otra clase con notas. Pero pretendo hacerlo sin tener que crear mas clases.

Alguna sugerencia?

Gracias. Un saludo.
  #2 (permalink)  
Antiguo 21/01/2012, 11:55
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problema a la hora de imprimir un array

También he intentado modificarlo un poco declarando la array notas dentro del primer bucle, cuando relleno los datos y cambiando la forma de printarlos, así:

Código JAVA:
Ver original
  1. package exercicis.part5;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class ProvaAlumne3 {
  6.     public static void main(String[] args) {
  7.        
  8.          
  9.         Alumne2 [] clase=new Alumne2 [2];
  10.        
  11.         Scanner entrada=new Scanner(System.in);
  12.        
  13.         String nom;
  14.         String cognoms;
  15.         int curs;
  16.        
  17.        
  18.        
  19.         for (int posicio=0;posicio<clase.length;posicio++) {
  20.            
  21.             System.out.print("Nom:");
  22.             nom=entrada.next();
  23.             System.out.print("Cognoms:");
  24.             cognoms=entrada.next();
  25.             System.out.print("Curs: ");
  26.             curs=entrada.nextInt();
  27.            
  28.              int[] notes = new int[6];
  29.            
  30.             for (int posicioNotes=0;posicioNotes<notes.length;posicioNotes++) {
  31.                 int nota=posicioNotes+1;
  32.                 System.out.print("Introdueix la nota (" +nota+"):");
  33.                 notes[posicioNotes]=entrada.nextInt();
  34.                
  35.                
  36.             }
  37.            
  38.            
  39.             clase[posicio]=new Alumne2(nom, cognoms, curs, notes);
  40.                        
  41.         }
  42.        
  43.         for (int posicio = 0; posicio < clase.length; posicio++) {
  44.                 System.out.println("\n\nL'alumne " + clase[posicio].nom + " " + clase[posicio].cognoms);
  45.                 System.out.println("del curs " + clase[posicio].curs);
  46.                 System.out.println("Te les seguents notes: ");
  47.                 for (int posicioNotes = 0; posicioNotes < clase[posicio].notes.length; posicioNotes++) {
  48.                     System.out.print(" " + clase[posicio].notes[posicioNotes]);
  49.  
  50.             }
  51.  
  52.  
  53.  
  54.         }
  55.        
  56.        
  57.     }
  58.    
  59. }
  #3 (permalink)  
Antiguo 21/01/2012, 11:56
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problema a la hora de imprimir un array

Pero tampoco he tenido suerte. Me sigue printando el último array de notas.

Etiquetas: clase, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:20.