diff options
author | sreyes <sreyes@dataworks.com.py> | 2014-09-30 12:55:41 (GMT) |
---|---|---|
committer | sreyes <sreyes@dataworks.com.py> | 2014-09-30 12:55:41 (GMT) |
commit | 0a25b660f3decececd0bd6c88761c2d4a492b4ed (patch) | |
tree | f682eb66c5bb11c513831ea75e5020230e097000 /EjercitarServer | |
parent | d7575563a46b0bbd8f27e4c079c6d404206c413e (diff) | |
parent | 5270f36069849801c0949a922ca2b3de031003d4 (diff) |
Merge remote-tracking branch 'remotes/origin/Cecilia' into samurey
Conflicts:
EjercitarServer/build/classes/beans/AdministracionBean.class
EjercitarServer/build/classes/beans/AdministracionBeanRemote.class
EjercitarServer/build/classes/beans/EjercitarWSBean.class
EjercitarWeb/build/classes/src/NuevoEjercicioServlet.class
EjercitarWeb/build/classes/src/NuevoTemaServlet.class
Diffstat (limited to 'EjercitarServer')
-rw-r--r-- | EjercitarServer/build/classes/META-INF/MANIFEST.MF | 2 | ||||
-rw-r--r-- | EjercitarServer/build/classes/beans/red_alumno_1.xdsl | 60 | ||||
-rw-r--r-- | EjercitarServer/build/classes/red_alumno_1.xdsl | 60 | ||||
-rw-r--r-- | EjercitarServer/build/classes/red_base_curso_1.xdsl | 60 | ||||
-rw-r--r-- | EjercitarServer/ejbModule/beans/EjercitarWSBean.java | 12 | ||||
-rw-r--r-- | EjercitarServer/ejbModule/beans/Simulacion.java | 72 |
6 files changed, 70 insertions, 196 deletions
diff --git a/EjercitarServer/build/classes/META-INF/MANIFEST.MF b/EjercitarServer/build/classes/META-INF/MANIFEST.MF deleted file mode 100644 index 59499bc..0000000 --- a/EjercitarServer/build/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,2 +0,0 @@ -Manifest-Version: 1.0 - diff --git a/EjercitarServer/build/classes/beans/red_alumno_1.xdsl b/EjercitarServer/build/classes/beans/red_alumno_1.xdsl deleted file mode 100644 index 9e30f46..0000000 --- a/EjercitarServer/build/classes/beans/red_alumno_1.xdsl +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<smile version="1.0" id="Network1" numsamples="1000" discsamples="10000"> - <nodes> - <cpt id="C1"> - <state id="State0" /> - <state id="State1" /> - <probabilities>0.5 0.5</probabilities> - </cpt> - <cpt id="E1"> - <state id="State0" /> - <state id="State1" /> - <parents>C1</parents> - <probabilities>0.5 0.5 0.5 0.5</probabilities> - </cpt> - <cpt id="E2"> - <state id="State0" /> - <state id="State1" /> - <parents>C1</parents> - <probabilities>0.5 0.5 0.5 0.5</probabilities> - </cpt> - <cpt id="E3"> - <state id="State0" /> - <state id="State1" /> - <parents>C1</parents> - <probabilities>0.5 0.5 0.5 0.5</probabilities> - </cpt> - </nodes> - <extensions> - <genie version="1.0" app="GeNIe 2.0.4779.0" name="Network1" faultnameformat="nodestate"> - <node id="E1"> - <name>E1</name> - <interior color="e5f6f7" /> - <outline color="000080" /> - <font color="000000" name="Arial" size="8" /> - <position>203 276 251 306</position> - </node> - <node id="E2"> - <name>E2</name> - <interior color="e5f6f7" /> - <outline color="000080" /> - <font color="000000" name="Arial" size="8" /> - <position>365 272 413 302</position> - </node> - <node id="E3"> - <name>E3</name> - <interior color="e5f6f7" /> - <outline color="000080" /> - <font color="000000" name="Arial" size="8" /> - <position>508 290 556 320</position> - </node> - <node id="C1"> - <name>C1</name> - <interior color="e5f6f7" /> - <outline color="000080" /> - <font color="000000" name="Arial" size="8" /> - <position>354 101 390 123</position> - </node> - </genie> - </extensions> -</smile> diff --git a/EjercitarServer/build/classes/red_alumno_1.xdsl b/EjercitarServer/build/classes/red_alumno_1.xdsl deleted file mode 100644 index 9e30f46..0000000 --- a/EjercitarServer/build/classes/red_alumno_1.xdsl +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<smile version="1.0" id="Network1" numsamples="1000" discsamples="10000"> - <nodes> - <cpt id="C1"> - <state id="State0" /> - <state id="State1" /> - <probabilities>0.5 0.5</probabilities> - </cpt> - <cpt id="E1"> - <state id="State0" /> - <state id="State1" /> - <parents>C1</parents> - <probabilities>0.5 0.5 0.5 0.5</probabilities> - </cpt> - <cpt id="E2"> - <state id="State0" /> - <state id="State1" /> - <parents>C1</parents> - <probabilities>0.5 0.5 0.5 0.5</probabilities> - </cpt> - <cpt id="E3"> - <state id="State0" /> - <state id="State1" /> - <parents>C1</parents> - <probabilities>0.5 0.5 0.5 0.5</probabilities> - </cpt> - </nodes> - <extensions> - <genie version="1.0" app="GeNIe 2.0.4779.0" name="Network1" faultnameformat="nodestate"> - <node id="E1"> - <name>E1</name> - <interior color="e5f6f7" /> - <outline color="000080" /> - <font color="000000" name="Arial" size="8" /> - <position>203 276 251 306</position> - </node> - <node id="E2"> - <name>E2</name> - <interior color="e5f6f7" /> - <outline color="000080" /> - <font color="000000" name="Arial" size="8" /> - <position>365 272 413 302</position> - </node> - <node id="E3"> - <name>E3</name> - <interior color="e5f6f7" /> - <outline color="000080" /> - <font color="000000" name="Arial" size="8" /> - <position>508 290 556 320</position> - </node> - <node id="C1"> - <name>C1</name> - <interior color="e5f6f7" /> - <outline color="000080" /> - <font color="000000" name="Arial" size="8" /> - <position>354 101 390 123</position> - </node> - </genie> - </extensions> -</smile> diff --git a/EjercitarServer/build/classes/red_base_curso_1.xdsl b/EjercitarServer/build/classes/red_base_curso_1.xdsl deleted file mode 100644 index 9e30f46..0000000 --- a/EjercitarServer/build/classes/red_base_curso_1.xdsl +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<smile version="1.0" id="Network1" numsamples="1000" discsamples="10000"> - <nodes> - <cpt id="C1"> - <state id="State0" /> - <state id="State1" /> - <probabilities>0.5 0.5</probabilities> - </cpt> - <cpt id="E1"> - <state id="State0" /> - <state id="State1" /> - <parents>C1</parents> - <probabilities>0.5 0.5 0.5 0.5</probabilities> - </cpt> - <cpt id="E2"> - <state id="State0" /> - <state id="State1" /> - <parents>C1</parents> - <probabilities>0.5 0.5 0.5 0.5</probabilities> - </cpt> - <cpt id="E3"> - <state id="State0" /> - <state id="State1" /> - <parents>C1</parents> - <probabilities>0.5 0.5 0.5 0.5</probabilities> - </cpt> - </nodes> - <extensions> - <genie version="1.0" app="GeNIe 2.0.4779.0" name="Network1" faultnameformat="nodestate"> - <node id="E1"> - <name>E1</name> - <interior color="e5f6f7" /> - <outline color="000080" /> - <font color="000000" name="Arial" size="8" /> - <position>203 276 251 306</position> - </node> - <node id="E2"> - <name>E2</name> - <interior color="e5f6f7" /> - <outline color="000080" /> - <font color="000000" name="Arial" size="8" /> - <position>365 272 413 302</position> - </node> - <node id="E3"> - <name>E3</name> - <interior color="e5f6f7" /> - <outline color="000080" /> - <font color="000000" name="Arial" size="8" /> - <position>508 290 556 320</position> - </node> - <node id="C1"> - <name>C1</name> - <interior color="e5f6f7" /> - <outline color="000080" /> - <font color="000000" name="Arial" size="8" /> - <position>354 101 390 123</position> - </node> - </genie> - </extensions> -</smile> diff --git a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java index 5fb58dd..1bd9f69 100644 --- a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java +++ b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java @@ -255,6 +255,12 @@ public class EjercitarWSBean implements EjercitarWSRemote { if(utilidadMaxParcial > utilidadMax) {
utilidadMax = utilidadMaxParcial;
ejercicio = ejercicioConcepto;
+ } else if (utilidadMaxParcial == utilidadMax) {
+ Random rnd = new Random();
+ int eleccion = rnd.nextInt(2);
+ if (eleccion == 1) {
+ ejercicio = ejercicioConcepto;
+ }
}
hUtilidades.put(utilidadMaxParcial, ejercicioConcepto);
@@ -433,7 +439,7 @@ public class EjercitarWSBean implements EjercitarWSRemote { public void corregirProbabilidadesEjercicios() {
- Asignatura asignatura = em.find(Asignatura.class, 13);
+ Asignatura asignatura = em.find(Asignatura.class, 3);
System.out.println(asignatura.getNombre());
List<Tema> temas = (List<Tema>) em.createQuery("select t from Tema t where t.asignatura = :asignatura").setParameter("asignatura", asignatura).getResultList();
@@ -444,7 +450,7 @@ public class EjercitarWSBean implements EjercitarWSRemote { System.out.println("conceptos " + conceptos.size() );
Network net = new Network();
- net.readFile("/home/redes/red_asignatura_13.xdsl");
+ net.readFile("/home/redes/red_asignatura_3.xdsl");
System.out.println("########## leido #############");
@@ -461,7 +467,7 @@ public class EjercitarWSBean implements EjercitarWSRemote { }
}
- net.writeFile("/home/redes/red_asignatura_13.xdsl");
+ net.writeFile("/home/redes/red_asignatura_3.xdsl");
}
diff --git a/EjercitarServer/ejbModule/beans/Simulacion.java b/EjercitarServer/ejbModule/beans/Simulacion.java index a82eaa0..5ee614e 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 = null;//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; } |