- package institucion; 
-   
- import java.io.BufferedReader; 
- import java.io.IOException; 
- import java.io.InputStreamReader; 
- import java.util.ArrayList; 
- import java.util.List; 
-   
- public class Matricula { 
-   
-         private List<Docente>             docentes            = null; 
-         private List<Estudiante>          estudiantes         = null; 
-         private List<Materia>             materias            = null; 
-   
-   
-   
-   
-   
-         // MATRICULA DE DOCENTES // 
-   
-   
-         docentes = new ArrayList<Docente>(); 
-         System- . out- . println("Para finalizar el ingreso de docentes digite en el nombre XXXX");
 
-         Docente docente = new Docente();  
-         docente.leer(); 
-   
-   
-         while(docente.getNombredocente().compareToIgnoreCase("XXXX")!=0) // Creacion infinita de Empleados hasta digitar XXXX // 
-             { 
-                 docentes.add(docente); 
-                 docente = new Docente(); 
-                 docente.leer(); 
-             } 
-   
-      // MATRICULA DE ESTUDIANTES // 
-   
-         estudiantes = new ArrayList<Estudiante>(); 
-   
-         System- . out- . println("Para finalizar el ingreso de estudiantes digite en el nombre XXXX");
 
-         Estudiante estudiante = new Estudiante();  
-         estudiante.leer(); 
-   
-   
-         while(estudiante.getNombre().compareToIgnoreCase("XXXX")!=0) // Creacion infinita de Empleados hasta digitar XXXX // 
-             { 
-                 estudiantes.add(estudiante); 
-                 estudiante = new Estudiante(); 
-                 estudiante.leer(); 
-             } 
-   
-      // MATRICULA DE MATERIAS // 
-   
-         materias = new ArrayList<Materia>(); 
-         System- . out- . println("Para finalizar el ingreso de materias digite en el nombre XXXX");
 
-         Materia materia = new Materia();  
-         materia.leer(); 
-   
-         for ( int i=0; i<docentes.size(); i++ ) 
-         { 
-                 System- . out- . println(- docentes. get(- i )- . getNombredocente());
 
-         } 
-   
-         System- . out- . println("Digite el nombre del docente que dicta la materia");
 
-         String-  buscador1  =-  lector. readLine();
 
-   
-         for ( int i=0; i<docentes.size(); i++ ) 
-         { 
-                 if ( docentes.get(i).getNombredocente().equalsIgnoreCase(buscador1) ) 
-   
-                 { 
-                     materia.docentesdelamateria.add(docentes.get(i).getNombredocente()); 
-                 } 
-         } 
-   
-   
-         while(materia.getNombremateria().compareToIgnoreCase("XXXX")!=0) // Creacion infinita de Empleados hasta digitar XXXX // 
-             { 
-                 materias.add(materia); 
-                 materia = new Materia(); 
-                 materia.leer(); 
-   
-                 if ( materia.getNombremateria().compareToIgnoreCase("XXXX")!= 0){ 
-   
-                 for ( int i=0; i<docentes.size(); i++ ) 
-                 { 
-                         System- . out- . println(- docentes. get(- i )- . getNombredocente());
 
-                 } 
-   
-                 System- . out- . println("Digite el nombre del docente que dicta la materia");
 
-                 String-  buscador2  =-  lector. readLine();
 
-   
-                 for ( int i=0; i<docentes.size(); i++ ) 
-                 { 
-                         if ( docentes.get(i).getNombredocente().equalsIgnoreCase(buscador2) ) 
-   
-                         { 
-                         	materia.docentesdelamateria.add(docentes.get(i).getNombredocente()); 
-                         } 
-                 } 
-   
-             } 
-   
-             } 
-   
-       } 
-   
-   
-         System- . out- . println("Ingrese el nombre del estudiante");
 
-         String-  buscador1  =-  lector. readLine();
 
