diff options
author | cecigg <caggsld@gmail.com> | 2014-10-12 19:18:27 (GMT) |
---|---|---|
committer | cecigg <caggsld@gmail.com> | 2014-10-12 19:18:27 (GMT) |
commit | 4215a259c0bbecd9a135ce3a9fff674fab8757e0 (patch) | |
tree | 1eb9cbd6ddfa753947e0c608238df4bc6f60eee8 | |
parent | 9f639a488cbe44e7871ffb4f7f50d29ca5057fe7 (diff) |
se arreglo simulacion
4 files changed, 72 insertions, 47 deletions
diff --git a/EjercitarServer/ejbModule/beans/AdministracionBean.java b/EjercitarServer/ejbModule/beans/AdministracionBean.java index 3ceb832..406e606 100644 --- a/EjercitarServer/ejbModule/beans/AdministracionBean.java +++ b/EjercitarServer/ejbModule/beans/AdministracionBean.java @@ -274,14 +274,17 @@ public class AdministracionBean implements AdministracionBeanRemote{ //em.merge(tarea); } - public void agregarAlumno(Alumno alumno){ + public Alumno agregarAlumno(Alumno alumno){ em.persist(alumno); + em.flush(); + return alumno; + } public Integer obtenerIdAlumno(){ - return em.createQuery("select max(a.idAlumno) from Alumno a").getFirstResult(); + return em.createNativeQuery("select max(id_alumno) from alumno ").getFirstResult(); } public void calcularProbabilidades(int idAsignatura) { @@ -794,7 +797,8 @@ public class AdministracionBean implements AdministracionBeanRemote{ Query query = em.createQuery(queryConceptos); query.setParameter("asignatura", asignatura); List <Concepto>conceptos = query.getResultList(); - List<Tema> temas= asignatura.getTemaList(); + List<Tema> temas= obtenerTemas(asignatura); + datosFila.add(idAlumno); for(Tema tema : temas){ String porcentajeTema = getValorNodoRed(tema.getNombre(), asignatura.getIdAsignatura(), idAlumno); @@ -802,12 +806,13 @@ public class AdministracionBean implements AdministracionBeanRemote{ } for(Concepto concepto : conceptos){ - String porcentajeTema = getValorNodoRed(concepto.getNombre(), asignatura.getIdAsignatura(), idAlumno); - datosFila.add(porcentajeTema); + String porcentajeConcepto = getValorNodoRed(concepto.getNombre(), asignatura.getIdAsignatura(), idAlumno); + datosFila.add(porcentajeConcepto); } datosFila.add(idEjercicio); datosFila.add((respuesta)?"SI":"NO"); - + datosFila.add("\r"); + return datosFila; } @@ -824,6 +829,22 @@ public class AdministracionBean implements AdministracionBeanRemote{ } - + public Ejercicio obtenerEjercicio(Integer id){ + + return em.find(Ejercicio.class, id); + + } + + public List obtenerRespuestas(Ejercicio ejercicio){ + String queryRespuesta = "select r from Respuesta r join r.ejercicioList e where e = :ejercicio "; + List <Respuesta>respuestas = em.createQuery(queryRespuesta).setParameter("ejercicio", ejercicio).getResultList(); + return respuestas; + } + + public List obtenerTemas(Asignatura asignatura){ + List<Tema> temaList = (List<Tema>) em.createQuery("Select e from Tema e where e.asignatura=:asignatura" ) + .setParameter("asignatura", asignatura).getResultList() ; + return temaList; + } } diff --git a/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java b/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java index d873653..aaaa913 100644 --- a/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java +++ b/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java @@ -48,6 +48,7 @@ public interface AdministracionBeanRemote { public Asignatura obtenerAsignatura (Integer idAsignatura); public ArrayList <Object> registrarEjercicio(Asignatura asignatura, Integer idAlumno, Integer idEjercicio, Boolean respuesta); public Integer obtenerIdAlumno(); - public void agregarAlumno(Alumno alumno); - + public Alumno agregarAlumno(Alumno alumno); + public Ejercicio obtenerEjercicio(Integer id); + public List obtenerRespuestas(Ejercicio ejercicio); } diff --git a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java index d6b9be1..0b42735 100644 --- a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java +++ b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java @@ -132,7 +132,6 @@ public class EjercitarWSBean implements EjercitarWSRemote { //Ejercicio ejercicio = seleccionAleatoria(tarea);
Ejercicio ejercicio = seleccionUtilidadMax(tarea, alumno, idEjercicio);
String enunciado = toASCII(ejercicio.getEnunciado());
- System.out.println(enunciado);
String ejercicioElement = ejercicio.getIdEjercicio().toString() + "#" + enunciado;
return ejercicioElement;
}
@@ -145,7 +144,6 @@ public class EjercitarWSBean implements EjercitarWSRemote { net1.readFile("/home/redes/" + nombreRed);
net1.updateBeliefs();
String nombreEjercicio = "E" + idEjercicio;
- System.out.println("proba d");
if(respuesta.equals(ejercicio.getRespuesta().getDescripcion())) {
net1.setEvidence(nombreEjercicio, "Correcto");
} else {
@@ -176,6 +174,9 @@ public class EjercitarWSBean implements EjercitarWSRemote { Sesion sesionAnterior = (Sesion) query.getSingleResult();
List<Ejercicio> respondidos = sesionAnterior.getEjercicioList();
+ if(respondidos==null){
+ respondidos = new ArrayList<Ejercicio>();
+ }
respondidos.add(ejercicio);
sesionAnterior.setEjercicioList(respondidos);
em.persist(sesionAnterior);
@@ -295,22 +296,17 @@ public class EjercitarWSBean implements EjercitarWSRemote { query.setMaxResults(1);
Sesion sesionAnterior = (Sesion) query.getSingleResult();
- System.out.println(sesionAnterior.getEstadoAnimo());
//int i = tUtilidades.size();
Map.Entry<Double, Ejercicio> valor;
Map.Entry<Double, Ejercicio> primerValor;
valor = tUtilidades.pollLastEntry();
primerValor = valor;
while(true) {
- System.out.println(valor.toString());
if (valor == null) return primerValor.getValue();
Ejercicio e = valor.getValue();
- if(!sesionAnterior.getEjercicioList().contains(e)) {
- System.out.println("no hay");
+ if(sesionAnterior.getEjercicioList()== null || !sesionAnterior.getEjercicioList().contains(e)) {
return e;
- } else {
- System.out.println("ya hay");
- }
+ }
valor = tUtilidades.pollLastEntry();
}
diff --git a/EjercitarServer/ejbModule/beans/SimulacionBean.java b/EjercitarServer/ejbModule/beans/SimulacionBean.java index 5a8a692..27e5a56 100644 --- a/EjercitarServer/ejbModule/beans/SimulacionBean.java +++ b/EjercitarServer/ejbModule/beans/SimulacionBean.java @@ -17,11 +17,10 @@ import javax.jws.soap.SOAPBinding; import model.Alumno; import model.Asignatura; -import model.Concepto; import model.Curso; import model.Ejercicio; +import model.Respuesta; import model.Tarea; -import model.Tema; @Stateless @LocalBean @@ -37,19 +36,19 @@ public class SimulacionBean { @EJB EjercitarWSRemote ws; - public Alumno crearAlumno(Curso curso, Double tipo){ + public Alumno crearAlumno(Curso curso, Double tipo, Integer id){ Alumno alumno = new Alumno(); - Integer idAlumno = admin.obtenerIdAlumno() + 1; - alumno.setNombre("nom_" + idAlumno); - alumno.setApellido("ape_" + idAlumno); + // Integer idAlumno = admin.obtenerIdAlumno() + 1; + alumno.setNombre("nom_" + id); + alumno.setApellido("ape_" + id); alumno.setSerial(123456); alumno.setCurso(curso); alumno.setTipoAlumno(tipo); - admin.agregarAlumno(alumno); + alumno = admin.agregarAlumno(alumno); return alumno; @@ -62,9 +61,10 @@ public class SimulacionBean { int ayuda = rnd.nextInt(2); int hogar = rnd.nextInt(2); String estadoAnimo = estados[estado]; - Boolean ayudaPadres = (ayuda%2==0) ? true:false; - Boolean desdeHogar = (hogar%2==0) ? true:false; - + Boolean ayudaPadres = (ayuda == 0) ? true:false; + Boolean desdeHogar = (hogar ==0) ? true:false; + + Integer idSesion = ws.registrarSesion(idAlumno, idTarea, ayudaPadres, desdeHogar, estadoAnimo); return idSesion; @@ -73,7 +73,7 @@ public class SimulacionBean { public List<Alumno> generacionAlumnos(Asignatura asignatura){ Curso curso = asignatura.getCurso(); - int cantidadAlumnos = 30; + int cantidadAlumnos = 4; Double tipo; List<Alumno> alumnos = new ArrayList<Alumno>(); @@ -87,7 +87,7 @@ public class SimulacionBean { }else{ tipo = TipoAlumno.NIVEL_CONOCIMIENTO_ALTO; } - Alumno alumno = crearAlumno(curso, tipo); + Alumno alumno = crearAlumno(curso, tipo, i); alumnos.add(alumno); } @@ -103,28 +103,31 @@ public class SimulacionBean { Asignatura asignatura = admin.obtenerAsignatura(3); Tarea tarea = admin.obtenerTarea(3); - File tmpFile = new File ("prueba.xlsx"); ArrayList<ArrayList<Object>> datos = new ArrayList(); //getValorNodoRed List<Alumno> alumnos = generacionAlumnos(asignatura); - + System.out.println("##########alumnos creados######" + alumnos.size()); for(Alumno alumno : alumnos) { + System.out.println("tarea: " + tarea.getIdTarea() + "alumno: " + alumno.getIdAlumno()); + + Integer idSesion = crearSesion(alumno.getIdAlumno(), tarea.getIdTarea()); + System.out.println("##########sesion creada ######"); + String siguienteEjercicio = ws.getSiguienteEjercicio(tarea.getIdTarea(), alumno.getIdAlumno(), 0, "respuesta"); Boolean parada = false; int cant = 0; Random rnd = new Random(); - Integer idSesion = crearSesion(alumno.getIdAlumno(), tarea.getIdTarea()); - + for (int i = 0; i < tarea.getCantidadEjercicioParada(); i++) { String [] ejercicioString = siguienteEjercicio.split("#"); Integer idEjercicio = Integer.valueOf(ejercicioString[0]); - Ejercicio ejercicio = null;//admin.getEjercicio(idEjercicio); + Ejercicio ejercicio = admin.obtenerEjercicio(idEjercicio); int decision = rnd.nextInt(100); @@ -136,37 +139,41 @@ public class SimulacionBean { idRespuesta = ejercicio.getRespuesta().getIdRespuesta(); respuestaCorrecta = true; } 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(); + 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(); */ } - siguienteEjercicio = ws.getSiguienteEjercicio(tarea.getIdTarea(), alumno.getIdAlumno(), idRespuesta, 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(), idEjercicio, respuestaCorrecta); - datos.add(fila); + //datos.add(fila); + crearArchivo(fila); } - + System.out.println("alumno creado " + alumno.getNombre()); + ws.terminarTarea(idSesion); } - crearArchivo(datos); + // crearArchivo(datos); } - private void crearArchivo(ArrayList<ArrayList<Object>> datos) { + private void crearArchivo(ArrayList<Object> fila) { File archivo = new File("prueba_tarea.csv"); FileWriter escribir; try { escribir = new FileWriter(archivo,true); - for(ArrayList<Object> fila : datos){ + String idList = fila.toString(); String csv = idList.substring(1, idList.length() - 1).replace(", ", ","); escribir.write(csv); - } + escribir.close(); |