我学校项目的另一种方式

时间:2017-11-01 04:00:02

标签: c++

美好的一天!我正在建立一个全球货币兑换商。

const string currency_name[MAX_CURRENCY] = 
{
    "Euro",
    "Pound",
    "Dollar",
};

const double exchange_rate[MAX_CURRENCY][MAX_CURRENCY] = 
{
    { 1, 0.795833, 1.33943 },   // Euro->Euro, Euro->pound, euro->dollar
    { 1.25657, 1, 1.68296 },    // Pound->Euro, Pound->Pound, Pound->Dollar
                                // will add 15 by 15 global currency exchange
};

我正在使用这个。
有没有比这更简单的解决方案??

2 个答案:

答案 0 :(得分:0)

将货币汇率定义为数据类型是一个好主意。而且我没有看到其他数据类型可能比简单矩阵更适合。所以,你的解决方案没问题。

答案 1 :(得分:0)

选择一种货币作为"参考货币"。
然后,无论您拥有多少种货币,您都只需要与此进行转换 您也可以将自己限制在一个方向,因为很容易找到反向。

示例:

enum Currency
{
    Euro,
    Pound,
    Dollar,
    ...
};

// The conversion rate into Euro.
const float euroRates[] = { 1.0, 1.25657, ... };

float into_euro(float amount, Currency c) { return amount * euroRates[c]; }
float from_euro(float amount, Currency c) { return amount / euroRates[c]; }

float convert(float amount, Currency from, Currency to)
{
    return from_euro(into_euro(amount, from), to);
}