因此,我正在创建一个程序,该程序将实现代表银行,客户和银行帐户的各种类。银行对象存储客户对象的集合以及帐户对象的集合。每个客户将拥有属于自己的帐户的独立集合。
下面是该程序应输出的图片-如果用户尝试输入负数,或者如果他们尝试提取比其帐户中更多的资金,则会显示一条错误消息,指出该帐号不能被此金额借记或贷记。我的程序正确地输出了该部分,但是,当我未找到如图所示的帐号时,我正在努力寻找如何输出错误消息。
因此,例如,主要我有两个功能:
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=
Customer.cc:https://pastebin.com/C40q3ehp
CustArray.cc:https://pastebin.com/6QYFDeHD
最佳答案
您可以通过更改credit()和debit()函数轻松地做到这一点,您所需要做的就是检查控件是否退出for循环(back.cc for(int i = 0; i < numberOfBankAccounts; ++i)
中的第51行),是否不具有所需的值。
您只需在开头创建/初始化 bool(boolean) 值即可完成此操作,并在找到匹配的银行帐户时对其进行更改。
像这样的东西:
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所说的那样。
关于c++ - C++-如果找不到帐号,则显示错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64149561/