Anda di halaman 1dari 6

Trabajo Final

Objetivo
El objetivo es escribir un programa que nos permita administrar el estado
acadmico de un alumno, mostrando su funcionamiento en un lenguaje
declarativo que se codifica en Prolog, como tambin su iteracin con el usuario
mediante interfaz grfica este ltimo implementado en java.
Definicin del Programa.
Desarrollar un programa en Prolog que permita revisar si en un horario de clase
existen materias entrecruzadas usando interfaces y llamadas desde Java. Es decir de
un horario predefinido de materias el estudiante debe escoger unas pocas
materias, y el programa debe decir si es que de las materias que han sido escogidas
algunas de ellas se cruzan o si el horario no tiene ningn cruce, adems de permitir
ver si es que una materia encadenada puede ser escogida.

Desarrollo.
El programa es desarrollado de una manera, en el cual el usuario es el principal
actor y es el mismo que introduce los datos del alumno como del profesor, de esta
manera se va llenando la base de conocimientos, que posteriormente permitir
obtener de manera detallada el estado en el que se encuentra el alumno es decir
como este se encuentra en su avance de malla curricular, de esta manera se podr
obtener un tipo de validacin que permita al mismo actor administrar sus materias
en el momento que tenga que realizar su horario.
En la parte del desarrollo del cdigo se ha basado en la implementacin de algunas
clases en java que nos permitirn realizar la iteracin de las mimas con la base de
conocimientos de Prolog, todo esto se lo ha realizado en el ide Netbeans puesto
que este editor ha permitido enlazar estos dos lenguajes.
Para resolver este tipo de problemas se ha utilizado la tcnica de backtraking una
tcnica que esta que esta implcitamente en el lenguaje de programacin Prolog.






Interfaces Graficas.
Esta interfaz es la que aparecer al inicio del programa y nos permitir el acceso a
las diferentes partes del programa.







Al pulsar malla acadmica obtendremos esta forma de ventana que nos permitir
ingresar el cdigo y los dems elementos correspondientes a la materia para cada
alumno










Botn Profesor.







Botn Estudiante.







Botn Consultas.





Base de Conocimientos en Prolog
A continuacin se pondr una pequea base de conocimientos en Prolog que nos
dara una perspectiva de lo implementado.
profesor(luis).
profesor(juan).
profesor(maria).
.............

materia(b01, bases).
materia(r01, redes).
materia(p01, programacion1).
materia(e01, estadistica).
...........

imparte(luis, r01).
imparte(juan, c11).
imparte(juan, e01).
imparte(maria, p01).
...........
horario(r01, lunes, 9).
horario(r01, miercoles, 15).
horario(c11, lunes, 7).
horario(c11, martes, 7).
...........

toma(e01).
toma(p01).
toma(l01).
toma(c11).

Implementacin en Java.
package prolog_trabajofinal;

import Archivos.Archivo;
import Archivos.Serializar;
import Interfaces.Swing.swing_Principal;


public class Prolog_TrabajoFinal ,

public static void main(String*+ args) ,
// TODO code application logic here
swing_Principal principal = new swing_Principal();
principal.setVisible(true);


public class GestorConsultas ,

private RegistroAcademico malla_Actual;
private HashMap <String,Profesor> profesores;
private HashMap <String,Estudiante> estudiantes;

public GestorConsultas() ,

malla_Actual = new RegistroAcademico();
profesores = new HashMap<String,Profesor>();
estudiantes = new HashMap<String,Estudiante>();
.




















Conclusiones:
- Hacer este tipo de horario facilita a los alumnos cuando tienen que
escoger las materias para un ciclo y as evitar cruces entre ellas, adems
de poder ver que materias son las permitidas para coger.

Bibliografa:
- http://es.wikipedia.org/wiki/Prolog
- http://www.desarrolloweb.com/articulos/1573.php

Anda mungkin juga menyukai