diff options
author | sreyes <sreyes@dataworks.com.py> | 2014-09-21 19:56:24 (GMT) |
---|---|---|
committer | sreyes <sreyes@dataworks.com.py> | 2014-09-21 19:56:24 (GMT) |
commit | af8d9fd66795d45da0593f2d7eca90a723c92946 (patch) | |
tree | 57d63d654e5ba5b422b7d8f8df69d537cffb7657 | |
parent | 3fd87d2be90086dd118249c54028cd33426c539e (diff) |
metodo simular - falta sesion
-rw-r--r-- | EjercitarJPA/src/model/Alumno.java | 6 | ||||
-rw-r--r-- | EjercitarServer/ejbModule/beans/AdministracionBean.java | 5 | ||||
-rw-r--r-- | EjercitarServer/ejbModule/beans/EjercitarWSBean.java | 6 | ||||
-rw-r--r-- | EjercitarServer/ejbModule/beans/Simulacion.java | 72 |
4 files changed, 71 insertions, 18 deletions
diff --git a/EjercitarJPA/src/model/Alumno.java b/EjercitarJPA/src/model/Alumno.java index 45d1fbb..b878a19 100644 --- a/EjercitarJPA/src/model/Alumno.java +++ b/EjercitarJPA/src/model/Alumno.java @@ -73,13 +73,13 @@ public class Alumno implements Serializable { @ManyToOne private Curso curso; @Transient - private String tipoAlumno; + private Double tipoAlumno; - public String getTipoAlumno() { + public Double getTipoAlumno() { return tipoAlumno; } - public void setTipoAlumno(String tipoAlumno) { + public void setTipoAlumno(Double tipoAlumno) { this.tipoAlumno = tipoAlumno; } diff --git a/EjercitarServer/ejbModule/beans/AdministracionBean.java b/EjercitarServer/ejbModule/beans/AdministracionBean.java index e8ad4b4..7a6c376 100644 --- a/EjercitarServer/ejbModule/beans/AdministracionBean.java +++ b/EjercitarServer/ejbModule/beans/AdministracionBean.java @@ -769,7 +769,10 @@ public class AdministracionBean implements AdministracionBeanRemote{ } - + public Ejercicio getEjercicio(int idEjercicio ){ + Ejercicio ejercicio = em.find(Ejercicio.class, idEjercicio); + return ejercicio; + } diff --git a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java index b5b7148..8b29f74 100644 --- a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java +++ b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java @@ -67,9 +67,9 @@ public class EjercitarWSBean implements EjercitarWSRemote { // TODO Auto-generated method stub
System.out.println("getdatosalumno");
Alumno alumno = em.find(Alumno.class, idAlumno);
- //String curso = alumno.getCurso().getSeccion() + ""+ alumno.getCurso().getTurno();
- //String escuela = alumno.getCurso().getEscuela().getNombre();
- String nombreApellidoCursoEscuela = alumno.getNombre() + "#" + alumno.getApellido();// + "#" + curso + "#" + escuela ;
+ String curso = alumno.getCurso().getSeccion() + ""+ alumno.getCurso().getTurno();
+ String escuela = alumno.getCurso().getEscuela().getNombre();
+ String nombreApellidoCursoEscuela = alumno.getNombre() + "#" + alumno.getApellido() + "#" + curso + "#" + escuela ;
return nombreApellidoCursoEscuela;
}
diff --git a/EjercitarServer/ejbModule/beans/Simulacion.java b/EjercitarServer/ejbModule/beans/Simulacion.java index a82eaa0..7c9b8fd 100644 --- a/EjercitarServer/ejbModule/beans/Simulacion.java +++ b/EjercitarServer/ejbModule/beans/Simulacion.java @@ -1,5 +1,9 @@ package beans; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + import javax.ejb.EJB; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @@ -7,15 +11,19 @@ import javax.persistence.PersistenceContext; import model.Alumno; import model.Asignatura; import model.Curso; +import model.Ejercicio; +import model.Tarea; public class Simulacion { @EJB AdministracionBean admin; - - public Alumno crearAlumno(Curso curso, String tipo){ + @EJB + EjercitarWSBean ws; + + public Alumno crearAlumno(Curso curso, Double tipo){ Alumno alumno = new Alumno(); @@ -33,32 +41,74 @@ public class Simulacion { } - public void generacionAlumno(Asignatura asignatura){ + public List<Alumno> generacionAlumnos(Asignatura asignatura){ Curso curso = asignatura.getCurso(); int cantidadAlumnos = 30; - String tipo; + Double tipo; + + List<Alumno> alumnos = new ArrayList<Alumno>(); + for (int i = 0; i < cantidadAlumnos; i++) { if(i <= 10){ tipo = TipoAlumno.NIVEL_CONOCIMIENTO_BAJO; - }else if(i >10 && i <=15){ + }else if(i >10 && i <=20){ tipo = TipoAlumno.NIVEL_CONOCIMIENTO_MEDIO; }else{ tipo = TipoAlumno.NIVEL_CONOCIMIENTO_ALTO; } - crearAlumno(curso, tipo); - + Alumno alumno = crearAlumno(curso, tipo); + + alumnos.add(alumno); } admin.crearRedAlumnos(asignatura.getIdAsignatura()); - + + return alumnos; + } + + + public void simular(Asignatura asignatura, Tarea tarea) { + + + List<Alumno> alumnos = generacionAlumnos(asignatura); + + for(Alumno alumno : alumnos) { + + String siguienteEjercicio = ws.getSiguienteEjercicio(tarea.getIdTarea(), alumno.getIdAlumno(), 0, "respuesta"); + Boolean parada = false; + int cant = 0; + while(!parada) { + + String [] ejercicioString = siguienteEjercicio.split("#"); + int idEjercicio = Integer.valueOf(ejercicioString[0]); + Ejercicio ejercicio = admin.getEjercicio(idEjercicio); + + Random rnd = new Random(); + int decision = rnd.nextInt(100); + String respuesta = null; + int idRespuesta; + if(decision <= (alumno.getTipoAlumno()*100)) { + respuesta = ejercicio.getRespuesta().getDescripcion(); + idRespuesta = ejercicio.getRespuesta().getIdRespuesta(); + } else { + respuesta = ejercicio.getRespuestaList().get(0).equals(ejercicio.getRespuesta()) ? + ejercicio.getRespuestaList().get(1).getDescripcion() : ejercicio.getRespuestaList().get(0).getDescripcion(); + idRespuesta = ejercicio.getRespuestaList().get(0).equals(ejercicio.getRespuesta()) ? + ejercicio.getRespuestaList().get(1).getIdRespuesta() : ejercicio.getRespuestaList().get(0).getIdRespuesta(); + } + + siguienteEjercicio = ws.getSiguienteEjercicio(tarea.getIdTarea(), alumno.getIdAlumno(), idRespuesta, respuesta); + + } + } } public static class TipoAlumno { - public static final String NIVEL_CONOCIMIENTO_BAJO = "OO"; - public static final String NIVEL_CONOCIMIENTO_MEDIO = "0.5"; - public static final String NIVEL_CONOCIMIENTO_ALTO = "1"; + public static final Double NIVEL_CONOCIMIENTO_BAJO = 0.0; + public static final Double NIVEL_CONOCIMIENTO_MEDIO = 0.5; + public static final Double NIVEL_CONOCIMIENTO_ALTO = 1.0; } |