Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Profesor Adolfo Di Mare
CI-1303
II Semestre 1999
[<=] [home] [<>] [\/] [=>]
CI-1303 Estructuras de Datos y Análisis de Algoritmos

Tarea #1 [solución]

Uso de listas parametrizables

      En esta tarea Usted desarrollará una aplicación sencilla en la que deberá utilizar las listas parametrizables descritas en el siguiente artículo:

Di Mare, Adolfo
C Parametrized Lists, Reporte Técnico ECCI-98-01, Escuela de Ciencias de la Computación e Informática, Universidad de Costa Rica, Abril, 1999.
      http://www.di-mare.com/adolfo/p/c-list.htm

      Su aplicación permitirá mantener una lista de tareas faltantes, en tres órdenes: cronológico, cronológico inverso, y por prioridad. La lista de tareas tiene tres datos principales:

Fecha
Indica el momento en que el usuario del programa introduce una nueva tarea. A mí me gusta usar el siguiente formato: "1999-09-10-set" (año-mes-día-mes).
Prioridad
Es un número entero que muestra la importancia relativa de la tarea. Debe ser suficientes que este valor esté en el rango [0..9].
Tarea
Es una hilera de texto, no muy larga, que describe la tarea. Por ejemplo: "Escribir el enunciado de la tarea programada tercera".

      Para implementar su programa, usted debe seguir los siguientes pasos:

  1. Creación de ListC.hpp, un archivo de encabezado C++ para clist.h, que es la interfaz en lenguaje C de la lista circular parametrizable descrita en el artículo "C Parametrized Lists".
  2. Definición de la clase C++ Tarea, que incluya los datos principales descritos antes, y que permita que sus instancias estén enlazadas a tres listas diferentes, una para cada uno de los criterios de ordenamiento para las tareas (cronológico, cronológico inverso, y por prioridad). Recuerde que, para lograr esto, debe incluir tres campos de enlace en la clase C++ Tarea.
  3. Implementación de su programa. Como lo importante es que Usted adquiera destreza en el uso de las listas, no se requiere que la interfaz del programa sea muy completa.

      Si quiere ver una versión de este programa, que por supuesto no usa listas, examine el archivo FALTA.bat que tiene la funcionalidad que se busca en esta tarea, pero que por supuesto no usa listas:

:: FALTA.bat ==> Edita archivo de lo que me FALTA
@echo off

if (%1)==() goto _edit
goto _sort

:_edit
edit         %TMP%\falta.txt
goto _out

:_sort
if (%1)==(f) sort /+1  <%TMP%\falta.txt
if (%1)==(F) sort /+1  <%TMP%\falta.txt

if (%1)==(p) sort /+17 <%TMP%\falta.txt
if (%1)==(P) sort /+17 <%TMP%\falta.txt

for %%w in (p P f F) DO if (%1)==(%%w) goto _out

sort /+17 <%TMP%\falta.txt | grep  -i %1
goto _out

:_out
:: FALTA.bat ==> Fin de archivo

      El programa FALTA.bat invoca al programa SORT.exe, que ordena archivos de hileras, y al programa GREP.exe, que extrae hileras de un archivo de texto de acuerdo a un patrón, llamado expresión regular. Uselo, pues tiene más funcionalidad que el programa que usted implementará.

      Para implementar su programa, simplemente lea la siguiente tarea que el usuario del programa quiera agregar, y enlácela al principio de la lista cronológica de tareas, al final de la lista cronológica inversa de tareas, y antes de la tarea que tengo una prioridad inmediatemante mayor, en la lista por prioridades. Note que, en la lista de prioridades, aparecerán primero las tareas cuya prioridad sea un número menor y, además, en esa misma lista, las tareas quedarán ordenadas en orden cronológico de entrada.

      Permítales al usuario de su programa tanto incluir como excluir tareas. También permítale cambiarle la prioridad a una tarea (trátelo como una exclusión seguida inmediatamente por una inclusión). La fecha que usted guardará en cada tarea será siempre la fecha de la inclusió (o de la exclusión inclusión).

      El reporte de investigación debe ser entregado en clase, impreso. Además, también debe enviar todo el material a los asistentes del curso por correo electrónico. Para esto, haga un archivo empacado .zip cuyo nombre sea su número de carnet. Incluya en ese archivo lo siguiente:

  1. Un documento en formato HTML que describa el trabajo que realizó. Incluya el nombre del compilador que usó.
  2. El código fuente de su programa.
  3. El código ejecutable de su programa.

      Después de la fecha de entrega del programa, puede usted instalar en su cuenta personal su solución (no instale antes su solución en Internet, pues en ese caso sería usted culpable de facilitar la copia de su trabajo, y en consecuencia se haría acreedor a la sanción respectiva).

      Las cuentas de computador en la ECCI se asignan de acuerdo al número de carnet. Por ejemplo, si su carnet es el número 95-28-09, para entregar su tarea usted debe crear el archivo 952809.zip para enviarlo por correo electrónico a los asistentes del curso. ños

      Luego haga en su cuenta personal un subdirectorio llamado public_html, que es bajo el que se instalan todas sus páginas Internet. Por ejemplo, si su solución está en el archivo HTML llamado "OLP/t3sol952809.htm", entonces usted debe instalar esa página en el archivo
      public_html/OLP/t3sol952809.htm
de su cuenta. Luego, para acceder esa página Internet, debe entrar a este sitio:
      http://anubis.ecci.ucr.ac.cr/~e952809/OLP/t3sol952809.htm

      Como todas las cuentas de estudiante son la letra "e" seguida del número de carnet, para el estudiante de carnet "952809" la cuenta es "e952809". Para indicarle al servidor Internet a cuál cuenta entrar se usa el caracter "~" (Alt-126), seguido del nombre de la cuenta: "~e952809".

[mailto:] Marilyn Bolaños y Mario Tenorio
Tiempo de entrega: 7 Días
Modalidad: Individual

Soluciones

[mailto:] Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 1999
Derechos de autor reservados © 1999
[home] <> [/\]