-   
-   
-   
-         for (Estudiante estudiante : estudiantes) 
-         { 
-                 if ( estudiante.getNombre().equals(buscador1) ) 
-                 { 
-                   System- . out- . println("Debe matricular minimo 1 materias o maximo 3");
 
-                   System- . out- . println("¿Cuantas materias va a matricular?");
 
-                   int-  n  = Integer- . parseInt(- lector. readLine());
 
-                   if( n < 1 || n > 7 ) 
-                   {System- . out- . println("Ingreso erroneo, porfavor ingrese nuevamente el numero de materias");}
 
-                   else{     
-   
-                         for ( Materia materia : materias ) // Impresion de cada docente las materias de que dicta - PRUEBA 1 
-                         { 
-                                 System- . out- . println(- materia. getNombremateria());
 
-                         } 
-   
-   
-   
-                   for ( int i=0; i<n; i++) 
-                   {        
-                         System- . out- . println("De las materias descritas anteriormente digite la que quiere matricular");
 
-                         String-  buscador2  =-  lector. readLine();
 
-   
-                     for ( Materia materia : materias ) // Impresion de cada docente las materias de que dicta - PRUEBA 2 
-                         { 
-                                 if ( materia.getNombremateria().equalsIgnoreCase(buscador2) ) 
-                                         {        
-                                              estudiante.materiasdelestudiante.add(materia.getCodigomateria()); 
-                                              materia.estudiantesdelamateria.add(estudiante.getCodigoestudiante()); 
-                                         } 
-                                 } 
-                         } 
-  }   
-                   System- . out- . println("-----------------------");
 
-                                 System- . out- . println("Las materias que matriculo: "+- estudiante. getNombre());
 
-   
-                      for ( Materia materia : materias )            
-                           for ( int i=0; i<estudiante.materiasdelestudiante.size(); i++) 
-                           { 
-                               if ( materia.getCodigomateria().equalsIgnoreCase(estudiante.materiasdelestudiante.get(i))) 
-                                   {System- . out- . println(- materia. getNombremateria());}
 
-                           } 
-   
-                        } 
-   
-                 } 
-         }   
-   
-   
-      System- . out- . println("Ingrese el nombre del Docente");
 
-      String-  buscador1  =-  lector. readLine();
 
