Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/03/2013, 10:20
ambigus
 
Fecha de Ingreso: septiembre-2008
Mensajes: 221
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: ¿Porqué no me permite agregar nuevas notas? - EJercicio I

Gracias por tu respuesta

¿Cómo sé que las notas son de ese estudiante? Pues sencillo, cuando uso el método matricular materias entonces agrego la materia que seleccionó a una lista de Materiasdelestudiante, así:

Código Javascript:
Ver original
  1. docente.materiasdocente.get(j).estudiantesdelamateria.add(estudiante);
  2. estudiante.materiasdelestudiante.add(docente.materiasdocente.get(j));

Código de referencia:

Código Javascript:
Ver original
  1. public void matricular_materias() throws IOException{
  2.        
  3.         System.out.println("Ingrese el nombre del estudiante");
  4.         String buscador1 = lector.readLine();
  5.        
  6.        
  7.        
  8.         for (Estudiante estudiante : estudiantes)
  9.         {
  10.                 if ( estudiante.getNombre().equals(buscador1) )
  11.                 {
  12.                   System.out.println("Debe matricular minimo 3 materias o maximo 7");
  13.                   System.out.println("¿Cuantas materias va a matricular?");
  14.                   int n = Integer.parseInt(lector.readLine());
  15.                   if( n < 1 || n > 7 )
  16.                   {System.out.println("Ingreso erroneo, porfavor ingrese nuevamente el numero de materias");}
  17.                   else{    
  18.                          
  19.                         for ( Docente docente : docentes ) // Impresion de cada docente las materias de que dicta - PRUEBA 1
  20.                         {
  21.                                 for ( int i=0; i<docente.materiasdocente.size(); i++ )
  22.                                 {
  23.                                         System.out.println(docente.materiasdocente.get(i).getNombremateria());
  24.                                 }
  25.                         }
  26.                        
  27.  
  28.                        
  29.                   for ( int i=0; i<n; i++)
  30.                   {      
  31.                         System.out.println("De las materias descritas anteriormente digite la que quiere matricular");
  32.                         String buscador2 = lector.readLine();
  33.                        
  34.                     for ( Docente docente : docentes ) // Impresion de cada docente las materias de que dicta - PRUEBA 2
  35.                         {
  36.                                 for ( int j=0; j<docente.materiasdocente.size(); j++ )// Añadir materia a la lista de materias del estudiante - PRUEBA 1
  37.                                 {
  38.                                         if ( docente.materiasdocente.get(j).getNombremateria().equalsIgnoreCase(buscador2) )
  39.                                         {      
  40.                                                 docente.materiasdocente.get(j).estudiantesdelamateria.add(estudiante);
  41.                                                 estudiante.materiasdelestudiante.add(docente.materiasdocente.get(j));
  42.                                         }
  43.                                 }
  44.                         }
  45.                    
  46.                        
  47.  
  48.                   }  
  49.                   System.out.println("-----------------------");
  50.                                 System.out.println("Las materias que matriculo: "+estudiante.getNombre());
  51.                                                                
  52.                           for ( int i=0; i<estudiante.materiasdelestudiante.size(); i++)
  53.                           {
  54.                                   System.out.println(estudiante.materiasdelestudiante.get(i).getNombremateria());
  55.                           }
  56.                          
  57.                        }
  58.                            
  59.                 }
  60.         }
  61.     }

Luego al ingresar las notas se supone que ingreso a la materia en cuestión de ese estudiante en específico. Y le matriculo las notas así:

Código Javascript:
Ver original
  1. if ( docente.materiasdocente.get(i).estudiantesdelamateria.get(j).materiasdelestudiante.get(k).getNombremateria().equalsIgnoreCase(buscador2) )
  2.                                                {
  3.                                                    System.out.println("Estoy dentro 2");
  4.                                                    docente.materiasdocente.get(i).estudiantesdelamateria.get(j).materiasdelestudiante.get(k).notas_materia();
  5.                                                }

Código de referencia:

Código Javascript:
Ver original
  1. public void notas_docente() throws IOException{
  2.    
  3.         System.out.println("Ingrese el nombre del docente");
  4.         String buscador1 = lector.readLine();
  5.  
  6.  
  7.         for ( Docente docente : docentes ) // Impresion de cada docente las materias de que dicta - PRUEBA 1
  8.         {
  9.                 if ( docente.getNombredocente().equals(buscador1) )
  10.             {
  11.                 System.out.println("Ingrese el nombre de la materia");
  12.                 String buscador2 = lector.readLine();
  13.                
  14.                         for ( int i=0; i<docente.materiasdocente.size(); i++ )// Añadir materia a la lista de materias del estudiante - PRUEBA 1
  15.                         {
  16.                                 if ( docente.materiasdocente.get(i).getNombremateria().equalsIgnoreCase(buscador2) )
  17.                                 {      
  18.                                        
  19.                                         System.out.println("El tamaño de la lista estudiantes de la materia es:" +docente.materiasdocente.get(i).estudiantesdelamateria.size());
  20.                                         System.out.println("Los estudiantes son:");
  21.                                         for ( int j=0; j<docente.materiasdocente.get(i).estudiantesdelamateria.size(); j++)
  22.                                         {
  23.                                                
  24.                                                 System.out.println(docente.materiasdocente.get(i).estudiantesdelamateria.get(j).getNombre());
  25.                                         }
  26.                                        
  27.                                         System.out.println("Seleccione el estudiante al que quiere ingresar notas");
  28.                                         String buscador3 = lector.readLine();
  29.                                        
  30.                                         for ( int j=0; j<docente.materiasdocente.get(i).estudiantesdelamateria.size(); j++)
  31.                                         {
  32.                                            if ( docente.materiasdocente.get(i).estudiantesdelamateria.get(j).getNombre().equalsIgnoreCase(buscador3))
  33.                                                
  34.                                            {
  35.                                                 System.out.println("Estoy dentro 1");
  36.                                               for ( int k=0; k<docente.materiasdocente.get(i).estudiantesdelamateria.get(j).materiasdelestudiante.size(); k++ )
  37.                                               {
  38.                                                   if ( docente.materiasdocente.get(i).estudiantesdelamateria.get(j).materiasdelestudiante.get(k).getNombremateria().equalsIgnoreCase(buscador2) )
  39.                                                {
  40.                                                    System.out.println("Estoy dentro 2");
  41.                                                    docente.materiasdocente.get(i).estudiantesdelamateria.get(j).materiasdelestudiante.get(k).notas_materia();
  42.                                                }  
  43.                                               }  
  44.                                            }    
  45.                                         }
  46.                                 }
  47.                         }  
  48.         }  
  49.     }  
  50. }

Nosé si aclaré tu duda. La idea que tienes serviría sí y sólo si tuviera en cuenta la materia. Porque además del código del estudiante tendría que tener en cuenta un código para la Materia. Recuerda que un estudiante puede tener varias materias.

La duda máxima que tengo es específicamente: ¿Será que estoy agregando bien el objeto Materia: Matematica, Física o lo que sea cuando matriculo las materias a un estudiante?, ¿Será que estoy asignando la MISMA materia para más de un estudiante y por eso me dice que ya están llenas las notas cuando las lleno por primera vez?.


Gracias de antemano por tu ayuda.