Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/01/2012, 11:51
Seisler
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 2 meses
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.