Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcecigg <caggsld@gmail.com>2014-10-12 19:18:27 (GMT)
committer cecigg <caggsld@gmail.com>2014-10-12 19:18:27 (GMT)
commit4215a259c0bbecd9a135ce3a9fff674fab8757e0 (patch)
tree1eb9cbd6ddfa753947e0c608238df4bc6f60eee8
parent9f639a488cbe44e7871ffb4f7f50d29ca5057fe7 (diff)
se arreglo simulacion
-rw-r--r--EjercitarServer/ejbModule/beans/AdministracionBean.java35
-rw-r--r--EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java5
-rw-r--r--EjercitarServer/ejbModule/beans/EjercitarWSBean.java14
-rw-r--r--EjercitarServer/ejbModule/beans/SimulacionBean.java65
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();