diff options
author | cecigg <caggsld@gmail.com> | 2014-10-19 13:17:38 (GMT) |
---|---|---|
committer | cecigg <caggsld@gmail.com> | 2014-10-19 13:17:38 (GMT) |
commit | fad06980c11d8e9257b4de4a3b96a0113cbd5ca3 (patch) | |
tree | 9a69a23be2ae93c90a104a28df1a5e84dd11ae25 | |
parent | 30f2761491a92005be9ec3f7b316dcc163e8a265 (diff) | |
parent | cab10f4b2346c40676f3c92d4eb86c03a20e03bb (diff) |
Merge remote-tracking branch 'remotes/origin/samurey' into Cecilia
-rw-r--r-- | EjercitarJPA/build/classes/model/Alumno.class | bin | 5874 -> 0 bytes | |||
-rw-r--r-- | EjercitarJPA/build/classes/model/Asignatura.class | bin | 5192 -> 0 bytes | |||
-rw-r--r-- | EjercitarServer/ejbModule/beans/EjercitarWSBean.java | 60 | ||||
-rw-r--r-- | EjercitarServer/ejbModule/beans/SimulacionBean.java | 66 |
4 files changed, 78 insertions, 48 deletions
diff --git a/EjercitarJPA/build/classes/model/Alumno.class b/EjercitarJPA/build/classes/model/Alumno.class Binary files differdeleted file mode 100644 index 4a99982..0000000 --- a/EjercitarJPA/build/classes/model/Alumno.class +++ /dev/null diff --git a/EjercitarJPA/build/classes/model/Asignatura.class b/EjercitarJPA/build/classes/model/Asignatura.class Binary files differdeleted file mode 100644 index 63a0eae..0000000 --- a/EjercitarJPA/build/classes/model/Asignatura.class +++ /dev/null diff --git a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java index 215916e..03f5e28 100644 --- a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java +++ b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java @@ -205,11 +205,19 @@ public class EjercitarWSBean implements EjercitarWSRemote { private Ejercicio seleccionUtilidadMax(Tarea tarea, Alumno alumno, int idEjercicioAnterior) {
try{
+
+ //para obtener la sesion anterior.
+ Query query = em.createQuery("Select s from Sesion s where s.alumno.idAlumno = :alumno and s.tarea.idTarea = :tarea order by s.idSesion desc");
+ query.setParameter("alumno", alumno.getIdAlumno());
+ query.setParameter("tarea", tarea.getIdTarea());
+ query.setMaxResults(1);
+ Sesion sesionAnterior = (Sesion) query.getSingleResult();
+
List<Concepto> conceptoList = em.createQuery("Select c from Concepto c inner join c.tareaList t where t = :tarea").setParameter("tarea", tarea).getResultList();
// inicializacion
double utilidadMax = 0;
- Map<Double, Ejercicio> hUtilidades= new HashMap<Double, Ejercicio>();
+ Map<Double, List> hUtilidades= new HashMap<Double, List>();
Ejercicio ejercicio = null;
// System.out.println("cantidad concepto: " + conceptoList.size() + " de la tarea: " + tarea.getDescripcion());
for (Concepto concepto : conceptoList) {
@@ -268,6 +276,7 @@ public class EjercitarWSBean implements EjercitarWSRemote { //System.out.println("utilidadParcial2: " + utilidadParcial2);
double utilidadMaxParcial = utilidadParcial1 + utilidadParcial2;
+ /*
if(utilidadMaxParcial > utilidadMax) {
utilidadMax = utilidadMaxParcial;
ejercicio = ejercicioConcepto;
@@ -278,40 +287,59 @@ public class EjercitarWSBean implements EjercitarWSRemote { ejercicio = ejercicioConcepto;
}
}
+ */
+
+ List utilidades = hUtilidades.get(utilidadMaxParcial);
+ if (utilidades == null )
+ utilidades = new ArrayList();
+
+ if (!sesionAnterior.getEjercicioList().contains(ejercicioConcepto))
+ utilidades.add(ejercicioConcepto);
- hUtilidades.put(utilidadMaxParcial, ejercicioConcepto);
+ if (utilidades.size() > 0)
+ hUtilidades.put(utilidadMaxParcial, utilidades);
//System.out.println("utilidadMax: " + utilidadMax);
//System.out.println("cont" + cont++);
}
}
//System.out.println("obtener la sesion anterior ");
- TreeMap<Double, Ejercicio> tUtilidades = new TreeMap<Double, Ejercicio>(hUtilidades);
+ TreeMap<Double, List> tUtilidades = new TreeMap<Double, List>(hUtilidades);
///System.out.println(tUtilidades);
- //para obtener la sesion anterior.
- Query query = em.createQuery("Select s from Sesion s where s.alumno.idAlumno = :alumno and s.tarea.idTarea = :tarea order by s.idSesion desc");
- query.setParameter("alumno", alumno.getIdAlumno());
- query.setParameter("tarea", tarea.getIdTarea());
- query.setMaxResults(1);
- Sesion sesionAnterior = (Sesion) query.getSingleResult();
+
//int i = tUtilidades.size();
- Map.Entry<Double, Ejercicio> valor;
- Map.Entry<Double, Ejercicio> primerValor;
+ Map.Entry<Double, List> valor;
+ Map.Entry<Double, List> primerValor;
valor = tUtilidades.pollLastEntry();
- primerValor = valor;
+ //primerValor = valor;
//System.out.println("primerValor: " + primerValor);
-
+
+
+ List lista = valor.getValue();
+ Random rnd = new Random();
+ int eleccion = rnd.nextInt(lista.size());
+ return (Ejercicio) lista.get(eleccion);
+
+
+ /*
while(true) {
- if (valor == null) return primerValor.getValue();
- Ejercicio e = valor.getValue();
+ if (valor == null) {
+ List lista = primerValor.getValue();
+ Random rnd = new Random();
+ int eleccion = rnd.nextInt(lista.size());
+ return (Ejercicio) lista.get(eleccion);
+ }
+
+ List lista = valor.getValue();
+
if(sesionAnterior.getEjercicioList()== null || !sesionAnterior.getEjercicioList().contains(e)) {
return e;
}
valor = tUtilidades.pollLastEntry();
- }
+ }*/
//return ejercicio;
}catch(Exception e){
diff --git a/EjercitarServer/ejbModule/beans/SimulacionBean.java b/EjercitarServer/ejbModule/beans/SimulacionBean.java index 4bdcd09..2f4cc1a 100644 --- a/EjercitarServer/ejbModule/beans/SimulacionBean.java +++ b/EjercitarServer/ejbModule/beans/SimulacionBean.java @@ -111,12 +111,8 @@ public class SimulacionBean { Asignatura asignatura = admin.obtenerAsignatura(3); Tarea tarea = admin.obtenerTarea(4); - ArrayList<ArrayList<Object>> datos = new ArrayList(); - - - //getValorNodoRed List<Alumno> alumnos = thisSimular.generacionAlumnos(asignatura); - System.out.println("##########alumnos creados######" + alumnos.size()); + System.out.println("##########alumnos creados######" + alumnos.size()); int cont = 0; for(Alumno alumno : alumnos) { thisSimular.simularAlumno(alumno, tarea, asignatura); @@ -141,34 +137,39 @@ public class SimulacionBean { Boolean parada = false; int cant = 0; Random rnd = new Random(); - - - - for (int i = 0; i < tarea.getCantidadEjercicioParada(); i++) { - - String [] ejercicioString = siguienteEjercicio.split("#"); - Integer idEjercicio = Integer.valueOf(ejercicioString[0]); - Ejercicio ejercicio = admin.obtenerEjercicio(idEjercicio); - - - int decision = rnd.nextInt(100); - String respuesta = null; - int idRespuesta; - Boolean respuestaCorrecta = false; - if(decision <= (alumno.getTipoAlumno()*100)) { - respuesta = ejercicio.getRespuesta().getDescripcion(); - idRespuesta = ejercicio.getRespuesta().getIdRespuesta(); - respuestaCorrecta = true; - } else { - List <Respuesta> respuestas = admin.obtenerRespuestas(ejercicio); - respuesta = respuestas.get(0).equals(ejercicio.getRespuesta()) ? - respuestas.get(1).getDescripcion() : respuestas.get(0).getDescripcion(); - /*idRespuesta = ejercicio.getRespuestaList().get(0).equals(ejercicio.getRespuesta()) ? - ejercicio.getRespuestaList().get(1).getIdRespuesta() : ejercicio.getRespuestaList().get(0).getIdRespuesta(); */ - } + + for (int i = 0; i < tarea.getCantidadEjercicioParada(); i++) { + + String [] ejercicioString = siguienteEjercicio.split("#"); + Integer idEjercicio = Integer.valueOf(ejercicioString[0]); + Ejercicio ejercicio = admin.obtenerEjercicio(idEjercicio); + + int decision = rnd.nextInt(100); + String respuesta = null; + int idRespuesta; + Boolean respuestaCorrecta = false; + if(decision <= (alumno.getTipoAlumno()*100)) { + respuesta = ejercicio.getRespuesta().getDescripcion(); + idRespuesta = ejercicio.getRespuesta().getIdRespuesta(); + respuestaCorrecta = true; + } else { + List <Respuesta> respuestas = admin.obtenerRespuestas(ejercicio); + respuesta = respuestas.get(0).equals(ejercicio.getRespuesta()) ? + respuestas.get(1).getDescripcion() : respuestas.get(0).getDescripcion(); + /*idRespuesta = ejercicio.getRespuestaList().get(0).equals(ejercicio.getRespuesta()) ? + ejercicio.getRespuestaList().get(1).getIdRespuesta() : ejercicio.getRespuestaList().get(0).getIdRespuesta(); */ + respuestas.clear(); + } + + siguienteEjercicio = ws.getSiguienteEjercicio(tarea.getIdTarea(), alumno.getIdAlumno(), ejercicio.getIdEjercicio(), respuesta); + //Asignatura asignatura, Integer idAlumno, Integer idEjercicio, Boolean respuesta - siguienteEjercicio = ws.getSiguienteEjercicio(tarea.getIdTarea(), alumno.getIdAlumno(), ejercicio.getIdEjercicio(), respuesta); - //Asignatura asignatura, Integer idAlumno, Integer idEjercicio, Boolean respuesta + + ArrayList <Object> fila = admin.registrarEjercicio(asignatura, alumno.getIdAlumno(), ejercicio, respuestaCorrecta); + //datos.add(fila); + crearArchivo(fila); + fila.clear(); + } ArrayList <Object> fila = admin.registrarEjercicio(asignatura, alumno.getIdAlumno(), ejercicio, respuestaCorrecta); @@ -196,6 +197,7 @@ public class SimulacionBean { escribir.close(); + } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); |