【问题标题】:C++ - print error message if account number not foundC ++ - 如果找不到帐号,则打印错误消息
【发布时间】:2021-01-16 19:59:29
【问题描述】:

所以我正在创建一个程序来实现代表银行、其客户和银行账户的各种类。 Bank 对象存储 Customer 对象的集合以及 Account 对象的集合。每个客户都将拥有属于他们自己的单独帐户集合。

下面是程序应该输出的图片 - 如果用户尝试输入负数,或者如果他们尝试提取的资金多于他们帐户中的资金,则会打印出一条错误消息,说明此金额不能借记或贷记帐号。我的程序正确输出了这部分,但是我正在努力弄清楚如何在找不到如图所示的帐号时输出错误消息。

例如,我主要有两个功能:

void initBank(Bank& b){
  b.addCust(new Customer(1010, "Toby"));
  b.addAcct(1010, new Account(200130, 400.4f));
}
void transactions(Bank& b)
{
  b.debit(200130, 20.00f);
  b.debit(200174, 85.00f);
}

虽然 200130 与 Toby 的帐户匹配,但数字 200174 与任何人的帐户都不匹配,因此它会打印出错误“200174 无法找到”。我正在努力实现这一目标,因为我不太确定如何检查带有借记/贷记金额的帐号是否与现有客户的任何帐号不匹配。我将不胜感激任何正确方向的帮助或提示。

Account.cc 中的借记和贷记函数是打印这些消息的位置,而 Bank.cc 也调用这些函数。

如果人们可以避免发布大量我的代码,并且只在答案部分发布必要的行,我将不胜感激,因为我仍在从事这个项目并且正在等待直到我真正完成它来发布它:)

Bank.cc:https://zerobin.net/?c39a2d26c993a4f3#GuMG6bVh53CogRqqR8of9y5YVosGIroURBrCUQFEkI8=

客户.cc:https://pastebin.com/C40q3ehp

CustArray.cc:https://pastebin.com/6QYFDeHD

【问题讨论】:

  • 您好像在打印错误,问题出在哪里?
  • 问题是我只打印我在图像中绘制的红线中的内容。我想打印“找不到帐号”消息,但我不太确定如何打印。该图像是我的输出应该是什么样子,但现在它只打印我标记的 4 行。

标签: c++ arrays object pointers


【解决方案1】:

您可以通过更改 credit() 和 debit() 函数轻松地做到这一点,您只需检查控件是否超出了您的 for 循环(back.cc for(int i = 0; i < numberOfBankAccounts; ++i) 中的第 51 行)或是否符合要求价值。 您只需在开始时创建/初始化一个布尔值,然后在找到匹配的银行账户时更改它即可。

类似这样的:-

bool flag = false;
for(int i = 0; i < numberOfBankAccounts; ++i){
        if(accountsBank[i]->getNumber() == acctNum){
            flag = true;
            accountsBank[i]->debit(amount);
            break;
        }
if(!flag){
    // if the control reaches here this means the account number does not exist thus display an error message
}

您也可以像@Tanveer Badar 所说的那样通过返回错误代码来做到这一点。

【讨论】:

    【解决方案2】:

    你需要一些东西,你可能已经在你的程序中,但没有在问题中体现出来。

    1. 您必须在某处拥有一组帐户,并按帐户 ID/键进行索引。把它想象成std::map&lt;int, Account&gt; accounts
    2. 创建新帐户时,您必须生成一个新的唯一 ID,并将其添加到地图和帐户中。
    3. 基于以上两点,您的credit()debit() 函数或调用它们的函数必须获取每个帐户的ID 和accounts 映射并检查它是否存在,然后再执行其他操作。李>
    4. 如果未找到帐户,则由您决定如何处理错误报告。也许您可以返回错误代码、抛出异常或终止程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多