Universidad de Costa Rica
|
|
Este examen tiene 2 partes. La primera consiste en hacer un programa en el lenguaje C++ para lo que tiene 24 horas para entregar su programa completo. Use Visual Studio o Borland C++ para programar su solución.
Luego de que entregue la primera parte del examen, puede hacer la segunda, para la que tiene un total de 3 horas consecutivas.
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 un diccionario STL, de tipo map<>, para almacenar cada una de las direcciones que encuentre. Además, asocie a cada dirección 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.
Resuelva 3 de las 4 preguntas del siguiente examen, disponible en
Internet:
http://www.di-mare.com/adolfo/cursos/2000-2/p2-ea-f.htm
Duración: dos horas. Lea bien el examen antes de hacerlo. El examen es a libro abierto. Cuenta la documentación. Cuenta la redacción y la ortografía. Puede hacer el examen con lápiz. Resuelva tres de las cuatro preguntas. ¡No haga más de lo que se le pide!
Adolfo Di Mare <adolfo@di-mare.com>.
|