From ea0d23a9057a8d9822d4debba9aa60b32a370e26 Mon Sep 17 00:00:00 2001 From: sreyes Date: Sun, 07 Dec 2014 13:34:38 +0000 Subject: Merge remote-tracking branch 'remotes/origin/Cecilia' into samurey --- diff --git a/EjercitarJPA/src/model/Curso.java b/EjercitarJPA/src/model/Curso.java index dea2e82..0076446 100644 --- a/EjercitarJPA/src/model/Curso.java +++ b/EjercitarJPA/src/model/Curso.java @@ -44,10 +44,10 @@ public class Curso implements Serializable { @Basic(optional = false) @Column(name = "id_curso") private Integer idCurso; - @Size(max = 1) + @Size(max = 50) @Column(name = "seccion") private String seccion; - @Size(max = 1) + @Size(max = 50) @Column(name = "turno") private String turno; /*@JoinTable(name = "curso_profesor", joinColumns = { diff --git a/EjercitarJPA/src/model/Ejercicio.java b/EjercitarJPA/src/model/Ejercicio.java index b569f9a..23f4fa7 100644 --- a/EjercitarJPA/src/model/Ejercicio.java +++ b/EjercitarJPA/src/model/Ejercicio.java @@ -55,7 +55,7 @@ public class Ejercicio implements Serializable { @Column(name = "enunciado") private String enunciado; @Column(name = "nivel_dificultad") - private Integer nivelDificultad; + private Double nivelDificultad; @JoinTable(name = "ejercicio_concepto", joinColumns = { @JoinColumn(name = "id_ejercicio", referencedColumnName = "id_ejercicio")}, inverseJoinColumns = { @JoinColumn(name = "id_concepto", referencedColumnName = "id_concepto")}) @@ -130,11 +130,11 @@ public class Ejercicio implements Serializable { this.enunciado = enunciado; } - public Integer getNivelDificultad() { + public Double getNivelDificultad() { return nivelDificultad; } - public void setNivelDificultad(Integer nivelDificultad) { + public void setNivelDificultad(Double nivelDificultad) { this.nivelDificultad = nivelDificultad; } diff --git a/EjercitarServer/ejbModule/beans/AdministracionBean.java b/EjercitarServer/ejbModule/beans/AdministracionBean.java index 92a251f..81f7cee 100644 --- a/EjercitarServer/ejbModule/beans/AdministracionBean.java +++ b/EjercitarServer/ejbModule/beans/AdministracionBean.java @@ -789,7 +789,7 @@ public class AdministracionBean implements AdministracionBeanRemote{ return parteEntera; } - public ArrayList registrarEjercicio(Asignatura asignatura, Integer idAlumno, Ejercicio ejercicio, Boolean respuesta){ + public ArrayList registrarEjercicio(Asignatura asignatura, Integer idAlumno, Ejercicio ejercicio, Boolean respuesta, int cantEjercicio, String tipoAlumno){ ArrayList datosFila = new ArrayList(); @@ -798,8 +798,8 @@ public class AdministracionBean implements AdministracionBeanRemote{ query.setParameter("asignatura", asignatura); List conceptos = query.getResultList(); List temas= obtenerTemas(asignatura); - //System.out.println("temas: " + temas.toString()); - //System.out.println("conceptos: " + conceptos.toString()); + System.out.println("temas: " + temas.toString()); + System.out.println("conceptos: " + conceptos.toString()); datosFila.add(idAlumno); @@ -817,6 +817,8 @@ public class AdministracionBean implements AdministracionBeanRemote{ datosFila.add(ejercicio.getAdivinanza()); datosFila.add(ejercicio.getNivelDificultad()); datosFila.add((respuesta)?"SI":"NO"); + datosFila.add(cantEjercicio); + datosFila.add(tipoAlumno); datosFila.add("\r"); return datosFila; diff --git a/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java b/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java index e19fcb3..ea5af10 100644 --- a/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java +++ b/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java @@ -46,7 +46,7 @@ public interface AdministracionBeanRemote { public int aPorcentaje (Double valor); public Tarea obtenerTarea(Integer idTarea); public Asignatura obtenerAsignatura (Integer idAsignatura); - public ArrayList registrarEjercicio(Asignatura asignatura, Integer idAlumno, Ejercicio ejercicio, Boolean respuesta); + public ArrayList registrarEjercicio(Asignatura asignatura, Integer idAlumno, Ejercicio ejercicio, Boolean respuesta, int cantEjercio, String tipoAlumno); public Integer obtenerIdAlumno(); public Alumno agregarAlumno(Alumno alumno); public Ejercicio obtenerEjercicio(Integer id); diff --git a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java index 7530cf4..8467ca7 100644 --- a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java +++ b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java @@ -1,5 +1,6 @@ package beans; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Date; @@ -216,9 +217,11 @@ public class EjercitarWSBean implements EjercitarWSRemote { List 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 hUtilidades= new HashMap(); + Double utilidadMax = 0.0; + Map hUtilidades= new HashMap(); Ejercicio ejercicio = null; + + // System.out.println("cantidad concepto: " + conceptoList.size() + " de la tarea: " + tarea.getDescripcion()); for (Concepto concepto : conceptoList) { //System.out.println("concepto " + concepto.getNombre()); @@ -229,16 +232,19 @@ public class EjercitarWSBean implements EjercitarWSRemote { net1.readFile("/home/redes/" + nombreRed); net1.updateBeliefs(); String nombreConcepto = concepto.getNombre(); - double [] values = net1.getNodeValue(nombreConcepto); + //double [] values = net1.getNodeValue(nombreConcepto); + + double [] values = net1.getNodeValue(tarea.getAsignatura().getNombre()); + //System.out.println("values"); //System.out.println(" pC0: " + values[0]); //System.out.println(" pC1: " + values[1]); - double pC1 = values[1]; // P(C=1) + BigDecimal pC1 = new BigDecimal(String.valueOf(values[1])); // P(C=1) - double pC0 = values[0]; // P(C=0) + BigDecimal pC0 = new BigDecimal(String.valueOf(values[0])); // P(C=0) int cont = 0; @@ -248,8 +254,8 @@ public class EjercitarWSBean implements EjercitarWSRemote { String nombreEjercicio = "E" + ejercicioConcepto.getIdEjercicio(); values = net1.getNodeValue(nombreEjercicio); - double pE1 = values[1]; // P(E=1) - double pE0 = values[0]; // P(E=0) + Double pE1 = values[1]; // P(E=1) + Double pE0 = values[0]; // P(E=0) //System.out.println("nombreEjercicio: " + nombreEjercicio); @@ -257,10 +263,10 @@ public class EjercitarWSBean implements EjercitarWSRemote { net1.updateBeliefs(); values = net1.getNodeValue(nombreEjercicio); //System.out.println("values " + values); - double pE1C1 = values[1]; // P(E=1/C=1) + BigDecimal pE1C1 = new BigDecimal(String.valueOf(values[1])); // P(E=1/C=1) //System.out.println("pE1C1: " + pE1C1); - double pAuxi1 = pE1C1-pE1; //P(E=1/C=1) - P(E=1) - double utilidadParcial1 = pAuxi1 * pC1; + BigDecimal pAuxi1 = new BigDecimal(pE1C1.toString());//-pE1; //P(E=1/C=1) - P(E=1) + BigDecimal utilidadParcial1 = pAuxi1.multiply(pC1); //System.out.println("utilidadParcial1: " + utilidadParcial1); net1.clearEvidence(nombreConcepto); net1.updateBeliefs(); @@ -269,12 +275,13 @@ public class EjercitarWSBean implements EjercitarWSRemote { values = net1.getNodeValue(nombreEjercicio); //System.out.println("values_ " + values); - double pE0C0 = values[0]; // P(E=0/C=0) - //System.out.println("pE0C0: " + pE0C0); - double pAuxi0 = pE0C0-pE0; //P(E=0/C=0) - P(E=0) - double utilidadParcial2 = pAuxi0 * pC0; + Double pE0C0 = values[0]; // P(E=0/C=0) + //System.out.println("pE0C0: " + pE0C0.toString()); + + BigDecimal pAuxi0 = new BigDecimal(pE0C0.toString());//-pE0; //P(E=0/C=0) - P(E=0) + BigDecimal utilidadParcial2 = pAuxi0.multiply(pC0) ; //System.out.println("utilidadParcial2: " + utilidadParcial2); - double utilidadMaxParcial = utilidadParcial1 + utilidadParcial2; + BigDecimal utilidadMaxParcial = utilidadParcial1.add(utilidadParcial2); /* if(utilidadMaxParcial > utilidadMax) { @@ -288,39 +295,51 @@ public class EjercitarWSBean implements EjercitarWSRemote { } } */ - + utilidadMaxParcial = utilidadMaxParcial.setScale(10, utilidadMaxParcial.ROUND_HALF_UP); + //System.out.println("utilidadMaxParcial: " + utilidadMaxParcial); List utilidades = hUtilidades.get(utilidadMaxParcial); + // System.out.println("utilidades" + hUtilidades); if (utilidades == null ) utilidades = new ArrayList(); - if (!sesionAnterior.getEjercicioList().contains(ejercicioConcepto)) + if (sesionAnterior.getEjercicioList()== null || !sesionAnterior.getEjercicioList().contains(ejercicioConcepto)) utilidades.add(ejercicioConcepto); - + // System.out.println("sesion" + ejercicioConcepto.toString()); if (utilidades.size() > 0) hUtilidades.put(utilidadMaxParcial, utilidades); //System.out.println("utilidadMax: " + utilidadMax); - //System.out.println("cont" + cont++); + // System.out.println("utilidades.size()" + utilidades.size()); } } //System.out.println("obtener la sesion anterior "); - TreeMap tUtilidades = new TreeMap(hUtilidades); - ///System.out.println(tUtilidades); - + TreeMap tUtilidades = new TreeMap(hUtilidades); + // System.out.println("treeMap"); + TreeMap tree = (TreeMap) tUtilidades.clone(); - + for (int i=0; i< tUtilidades.size(); i++){ + + Map.Entry valor = tree.pollLastEntry(); + System.out.println("utilidad: " + valor.getKey().toString()); + List ejercicioLista = valor.getValue(); + /*for( Ejercicio ejer : ejercicioLista){ + System.out.println(ejer.getIdEjercicio() + " - " + ejer.getEnunciado() ); + } + */ + } //int i = tUtilidades.size(); - Map.Entry valor; - Map.Entry primerValor; + Map.Entry valor; + Map.Entry primerValor; valor = tUtilidades.pollLastEntry(); //primerValor = valor; - //System.out.println("primerValor: " + primerValor); + // System.out.println("valor " + valor); List lista = valor.getValue(); Random rnd = new Random(); int eleccion = rnd.nextInt(lista.size()); + //System.out.println("radom"); return (Ejercicio) lista.get(eleccion); @@ -366,6 +385,7 @@ public class EjercitarWSBean implements EjercitarWSRemote { sesion.setTarea(tarea); em.persist(sesion); + em.flush(); return sesion.getIdSesion(); } diff --git a/EjercitarServer/ejbModule/beans/SimulacionBean.java b/EjercitarServer/ejbModule/beans/SimulacionBean.java index 2041590..edc911d 100644 --- a/EjercitarServer/ejbModule/beans/SimulacionBean.java +++ b/EjercitarServer/ejbModule/beans/SimulacionBean.java @@ -90,7 +90,7 @@ public class SimulacionBean { if(i <= 10){ tipo = TipoAlumno.NIVEL_CONOCIMIENTO_BAJO; - }else if(i >10 && i <=20){ + }else if(i > 10 && i<=20){ tipo = TipoAlumno.NIVEL_CONOCIMIENTO_MEDIO; }else{ tipo = TipoAlumno.NIVEL_CONOCIMIENTO_ALTO; @@ -117,7 +117,7 @@ public class SimulacionBean { for(Alumno alumno : alumnos) { thisSimular.simularAlumno(alumno, tarea, asignatura); System.out.println("---------------alumno simulado nro: " + ++cont + "----------------------"); - + } // crearArchivo(datos); @@ -131,7 +131,7 @@ public class SimulacionBean { System.out.println("tarea: " + tarea.getIdTarea() + "alumno: " + alumno.getIdAlumno()); Integer idSesion = crearSesion(alumno.getIdAlumno(), tarea.getIdTarea()); - //System.out.println("##########sesion creada ######"); + System.out.println("##########sesion creada ######"); String siguienteEjercicio = ws.getSiguienteEjercicio(tarea.getIdTarea(), alumno.getIdAlumno(), 0, "respuesta"); Boolean parada = false; @@ -165,20 +165,13 @@ public class SimulacionBean { //Asignatura asignatura, Integer idAlumno, Integer idEjercicio, Boolean respuesta - ArrayList fila = admin.registrarEjercicio(asignatura, alumno.getIdAlumno(), ejercicio, respuestaCorrecta); + ArrayList fila = admin.registrarEjercicio(asignatura, alumno.getIdAlumno(), ejercicio, respuestaCorrecta,i,alumno.getTipoAlumno().toString()); //datos.add(fila); crearArchivo(fila); fila.clear(); } - ArrayList fila = admin.registrarEjercicio(asignatura, alumno.getIdAlumno(), ejercicio, respuestaCorrecta); - //datos.add(fila); - crearArchivo(fila); - } - - //System.out.println("alumno creado " + alumno.getNombre()); - ws.terminarTarea(idSesion); diff --git a/EjercitarWeb/WebContent/Asignatura.jsp b/EjercitarWeb/WebContent/Asignatura.jsp index 3a42a91..602c112 100644 --- a/EjercitarWeb/WebContent/Asignatura.jsp +++ b/EjercitarWeb/WebContent/Asignatura.jsp @@ -59,7 +59,7 @@ diff --git a/EjercitarWeb/WebContent/Concepto.jsp b/EjercitarWeb/WebContent/Concepto.jsp index c89e28a..b4d4a8e 100644 --- a/EjercitarWeb/WebContent/Concepto.jsp +++ b/EjercitarWeb/WebContent/Concepto.jsp @@ -82,7 +82,7 @@ diff --git a/EjercitarWeb/WebContent/Ejercicios.jsp b/EjercitarWeb/WebContent/Ejercicios.jsp index f6b347e..e9784e5 100644 --- a/EjercitarWeb/WebContent/Ejercicios.jsp +++ b/EjercitarWeb/WebContent/Ejercicios.jsp @@ -98,7 +98,7 @@ @@ -117,7 +117,7 @@ diff --git a/EjercitarWeb/WebContent/Tarea.jsp b/EjercitarWeb/WebContent/Tarea.jsp index 0037220..e7d7af1 100644 --- a/EjercitarWeb/WebContent/Tarea.jsp +++ b/EjercitarWeb/WebContent/Tarea.jsp @@ -59,7 +59,7 @@ diff --git a/EjercitarWeb/WebContent/Tema.jsp b/EjercitarWeb/WebContent/Tema.jsp index a049316..1faec48 100644 --- a/EjercitarWeb/WebContent/Tema.jsp +++ b/EjercitarWeb/WebContent/Tema.jsp @@ -45,7 +45,7 @@ diff --git a/EjercitarWeb/WebContent/concepto_ed.jsp b/EjercitarWeb/WebContent/concepto_ed.jsp index edf40da..2a38f42 100644 --- a/EjercitarWeb/WebContent/concepto_ed.jsp +++ b/EjercitarWeb/WebContent/concepto_ed.jsp @@ -84,7 +84,7 @@ diff --git a/EjercitarWeb/WebContent/iniciar_curso.jsp b/EjercitarWeb/WebContent/iniciar_curso.jsp index 30a4a54..38ce917 100644 --- a/EjercitarWeb/WebContent/iniciar_curso.jsp +++ b/EjercitarWeb/WebContent/iniciar_curso.jsp @@ -180,7 +180,7 @@ diff --git a/EjercitarWeb/WebContent/menu_principal.jsp b/EjercitarWeb/WebContent/menu_principal.jsp index 1cb3ba9..4cb42b0 100644 --- a/EjercitarWeb/WebContent/menu_principal.jsp +++ b/EjercitarWeb/WebContent/menu_principal.jsp @@ -58,7 +58,7 @@ diff --git a/EjercitarWeb/WebContent/profesor.jsp b/EjercitarWeb/WebContent/profesor.jsp index 2c6358e..e049500 100644 --- a/EjercitarWeb/WebContent/profesor.jsp +++ b/EjercitarWeb/WebContent/profesor.jsp @@ -89,7 +89,7 @@ diff --git a/EjercitarWeb/WebContent/tema_ed.jsp b/EjercitarWeb/WebContent/tema_ed.jsp index 3fe963e..112f038 100644 --- a/EjercitarWeb/WebContent/tema_ed.jsp +++ b/EjercitarWeb/WebContent/tema_ed.jsp @@ -51,7 +51,7 @@ diff --git a/EjercitarWeb/WebContent/templateBODY.jsp b/EjercitarWeb/WebContent/templateBODY.jsp index 1f62b88..1c81de3 100644 --- a/EjercitarWeb/WebContent/templateBODY.jsp +++ b/EjercitarWeb/WebContent/templateBODY.jsp @@ -4,7 +4,7 @@
Ejercitar: Un Modelo de aprendizaje asistido por computadora - Ceci Godoy - Samu Reyes. Ingeniería en Informática + Cecilia Godoy - Samuel Reyes. Ingeniería en Informática Facultad Politécnica - Universidad Nacional de Asunción
\ No newline at end of file diff --git a/EjercitarWeb/WebContent/templateCSS.jsp b/EjercitarWeb/WebContent/templateCSS.jsp index ece1005..39c57c6 100644 --- a/EjercitarWeb/WebContent/templateCSS.jsp +++ b/EjercitarWeb/WebContent/templateCSS.jsp @@ -45,7 +45,7 @@
diff --git a/EjercitarWeb/WebContent/ver_resultados.jsp b/EjercitarWeb/WebContent/ver_resultados.jsp index d7d67f9..0b6d510 100644 --- a/EjercitarWeb/WebContent/ver_resultados.jsp +++ b/EjercitarWeb/WebContent/ver_resultados.jsp @@ -151,7 +151,7 @@ diff --git a/EjercitarWeb/WebContent/vista_asignatura.jsp b/EjercitarWeb/WebContent/vista_asignatura.jsp index b404b18..9fa5afb 100644 --- a/EjercitarWeb/WebContent/vista_asignatura.jsp +++ b/EjercitarWeb/WebContent/vista_asignatura.jsp @@ -113,7 +113,7 @@ diff --git a/EjercitarWeb/src/src/MenuPrincipalServlet.java b/EjercitarWeb/src/src/MenuPrincipalServlet.java index 2bee6fd..ade744a 100644 --- a/EjercitarWeb/src/src/MenuPrincipalServlet.java +++ b/EjercitarWeb/src/src/MenuPrincipalServlet.java @@ -15,7 +15,6 @@ import javax.servlet.http.HttpServletResponse; import model.Asignatura; import model.Profesor; -import beans.SimulacionBeanRemote; /** * Servlet implementation class MenuPrincipalServlet @@ -28,8 +27,7 @@ public class MenuPrincipalServlet extends HttpServlet { /** * @see HttpServlet#HttpServlet() */ - @EJB - SimulacionBeanRemote simular; + public MenuPrincipalServlet() { super(); @@ -45,7 +43,7 @@ public class MenuPrincipalServlet extends HttpServlet { response.setContentType("text/html;charset=UTF-8"); Profesor profesor = (Profesor)request.getSession().getAttribute("profesor"); Profesor profTemp = em.find(Profesor.class, profesor.getIdProfesor()); - simular.simular(); + List asignaturas = em.createQuery("select a from Asignatura a where a.profesor = :profesor ").setParameter("profesor", profTemp).getResultList(); request.setAttribute("lista_asignatura", asignaturas); diff --git a/EjercitarWeb/src/src/NuevoConceptoServlet.java b/EjercitarWeb/src/src/NuevoConceptoServlet.java index 5d25943..989e316 100644 --- a/EjercitarWeb/src/src/NuevoConceptoServlet.java +++ b/EjercitarWeb/src/src/NuevoConceptoServlet.java @@ -79,7 +79,7 @@ public class NuevoConceptoServlet extends HttpServlet { //concepto.setAdivinanza(Double.parseDouble(adivinanza)); concepto.setApriori(Double.parseDouble(apriori)); //concepto.setDescuido(Double.parseDouble(descuido)); - //concepto.setPeso(Double.valueOf(peso)); + //concepto.setPeso(Double.valueOf(peso));f concepto.setDescripcion(descripcion); concepto.setNombre(nombre); diff --git a/EjercitarWeb/src/src/NuevoEjercicioServlet.java b/EjercitarWeb/src/src/NuevoEjercicioServlet.java index 5aa0b5b..2524b61 100644 --- a/EjercitarWeb/src/src/NuevoEjercicioServlet.java +++ b/EjercitarWeb/src/src/NuevoEjercicioServlet.java @@ -134,7 +134,7 @@ public class NuevoEjercicioServlet extends HttpServlet { double adivinanza = Double.valueOf(request.getParameter("descuido")); ejercicio.setAdivinanza(adivinanza); - ejercicio.setNivelDificultad(Integer.valueOf(request.getParameter("dificultad"))); + ejercicio.setNivelDificultad(Double.valueOf(request.getParameter("dificultad"))); // System.out.println(request.getParameter("imagen").getBytes()); -- cgit v0.9.1