Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Profesor Adolfo Di Mare
CI-1201
II Semestre 2005
[<=] [home] [<>] [\/] [=>]
CI-1201 Programación II

Tarea #5 [solución]

Listas de listas de hileras

      El objetivo de esta tarea programada es que usted use las clases de la biblioteca STL de C++. Su trabajo consisten en diseñar e implementar un programa completo, junto con sus datos de prueba.

      Como programador máximo de la firma spamTico.com usted ha conseguido varios miles de archivos de texto que contienen, además de otras cosas, cientos de miles de direcciones de correo electrónico. Usted necesita escribir un programa para extraer todas esas direcciones, y decide implementarlo en C++.

      Explique cuáles hileras de un archivo de texto son direcciones de correo electrónico. Recuerde que es válido usar el guión "-", el caracter de subrayado "_" y también el punto ".". Lo que distingue a las direcciones de correo electrónico es la letra de arrobas "@". Recuerde que los archivos de entrada pueden contener cualesquiera caracteres ASCII válidos, para cuya codificación se usa el rango numérico [0..127], aunque su programa debe permitir manejar archivos con letras en el rango superior [128..255].

      Algunas direcciones válidas son las siguientes:

71572.341@compuserve.com
koenraad_lecot@ecci.ucr.ac.cr
atorres@ic-itcr.ac.cr
e913570@32am.wap.ucr
mike.patrick@tecapro.com
francisco-jose@mata.names

      En su implementación, lea cada archivo renglón por renglón. Utilice una lista STL, de tipo list<>, para almacenar cada una de las direcciones que encuentre. Además, junto a cada dirección almancene una lista con todos los renglones en los que esa dirección aparece, de manera que sea posible producir un listado que muestre cada dirección junto con los renglones que muestran el contexto para esa dirección. Una parte de ese listado podría ser la siguiente:

koenraad_lecot@ecci.ucr.ac.cr
- Hola, te envío de nuevo mi dirección koenraad_lecot@ecci.ucr.ac.cr porque ya la habías pedido
- No hemos sabido si el señor Lecot, koenraad_lecot@ecci.ucr.ac.cr, ha comezado su
- "Koenraad Lecot" <koenraad_lecot@ecci.ucr.ac.cr>
- )(/&%%&%$·%$&%(/=)/(/%/&...- koenraad_lecot@ecci.ucr.ac.cr ----99(()/(/&/&%/
atorres@ic-itcr.ac.cr
- atorres@ic-itcr.ac.cr
- No es posiblel encontrar al usuario "atorres@ic-itcr.ac.cr" en la base de datos
- atorres@ic-itcr.ac.cr
- atorres@ic-itcr.ac.cr

      No hace falta que la lista de renglones de contexto aparezca ordenada, o sin duplicados. Haga la documentación de su programa, e incluya un diagrama en que explique cómo usa los objetos que requiere para hacer el programa.

Tiempo de entrega: 10 días
Entregue su documentación en la primera fecha, y luego entregue el programa completo en la segunda fecha.
Primera etapa: 7 días
Modalidad: En parejas

Soluciones

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