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

Tarea #5 [solución]

Decodificación del "ERAV"

      Si su programa recibe los datos de esta tabla de arriba, cuyos valores están el la hoja de cáculo "ERAV.xls", producirá un listado que contenga los valores de los datos apropiadamente decodificados.

      Su trabajo consiste en contriuir 2 diccionarios, llamados "WORD" y "STRING" en donde esté almacenada la codificación de los valores que aparece en las columnas "ATTRIB" y "VAL" del "ERAV".

<word ID_WORD="1111" >
   <descr LANG="es" DESCR="automotor" />
</word>
<word ID_WORD="1234" >
   <descr LANG="en" DESCR="number doors" />
   <descr LANG="es" DESCR="cantidad puertas" />
</word>
<string  ID_STRING="7700001" >
   <descr LANG="**" DESCR="hyundai" />
</string>
<string  ID_STRING="7700022" >
   <descr LANG="es" DESCR="200 Sur del Palo de Guayaba" />
   <descr LANG="en" DESCR="200 South of the Guayaba tree" />
</string>

      El documento XML que se muestra aquí es un ejemplo de una tabla de códigos para decodificar el "ERAV". Por ejemplo, el valor "0001234" que aparece en la hoja de cálculo en el renglón 4 se decodificará como la hilera "number doors" si se usa el lenguaje inglés "en", pero en español "es" el valor obtenido será "cantidad puertas".

      Utilice un diccionario STL para almacenar la tabla de codificación. Use como llave de su estructura std::map<> un número entero, tomado del valor "ID_WORD" o "ID_STRING" del documento XML, y asóciele la lista de traducciones, que estará almacenado en una lista de parejas STL de tipo std::string:

      La estructura de los 2 diccionarios "WORD" y "STRING" es exactamente la misma, pues ambos son instancias de la misma clase, que se usan para una columna diferente de la tabla "ERAV": "ATTRIB" y "VAL" en respectivamente. Los métodos principales de su clase diccionario son los siguientes:

      Implemente un programa que tome los valores del ERAV y produzca un listado en donde no aparezca el código sino la hilera que corresponde al código. Su programa debe recibir como parámetro en la línea de comandos el idioma para la decodificación: { "es" , "en" , "it" , ... }. Tome en cuenta que el valor "**" funciona como un comodín que se usa para todos los lenguajes a menos que exista ya un valor para un lenguaje específico.

      Entregue su tarea por correo electrónico, como lo hizo anteriormente.

[mailto:] Entrega de Tareas

Tiempo de entrega: 7 días
Modalidad: En parejas

Soluciones

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