Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ENUNCIADO
Realizar el tipo abstracto de datos PrecioOro para guardar el precio de la onza de oro en 5 monedas
diferentes (Dólar, Euro, Yen, Libra, Yuan). La operación NuevoPrecio guarda el nuevo precio en una
determinada moneda. La operación CambioOro entre dos monedas devuelve los cambios unitarios de cada
moneda en función de la otra tomando como base el precio del oro. La operación ListarPrecios escribe en
pantalla la tabla de precios de la onza de oro en cada moneda.
SOLUCIÓN PROPUESTA
Nota: esta solución se basa en el uso de vectores. Resulta un poco más corta en líneas de código, pero más
abstracta y difícil de entender que si en vez de un vector de monedas y precios trabajamos con cinco
monedas y con cinco precios.
Archivo precio_oro.h
/*INTERFAZ DEL TAD*/
#pragma once
/* http://www.aprenderaprogramar.com/foros/index.php?topic=401.0*/
const int numeroMonedas = 5;
};
TipoVectorMoneda moneda;
void NuevoPrecio (TipoNombreMoneda nombre_moneda, float precionuevo);
void CambioOro (TipoNombreMoneda nombre_moneda1, TipoNombreMoneda nombre_moneda2);
void ListarPrecios();
};
Archivo precio_oro.cpp
/*IMPLEMENTACIÓN DEL TAD*/
#include <stdio.h>
#include <stdlib.h>
#include "precio_oro.h"
/* http://www.aprenderaprogramar.com/foros/index.php?topic=401.0*/
moneda[nombre_moneda].precioOroMoneda = precionuevo;
/*Unidades de moneda 2 que nos dan por cada unidad de moneda 1*/
cambioMoneda1 = moneda[nombre_moneda2].precioOroMoneda /
moneda[nombre_moneda1].precioOroMoneda;
/*Unidades de moneda 1 que nos dan por cada unidad de moneda 2*/
cambioMoneda2 = moneda[nombre_moneda1].precioOroMoneda /
moneda[nombre_moneda2].precioOroMoneda;
void TipoVectorOro::ListarPrecios () {
int main () {
TipoVectorOro oro;
oro.moneda[1].nombreMoneda = dolares;
oro.moneda[2].nombreMoneda = euros;
oro.moneda[3].nombreMoneda = yenes;
oro.moneda[4].nombreMoneda = libras;
oro.moneda[5].nombreMoneda = yuanes;
oro.ListarPrecios();
oro.NuevoPrecio(dolares, 13.85);
oro.NuevoPrecio(yuanes, 23.66);
oro.ListarPrecios();
oro.CambioOro(dolares, yuanes);
printf ("El cambio de dolares respecto a yuanes es de %.2f yuanes por dolar\n", cambioMoneda1);
printf ("El cambio de yuanes respecto a dolares es de %.2f dolares por yuan\n", cambioMoneda2);
oro.CambioOro(dolares, libras);
printf ("El cambio de dolares respecto a libras es de %.2f libras por dolar\n", cambioMoneda1);
printf ("El cambio de yuanes respecto a libras es de %.2f dolares por libra\n", cambioMoneda2);
Ejecuta el programa y comprueba que responde como debiera. Si tienes algún problema puedes dejarme
una consulta en los foros (aprenderaprogramar.com/foros)