trabajo lisp
Facultad de Ingeniería
Escuela de Ingeniería Informática
Ingeniería de Ejecución Informática
TAREA 1 – LISP
Valparaíso, 12 de Mayo del 2012.-
ÍNDICE
INTRODUCCIÓN………………………………………………………………………..……….3
Planteamiento delProblema…………………….…………………………………….…….....4
CONCLUSIÓN……………………………………………………………………….…………..
INTRODUCCIÓN
El presente informe reúne y explica brevemente las funciones que componen nuestro programa, que se ha basado en el lenguaje de Programación LISP y que permite el total reemplazo del sistema de administración de la biblioteca que utiliza laPontificia Universidad Católica de Valparaíso actualmente.
El programa permite la administración de libros y cubículos, en donde se dan las opciones de administrar el ingreso, búsqueda, préstamo y devolución de libros que posee la biblioteca, además de listar libros y mostrar los usuarios con mas libros prestados, la cantidad de libros prestados según fecha de entrega y la categoría que poseemas prestamos. En tanto en la administración de cubículos permite la reserva, confirmación y liberación de cubículos, además de listar todas las reservas por orden de fecha.
Para la eficiente administración del sistema de biblioteca se manejan las listas Stock de libros, Préstamos de libros y Cubículos, cada una con sus respectivos atributos.
Planteamiento delProblema
La Pontificia Universidad Católica de Valparaíso les ha pedido a los alumnos del curso de Técnicas de Programación 2012 de la escuela de Ingeniería Informática, que desarrollen un programa, basado en el lenguaje de programación LISP, para el total reemplazo del sistema de administración de la biblioteca, que actualmente se está usando.
Para la eficiente mantención de labiblioteca, es necesario que pueda administrar tanto la transacción de libros como el manejo de los cubículos. Para esto se deberá manejar 3 listas: Stock de libros, Préstamos de libros y Cubículos.
Estas listas deben contener los atributos que se señalan a continuación.
STOCK
ID
Categoría
Nombre
Autor(es)
Edición
Estado (0: disponible; 1: no disponible)
PRESTAMOS
RUT (quien retiró ellibro)
ID libro
Fecha de préstamo (dd mm aaaa)
Fecha de entrega (dd mm aaaa)
Estado (0: en curso; 1; finalizado)
CUBICULOS
Número
Estado (0: sin petición ni en uso; 1: en uso; 2: reservado)
Fecha
Clave (1 2, 3 4, 5 6, 7, 8, 9, 10 )
RUT1
RUT2
RUT3
Desarrollo
Para el desarrollo del problema se utilizaron las siguientes funciones que serán detallas a continuación:
En primerlugar hay que tomar en cuenta que al final del código se encuentra:
(progn
(format T" Bienvenido~%")
(format T"~%Ingrese fecha actual: ")
(format T"~%Dia: ")
(setf dia (read))
(format T"~%Mes: ")
(setf mes (read))
(format T"~%Año: ")
(setf año (read))
(setf fecha (list dia mes año))
(setf *prestamos* nil)
(setf *cubiculos* nil)
(setf *stock* nil)
Función menu
La funciónmenu es la función mayor que llama a los submenú ,esta función tiene la cualidad de ser recursiva siempre y cuando la opción ingresada no sea salir
1 Administracion de Libros:
Se despliega un menú con las opciones y se llama a la función correspondiente dependiendo de la opción ingresada por el usuario
1.1 Ingresar_libro
En esta función se agregan nuevos libros a la lista *stock*, se utiliza uncond para los 3 posibles casos.
En caso que la lista este vacía simplemente se crea la lista con el ejemplar creado con los datos pedidos al usuario
En caso que de que se cree un libro con perteneciente a una categoría le la lista. Se usa un dolist para poder ir separando las categorías, al momento de encontrar la categoría correspondiente y se agrega a la lista_aux que contiene la lista...
Regístrate para leer el documento completo.