Я столкнулся с некоторыми проблемами в своей книге по программированию, выполняя упражнение, связанное с BankAccounts. Вопрос задает:
Создайте функцию main (), которая объявляет массив из 10 объектов BankAccount. После
Когда введен первый объект BankAccount, спросите пользователя, хочет ли он продолжить. Запрашивать у пользователя значения BankAccount, пока пользователь не захочет выйти или ввести 10 объектов BankAccount, в зависимости от того, что произойдет раньше. Для каждого введенного BankAccount отобразите данные BankAccount. Затем предложите пользователю ввести термин со значением от 1 до 40 включительно. Продолжайте запрашивать пользователя, пока не будет введено правильное значение. Затем передайте массив объектов BankAccount, количество действительных объектов в массиве и требуемый термин в функцию, которая вычисляет и отображает значения каждого из BankAccounts после заданного числа лет в стандарте. процентная ставка.
Мне нужно использовать 3 открытые функции для выполнения этой задачи. Я только начинаю сталкиваться с проблемами, когда пытаюсь вычислить Interest (). Если я попытаюсь передать член, сосчитать в функцию и установить его в 2 для циклов, я получу только цифры и балансы для одного объекта. Я предполагаю, что я спрашиваю: как мне заставить программу вызывать computeInterest и запускать для каждого объекта BankAccount?
В данный момент мой код настроен так, что он будет отлично компилироваться и работать, однако, вопрос требует, чтобы термин и число были отправлены в функцию, пока я только отправляю термин.
Я не уверен, отправляю ли я массив объектов в функцию? Что может быть причиной проблемы. Это мучает мой мозг уже несколько дней : (. Любая помощь / указатели очень ценятся!
#include<iostream>
#include<string>
using namespace std;
// Declaration Section
class BankAccount
{
private:
int accNum;
double accBal;
const static double intRate;
public:
void enterAccountData(int, double);
void computeInterest(int);
void displayAccount();
};
// Implementation Section
const double BankAccount::intRate = 0.03;
void BankAccount::enterAccountData(int num, double bal)
{
const int MIN_ACC = 1000, MAX_ACC = 9999, MIN_BAL = 0,
MAX_BAL = 100000;
cout << "Enter account number: ";
cin >> num;
while (num < MIN_ACC || num > MAX_ACC)
{
cout << "ERROR: Account number must be between " << MIN_ACC <<
" - " << MAX_ACC << ".\n" << "Enter account number: ";
cin >> num;
}
cout << "Enter account balance: $";
cin >> bal;
while (bal < MIN_BAL || bal > MAX_BAL)
{
cout << "ERROR: Account balance must be positive and less than $" <<
MAX_BAL << ".\n" << "Enter account balance: $";
cin >> bal;
}
accNum = num;
accBal = bal;
}
void BankAccount::computeInterest(int YR)
{
int x;
double interest;
for (x = 0; x < YR; ++x)
{
interest = accBal * intRate;
accBal = accBal + interest;
cout << "Account# " << accNum <<
", Balance: $" << accBal << ", Interest: " <<
intRate << endl;
}
cout << endl;
}
void BankAccount::displayAccount()
{
cout<<"Account: " << accNum <<", Balance: $" << accBal <<
", Interest: " << intRate << endl << endl;
}
int main()
{
const int END = -999, MAX_ACCOUNTS = 10, CONTINUE = 1, MIN_TERM = 1,
MAX_TERM = 40;
int i, x, count = 0, num = 0, term = 0;
double bal = 0;
BankAccount accounts[MAX_ACCOUNTS];
do
{
count++;
accounts[count - 1].enterAccountData(num, bal);
accounts[count - 1].displayAccount();
cout << "Enter " << CONTINUE << " to proceed, or " << END << " to stop: ";
cin >> i;
if (i == END || count == MAX_ACCOUNTS)
{
cout << "Enter the term of the accounts (" << MIN_TERM <<
"-" << MAX_TERM << "): ";
cin >> term;
while (term < MIN_TERM || term > MAX_TERM)
{
cout << "ERROR: Term must be between " << MIN_TERM <<
" - " << MAX_TERM << " inclusive.\n" <<
"Enter term of the accounts (" << MIN_TERM <<
"-" << MAX_TERM << "): ";
cin >> term;
}
for (x = 0; x < count; ++x)
accounts[x].computeInterest(term);
}
} while (i != END && count != MAX_ACCOUNTS);
}