// Clase InstitucionTest //
package institucion;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class InstitucionTest {
public static void main(String[] args) throws IOException {
BufferedReader lector = new BufferedReader(new InputStreamReader(System.in)); // Crear lector //
int opcion;
Metodos metodos = new Metodos();
do{
System.out.println("1. Leer la informacion de cada estudiante");
System.out.println("2. Matricular materias de un estudiante");
System.out.println("3. Agregar o modificar notas de las asignaturas a cargo de un coente");
System.out.println("4. Calcular el promedio de notas del semestre de un estudiante con respecto al número de créditos matriculados");
System.out.println("5. Calcular el promedio general de toda la institucion");
System.out.println("6. Imprimir los estudiantes con promedio inferior a 3.0");
System.out.println("7. Buscar un estudiante y un docente por su numero de identificacion y/o numeros de contacto");
System.out.println("8. Salir");
System.out.print("Digite la opcion: ");
opcion = Integer.parseInt(lector.readLine());
System.out.println();
switch(opcion){
case 1: metodos.leerinformacion();break;
case 2: metodos.matricular_materias();break;
case 3: metodos.notas_docente();break;
case 4: metodos.promedio_estudiante();break;
case 5: metodos.promedio_institucion();break;
case 6: metodos.estudiante_nota_baja();break;
case 8: opcion = 8;break;
default: break;
}
System.out.println();
}while(opcion!=8);
}
}
// Clase Metodos //
package institucion;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Metodos {
private List<Estudiante> estudiantes = null;
private List<Docente> docentes = null;
private List<Double> promedioinstitucion = null;
BufferedReader lector = new BufferedReader(new InputStreamReader(System.in)); // Crear lector //
public void leerinformacion() throws IOException{
this.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();
}
this.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();
}
}
public void matricular_materias() throws IOException{
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 3 materias o maximo 7");
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 ( Docente docente : docentes ) // Impresion de cada docente las materias de que dicta - PRUEBA 1
{
for ( int i=0; i<docente.materiasdocente.size(); i++ )
{
System.out.println(docente.materiasdocente.get(i).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 ( Docente docente : docentes ) // Impresion de cada docente las materias de que dicta - PRUEBA 2
{
for ( int j=0; j<docente.materiasdocente.size(); j++ )// Añadir materia a la lista de materias del estudiante - PRUEBA 1
{
if ( docente.materiasdocente.get(j).getNombremateria().equalsIgnoreCase(buscador2) )
{
docente.materiasdocente.get(j).estudiantesdelamateria.add(estudiante);
estudiante.materiasdelestudiante.add(docente.materiasdocente.get(j));
}
}
}
}
System.out.println("-----------------------");
System.out.println("Las materias que matriculo: "+estudiante.getNombre());
for ( int i=0; i<estudiante.materiasdelestudiante.size(); i++)
{
System.out.println(estudiante.materiasdelestudiante.get(i).getNombremateria());
}
}
}
}
}
public void notas_docente() throws IOException{
System.out.println("Ingrese el nombre del docente");
String buscador1 = lector.readLine();
for ( Docente docente : docentes ) // Impresion de cada docente las materias de que dicta - PRUEBA 1
{
if ( docente.getNombredocente().equals(buscador1) )
{
System.out.println("Ingrese el nombre de la materia");
String buscador2 = lector.readLine();
for ( int i=0; i<docente.materiasdocente.size(); i++ )// Añadir materia a la lista de materias del estudiante - PRUEBA 1
{
if ( docente.materiasdocente.get(i).getNombremateria().equalsIgnoreCase(buscador2) )
{
System.out.println("El tamaño de la lista estudiantes de la materia es:" +docente.materiasdocente.get(i).estudiantesdelamateria.size());
System.out.println("Los estudiantes son:");
for ( int j=0; j<docente.materiasdocente.get(i).estudiantesdelamateria.size(); j++)
{
System.out.println(docente.materiasdocente.get(i).estudiantesdelamateria.get(j).getNombre());
}
System.out.println("Seleccione el estudiante al que quiere ingresar notas");
String buscador3 = lector.readLine();
for ( int j=0; j<docente.materiasdocente.get(i).estudiantesdelamateria.size(); j++)
{
if ( docente.materiasdocente.get(i).estudiantesdelamateria.get(j).getNombre().equalsIgnoreCase(buscador3))
{
System.out.println("Estoy dentro 1");
for ( int k=0; k<docente.materiasdocente.get(i).estudiantesdelamateria.get(j).materiasdelestudiante.size(); k++ )
{
if ( docente.materiasdocente.get(i).estudiantesdelamateria.get(j).materiasdelestudiante.get(k).getNombremateria().equalsIgnoreCase(buscador2) )
{
System.out.println("Estoy dentro 2");
docente.materiasdocente.get(i).estudiantesdelamateria.get(j).materiasdelestudiante.get(k).notas_materia();
}
}
}
}
}
}
}
}
}
public void promedio_estudiante() throws IOException{
System.out.println("Ingrese el nombre del estudiante");
String buscador1 = lector.readLine();
double sumasemestre = 0.0;
double promediosemestre = 0.0;
for ( Estudiante estudiante : estudiantes ) // Impresion de cada docente las materias de que dicta - PRUEBA 1
{
if ( estudiante.getNombre().equals(buscador1) )
{
for ( int i=0; i<estudiante.materiasdelestudiante.size(); i++ )// Añadir materia a la lista de materias del estudiante - PRUEBA 1
{ sumasemestre = sumasemestre + estudiante.materiasdelestudiante.get(i).definitiva(); }
promediosemestre = sumasemestre/estudiante.materiasdelestudiante.size();
promedioinstitucion.add(promediosemestre);
}
}
}
public void promedio_institucion() throws IOException{
double sumainstitucion = 0.0;
double promedioinstitucionfinal = 0.0;
for ( int i=0; i<promedioinstitucion.size(); i++ )
{ sumainstitucion = sumainstitucion + promedioinstitucion.get(i); }
promedioinstitucionfinal = sumainstitucion/promedioinstitucion.size();
System.out.println("El promedio de la institucion es: "+promedioinstitucionfinal);
}
public void estudiante_nota_baja() throws IOException{
for ( Estudiante estudiante : estudiantes )
{
for ( int i=0; i<estudiante.materiasdelestudiante.size(); i++ )
{ if ( estudiante.materiasdelestudiante.get(i).definitiva() > 3.0 )
{
System.out.println(estudiante.getNombre());
}
}
}
}
}
// Clase Estudiante//
package institucion;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Estudiante {
private int id = 0;
private String nombreestudiante = null;
private String direccionestudiante = null;
private int codigoestudiante = 0;
private int n = 0;
private String telefono = null;
private List<Materia> materias = null;
public List<Materia> materiasdelestudiante = null; // Una lista de materias del estudainte//
BufferedReader lector = new BufferedReader(new InputStreamReader(System.in)); // Crear lector //
public void leer()throws IOException {
this.materiasdelestudiante = new ArrayList<Materia>(); ////////
System.out.println("Nombre del estudiante: "); // Ingrese el Nombre//
setNombreestudiante(lector.readLine());
if ( nombreestudiante.compareToIgnoreCase("XXXX")!= 0){
System.out.println("Codigo del estudiante: "); // Ingrese el ID //
setCodigoestudiante(Integer.parseInt(lector.readLine()));
}
}
// -------------------- Metodos de Atributos ------------------- //
public String getNombre() {return nombreestudiante;}
public void setNombreestudiante(String nombreestudiante) {this.nombreestudiante = nombreestudiante;}
public int getCodigoestudiante() {return codigoestudiante;}
public void setCodigoestudiante(int codigoestudiante) {this.codigoestudiante = codigoestudiante;}
public String getDireccionestudiante() {return direccionestudiante;}
public void setDireccionestudiante(String direccionestudiante) {this.direccionestudiante = direccionestudiante;}
}
// Clase Materia //
package institucion;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Materia {
private int codigomateria = 0;
private String nombremateria = null;
private String asignardocente = null;
private int creditos = 0;
public List<Estudiante> estudiantesdelamateria = null; // Una lista de estudiantes de la materia //
public List<Double> notasdequices = null;
public List<Double> notasdetrabajos = null;
public List<Double> notasdeparciales = null;
private double notaquiz = 0.0;
private double notatrabajo = 0.0;
private double notaparcial = 0.0;
private double definitivaparciales = 0.0;
private double definitivatrabajos = 0.0;
private double definitivaquices = 0.0;
BufferedReader lector = new BufferedReader(new InputStreamReader(System.in)); // Crear lector //
public void leer()throws IOException {
notasdequices = new ArrayList<Double>();
notasdetrabajos = new ArrayList<Double>();
notasdeparciales = new ArrayList<Double>();
this.estudiantesdelamateria = new ArrayList<Estudiante>();
System.out.println("Nombre de la materia: "); // Ingrese el Nombre//
setNombremateria(lector.readLine());
System.out.println("Numero de creditos: "); // Ingrese el Apellido //
setCreditos(Integer.parseInt(lector.readLine()));
}
public void notas_materia() throws IOException
{
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());
System.out.println();
switch(opcion4){
case 1: notas_quices();break;
case 2: notas_trabajos();break;
case 3: notas_parciales();break;
case 4: opcion4 = 4;break;
default: break;
}
}while(opcion4!=4);
opcion4 =0;
}
public void notas_quices()throws IOException {
int n=1;
int y=5;
double sumaquices = 0.0;
double promedioquices = 0.0;
System.out.println("El tamaño de la lista de notas de Quices es: "+notasdequices.size());
if ( notasdequices.size() != 0)
{
System.out.println("Las notas de Quices ya han sido ingresadas. ¿Desea ingresar nuevas notas? Y/N");
String buscador1 = lector.readLine();
if( buscador1.equalsIgnoreCase("Y"))
{
notasdequices.clear();
System.out.println("Para ingresar la nota de Quices digite un número entre 5.0 y 0.0"); // Ingrese el Nombre//
for ( int i=0; i<y; i++)
{
System.out.println("Ingrese la nota del Quiz "+(n+i)); // Ingrese el Nombre//
setNotaquiz(Double.parseDouble((lector.readLine())));
if ( notaquiz <= 5.0 && notaquiz >= 0.0 )
{ notasdequices.add(notaquiz); }
else
{ n = n-1;
y = y+1;
System.out.println("Ingreso erroneo de la nota, porfavor digite un número decimal entre 5.0 y 0.0"); }
}
}
}
else
{
System.out.println("Para ingresar la nota de Quices digite un número entre 5.0 y 0.0"); // Ingrese el Nombre//
for ( int i=0; i<y; i++)
{
System.out.println("Ingrese la nota del Quiz "+(n+i)); // Ingrese el Nombre//
setNotaquiz(Double.parseDouble((lector.readLine())));
if ( notaquiz <= 5.0 && notaquiz >= 0.0 )
{ notasdequices.add(notaquiz); }
else
{ n = n-1;
y = y+1;
System.out.println("Ingreso erroneo de la nota, porfavor digite un número decimal entre 5.0 y 0.0"); }
}
}
System.out.println("Las notas de Quices son:");
for ( int i=0; i<notasdequices.size(); i++)
{
sumaquices = sumaquices + notasdequices.get(i);
System.out.println(notasdequices.get(i));
}
promedioquices = sumaquices/5;
System.out.println("La definitiva de Quices es: "+promedioquices);
setDefinitivaquices(promedioquices*0.25);
System.out.println("El valor de los Quices en la definitiva de la materia es: "+(definitivaquices));
}
public void notas_trabajos()throws IOException {
int n=1;
int y=2;
double sumatrabajos = 0.0;
double promediotrabajos = 0.0;
System.out.println("El tamaño de la lista de notas de Trabajos es: "+notasdetrabajos.size());
if ( notasdetrabajos.size() != 0)
{
System.out.println("Las notas de Trabajos ya han sido ingresadas. ¿Desea ingresar nuevas notas? Y/N");
String buscador2 = lector.readLine();
if( buscador2.equalsIgnoreCase("Y"))
{
notasdetrabajos.clear();
System.out.println("Para ingresar la nota del trabajo digite un número entre 5.0 y 0.0"); // Ingrese el Nombre//
for ( int i=0; i<y; i++)
{
System.out.println("Ingrese la nota del Trabajo "+(n+i)); // Ingrese el Nombre//
setNotatrabajo(Double.parseDouble((lector.readLine())));
if ( notatrabajo <= 5.0 && notatrabajo >= 0.0 )
{ notasdetrabajos.add(notatrabajo); }
else
{ n = n-1;
y = y+1;
System.out.println("Ingreso erroneo de la nota, porfavor digite un número decimal entre 5.0 y 0.0"); }
}
}
}
else
{
System.out.println("Para ingresar la nota del trabajo digite un número entre 5.0 y 0.0"); // Ingrese el Nombre//
for ( int i=0; i<y; i++)
{
System.out.println("Ingrese la nota del Trabajo "+(n+i)); // Ingrese el Nombre//
setNotatrabajo(Double.parseDouble((lector.readLine())));
if ( notatrabajo <= 5.0 && notatrabajo >= 0.0 )
{ notasdetrabajos.add(notatrabajo); }
else
{ n = n-1;
y = y+1;
System.out.println("Ingreso erroneo de la nota, porfavor digite un número decimal entre 5.0 y 0.0"); }
}
}
System.out.println("Las notas de los trabajos son:");
for ( int i=0; i<notasdetrabajos.size(); i++)
{
sumatrabajos = sumatrabajos + notasdetrabajos.get(i);
System.out.println(notasdetrabajos.get(i));
}
promediotrabajos = sumatrabajos/2;
System.out.println("La definitiva de Trabajos es: "+promediotrabajos);
setDefinitivatrabajos(promediotrabajos*0.15);
System.out.println("El valor de los Trabajos en la definitiva de la materia es: "+(definitivatrabajos));
}
public void notas_parciales()throws IOException {
int n=1;
int y=3;
double sumaparciales = 0.0;
double promedioparciales = 0.0;
System.out.println("El tamaño de la lista de notas de Parciales es: "+notasdeparciales.size());
if ( notasdeparciales.size() != 0)
{
System.out.println("Las notas de parciales ya han sido ingresadas. ¿Desea ingresar nuevas notas? Y/N");
String buscador3 = lector.readLine();
if( buscador3.equalsIgnoreCase("Y"))
{
notasdeparciales.clear();
System.out.println("Para ingresar la nota del Parcial digite un número entre 5.0 y 0.0"); // Ingrese el Nombre//
for ( int i=0; i<y; i++)
{
System.out.println("Ingrese la nota del Parcial "+(n+i)); // Ingrese el Nombre//
setNotaparcial(Double.parseDouble((lector.readLine())));
if ( notaparcial <= 5.0 && notaparcial >= 0.0 )
{ notasdeparciales.add(notaparcial); }
else
{ n = n-1;
y = y+1;
System.out.println("Ingreso erroneo de la nota, porfavor digite un número decimal entre 5.0 y 0.0"); }
}
}
}
else
{
System.out.println("Para ingresar la nota del Parcial digite un número entre 5.0 y 0.0"); // Ingrese el Nombre//
for ( int i=0; i<y; i++)
{
System.out.println("Ingrese la nota del Parcial "+(n+i)); // Ingrese el Nombre//
setNotaparcial(Double.parseDouble((lector.readLine())));
if ( notaparcial <= 5.0 && notaparcial >= 0.0 )
{ notasdeparciales.add(notaparcial); }
else
{ n = n-1;
y = y+1;
System.out.println("Ingreso erroneo de la nota, porfavor digite un número decimal entre 5.0 y 0.0"); }
}
}
System.out.println("Las notas de los parciales son:");
for ( int i=0; i<notasdeparciales.size(); i++)
{
sumaparciales = sumaparciales + notasdeparciales.get(i);
System.out.println(notasdeparciales.get(i));
}
promedioparciales = sumaparciales/3;
System.out.println("La definitiva de Parciales es: "+promedioparciales);
setDefinitivaparciales(promedioparciales*0.60);
System.out.println("El valor de los Parciales en la definitiva de la materia es: "+(definitivaparciales));
}
public double definitiva(){
double definitivatemporal = definitivaparciales+definitivatrabajos+definitivaquices;
double definitivafinal = definitivatemporal*creditos;
System.out.println("La definitiva de la materia es: "+definitivatemporal);
System.out.println("La definitiva de la materia con creditos para el promedio es: "+definitivafinal);
return definitivafinal;
}
// -------------------- Metodos de Atributos ------------------- //
public String getNombremateria() {return nombremateria;}
public void setNombremateria(String nombremateria) {this.nombremateria = nombremateria;}
public int getCodigomateria() {return codigomateria;}
public void setCodigomateria(int codigomateria) {this.codigomateria = codigomateria;}
public int getCreditos() {return creditos;}
public void setCreditos(int creditos) {this.creditos = creditos;}
public String getAsignardocente() { return asignardocente; }
public void setAsignardocente(String materiadocente) {this.asignardocente= asignardocente;}
public double getNotaquiz() {return notaquiz;}
public void setNotaquiz(double notaquiz) {this.notaquiz = notaquiz;}
public double getNotatrabajo() {return notatrabajo;}
public void setNotatrabajo(double notatrabajo) {this.notatrabajo = notatrabajo;}
public double getNotaparcial() {return notaparcial;}
public void setNotaparcial(double notaparcial) {this.notaparcial = notaparcial;}
public double getDefinitivaparciales() {return definitivaparciales;}
public void setDefinitivaparciales(double definitivaparciales) {this.definitivaparciales = definitivaparciales;}
public double getDefinitivatrabajos() {return definitivatrabajos;}
public void setDefinitivatrabajos(double definitivatrabajos) {this.definitivatrabajos = definitivatrabajos;}
public double getDefinitivaquices() {return definitivaquices;}
public void setDefinitivaquices(double definitivaquices) {this.definitivaquices = definitivaquices;}
}
// Clase DOCENTE //
package institucion;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Docente {
private int id = 0;
private String nombredocente = null;
private String apellidodocente = null;
private int n = 0;
private int i = 0;
private String telefono = null;
public List<Materia> materiasdocente = null;
BufferedReader lector = new BufferedReader(new InputStreamReader(System.in)); // Crear lector //
public void leer()throws IOException {
System.out.println("Nombre del docente: ");
setNombredocente(lector.readLine());
if ( nombredocente.compareToIgnoreCase("XXXX")!= 0){
this.materiasdocente = new ArrayList<Materia>();
System.out.println("¿Cuantas materias asignadas tiene el docente?");
int y = Integer.parseInt(lector.readLine());
for (int i = 0; i < y; i++) {
Materia materia = new Materia();
materia.leer();
materia.setAsignardocente(getNombredocente());
materiasdocente.add(materia);
}
}
}
// -------------------- Metodos de Atributos ------------------- //
public String getNombredocente() {return nombredocente;}
public void setNombredocente(String nombredocente) {this.nombredocente = nombredocente;}
public String getApellidodocente() {return apellidodocente;}
public void setApellidodocente(String apellidodocente) {this.apellidodocente = apellidodocente;}
public int getId() {return id;}
public void setId(int id) {this.id = id;}
}