-   
-      for (Docente docente : docentes) 
-   
-      { 
-     	 if ( docente.getNombredocente().equalsIgnoreCase(buscador1)) 
-     	 { 
-   
-     		 for ( Materia materia : materias )  
-     		 { 
-     			 for ( int i=0; i<materia.docentesdelamateria.size(); i++) 
-     			 { 
-     				 if ( materia.docentesdelamateria.get(i).equalsIgnoreCase(buscador1)) 
-     				 { 
-     					 System- . out- . println("CODIGO: " +- materia. getCodigomateria() +- materia. getNombremateria());
 
-     				 } 
-     			 }    
-     		 } 
-   
-     		 System- . out- . println("Ingrese el codigo de la Materia a la que va a ingresar notas: ");
 
-     	     String-  buscador2  =-  lector. readLine();
 
-   
-     	     for ( Materia materia : materias ) 
-   
-     	     { 
-     	    	 for ( int i=0; i<materia.docentesdelamateria.size(); i++ ) 
-     	    		 { 
-     	    			 if ( materia.docentesdelamateria.get(i).equalsIgnoreCase(buscador1) && materia.getCodigomateria().equalsIgnoreCase(buscador2)) 
-     	    			 { 
-     	    				 System- . out- . println("Los estudiantes de la materia son: ");
 
-   
-     	    				 for ( int k=0; k<materia.estudiantesdelamateria.size(); k++) 
-     	    				 { 
-     	    					 for ( Estudiante estudiante : estudiantes ) 
-     	    						 { 
-     	    						    if ( estudiante.getCodigoestudiante().equalsIgnoreCase(materia.estudiantesdelamateria.get(k)) ) 
-     	    						    		{ 
-     	    						    	      System- . out- . println("CODIGO         NOMBRE" +- estudiante. getCodigoestudiante() +- estudiante. getNombre());
 
-     	    						    	      System- . out- . println(- estudiante. getCodigoestudiante() +- estudiante. getNombre());
 
-     	    						    		} 
-     	    						 } 
-     	    				 } 
-   
-   
-     	    	    		 System- . out- . println("Seleccione el codigo del estudiante que quiere ingresar las notas: ");
 
-     	    	    		 String-  buscador3  =-  lector. readLine();
 
-   
-     	    	    		 for ( int k=0; k<=materia.notasdelosestudiantes.size(); k++) 
-     			    			 { 
-   
-     	    	    			 if ( materia.notasdelosestudiantes.size()==0) 
-     	    	    			 { 
-     	    	    				 for ( Estudiante estudiante : estudiantes ) 
- 			        	    		 { 
- 			        	    			 for ( int j=0; j<=estudiante.materiasdelestudiante.size(); i++) 
- 			        	    			 { 
- 			        	    				if ( estudiante.materiasdelestudiante.get(j).equalsIgnoreCase(buscador2) && estudiante.getCodigoestudiante().equalsIgnoreCase(buscador3) && materia.notasdelosestudiantes.size()==0 )  
- 			        	    				{ 
-   
-   
- 			        	    					NotasEstudiante notasestudiante = new NotasEstudiante(); 
- 			                                    notasestudiante.crear_listas(); 
- 			                                    notasestudiante.setCodigoestudiante(estudiante.getCodigoestudiante()); 
-   
- 			                                    int opcion;  
-   
-   
- 			                                    do{ 
-   
- 			                                    	System- . out- . println("SIGUE DANDO VUELTAS!!!");
 
- 			                                    	System- . out- . println("1. Notas de Quices");
 
- 				                                    System- . out- . println("2. Notas de Trabajos");
 
- 				                                    System- . out- . println("3. Notas de Parciales");
 
- 				                                    System- . out- . println("8. Salir");
 
-   
- 			                                        System- . out- . print("Digite la opcion: ");
 
- 			                                        opcion  = Integer- . parseInt(- lector. readLine());
-   
- 			                                        switch(opcion){ 
-   
- 			                                        case 1: notasestudiante.notas_quices();break; 
- 			                                        case 2: notasestudiante.notas_trabajos();break; 
- 			                                        case 3: notasestudiante.notas_parciales();break; 
-   
- 			                                        case 8: opcion = 8;break; 
- 			                                        default: break; 
- 			                                        } 
- 			                                }while(opcion!=8); 
-   
- 			                                    System- . out- . println("LOGRE SALIR!!!");
 
- 			                                    materia.notasdelosestudiantes.add(notasestudiante);  
- 			        	    				} 
- 			        	    			 } 
- 			        	    		 } 
-     	    	    			 } 
-   
-     			    		if ( materia.notasdelosestudiantes.get(k).getCodigoestudiante().equalsIgnoreCase(buscador3) ) 
-     			    			{ 
-   
-     			    			     System- . out- . println("Las notas de este estudiante ya fueron ingresadas, ¿Desea modificarlas? Y/N");
 
-     			    					 String-  buscador4  =-  lector. readLine();
 
-     			    					 if ( buscador4.equalsIgnoreCase("Y") ) 
-     			    					   { 
-     			    						 int opcion4 =0;  
-   
-     			                                do{ 
-   
-     			                                System- . out- . println("1. Notas de Quices");
 
-     			                                System- . out- . println("2. Notas de Trabajos");
 
-     			                                System- . out- . println("3. Notas de Parciales");
 
-     			                                System- . out- . println("4. Salir");
 
-   
-     			                                System- . out- . print("Digite la opcion: ");
 
-     			                                opcion4  = Integer- . parseInt(- lector. readLine());
-   
-     			                                switch(opcion4){ 
-   
-     			                                case 1: materia.notasdelosestudiantes.get(i).notas_quices();break; 
-     			                                case 2: materia.notasdelosestudiantes.get(i).notas_trabajos();break; 
-     			                                case 3: materia.notasdelosestudiantes.get(i).notas_parciales();break; 
-     			                                case 4: opcion4 = 4;break; 
-     			                                default: break; 
-     			                                } 
-     			                                }while(opcion4!=4); 
-   
-     			                                opcion4 =0;  
-     			    					    } 
-   
-     			    			      } 
-   
-     			    				 else { 
-     			    					 for ( Estudiante estudiante : estudiantes ) 
-     			        	    		 { 
-     			        	    			 for ( int j=0; j<=estudiante.materiasdelestudiante.size(); i++) 
-     			        	    			 { 
-     			        	    				if ( estudiante.materiasdelestudiante.get(j).equalsIgnoreCase(buscador2) && estudiante.getCodigoestudiante().equalsIgnoreCase(buscador3) && materia.notasdelosestudiantes.size()!=1)  
-     			        	    				{ 
-   
-   
-     			        	    					NotasEstudiante notasestudiante = new NotasEstudiante(); 
-     			                                    notasestudiante.crear_listas(); 
-     			                                    notasestudiante.setCodigoestudiante(estudiante.getCodigoestudiante()); 
-   
-     			                                    int opcion4 =0;  
-   
-     			                                    do{ 
-   
-     			                                    System- . out- . println("AQUIIII ESTA EL PROBLEMAAAAAA");
 
-     			                                    System- . out- . println("1. Notas de Quices");
 
-     			                                    System- . out- . println("2. Notas de Trabajos");
 
-     			                                    System- . out- . println("3. Notas de Parciales");
 
-     			                                    System- . out- . println("4. Salir");
 
-   
-     			                                    System- . out- . print("Digite la opcion: ");
 
-     			                                    opcion4  = Integer- . parseInt(- lector. readLine());
-   
-     			                                    switch(opcion4){ 
-   
-     			                                    case 1: notasestudiante.notas_quices();break; 
-     			                                    case 2: notasestudiante.notas_trabajos();break; 
-     			                                    case 3: notasestudiante.notas_parciales();break; 
-     			                                    case 4: opcion4 = 4;break; 
-     			                                    default: break; 
-     			                                    } 
-     			                                    }while(opcion4!=4); 
-   
-     			                                    opcion4 =0; 
-   
-     			                                    materia.notasdelosestudiantes.add(notasestudiante); 
-   
-     			        	    				} 
-     			        	    			 } 
-     			        	    		 } 
-     			    				 } 
-     		    			 } 
-     	    			 } 
-     	    		 } 
-   
-     	    	 } 
- 	 } 
-     	 } 
-      } 
-   
- }