how do i get a output from this program #include <iostream> #include <string> #i
ID: 3536800 • Letter: H
Question
how do i get a output from this program
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Transaction
{
public:
Transaction();
void read();
int get_day();
double get_amount();
void print();
private:
int day;
double amount;
string description;
};
Transaction::Transaction()
{
amount = 0;
}
void Transaction::read()
{
cin >> day >> amount;
getline(cin, description);
}
int Transaction::get_day()
{
return day;
}
double Transaction::get_amount()
{
return amount;
}
void Transaction::print()
{
cout << day << " " << amount << " " << description << " ";
}
const int MAX_DAY = 30;
class Statement
{
public:
Statement();
void read();
void compute_balances();
void print();
double get_average_daily_balance();
double get_minimum_daily_balance();
private:
vector<Transaction> transactions;
vector<double> daily_balances;
};
Statement::Statement()
{
}
void Statement::read()
{
cout << "Enter transactions in the format "
<< "date amount description: ";
bool more = true;
while (more)
{
Transaction t;
t.read();
if (cin.fail())
more = false;
else
transactions.push_back(t);
}
compute_balances();
}
void Statement::compute_balances()
{
int day;
int i = 0;
double balance = 0;
for (day = 1; day <= MAX_DAY; day++)
{
while (i < transactions.size()
&& transactions[i].get_day() == day)
{
balance = balance + transactions[i].get_amount();
i++;
}
daily_balances.push_back(balance);
}
}
double Statement::get_average_daily_balance()
{
int day;
double balance_sum = 0;
for (day = 0; day < daily_balances.size(); day++)
balance_sum = balance_sum + daily_balances[day];
return balance_sum / MAX_DAY;
}
double Statement::get_minimum_daily_balance()
{
int day;
double minimum_balance = daily_balances[0];
for (day = 1; day < daily_balances.size(); day++)
if (daily_balances[day] < minimum_balance)
minimum_balance = daily_balances[day];
return minimum_balance;
}
void Statement::print()
{
int day;
int i = 0;
double balance = 0;
for (day = 1; day <= MAX_DAY; day++)
{
cout << "Day: " << day << " Balance: "
<< daily_balances[i - 1] << " ";
while (i < transactions.size()
&& transactions[i].get_day() == day)
{
transactions[i].print();
i++;
}
}
const double INTEREST = 0.005;
cout << "Interest on minimum daily balance: "
<< get_minimum_daily_balance() * INTEREST << " ";
cout << "Interest on average daily balance: "
<< get_average_daily_balance() * INTEREST << " ";
}
int main()
{
Statement stat;
stat.read();
stat.print();
return 0;
}
Explanation / Answer
to illustrate further.
this will be the input for 30 days
first field is day
second the amount and
last description field
input
1 12.00 firstday
2 12.00 secondday
3 14.00 description
4 15.00 description
5 10.00 description
6 12.00 description
7 12.00 description
8 12.00 description
9 12.00 description
10 12.00 description
11 12.00 description
12 20.00 description
13 12.00 description
14 12.00 description
15 12.00 description
16 12.00 description
17 12.00 description
18 12.00 description
19 12.00 description
20 16.00 description
21 12.00 description
22 12.00 description
23 12.00 description
24 34.00 description
25 12.00 description
26 12.00 description
27 21.00 description
28 12.00 description
29 12.00 description
30 12.00 description
output
Day: 1 Balance: 5.60207e-312
1 12 firstday
Day: 2 Balance: 12
2 12 secondday
Day: 3 Balance: 24
3 14 description
Day: 4 Balance: 38
4 15 description
Day: 5 Balance: 53
5 10 description
Day: 6 Balance: 63
6 12 description
Day: 7 Balance: 75
7 12 description
Day: 8 Balance: 87
8 12 description
Day: 9 Balance: 99
9 12 description
Day: 10 Balance: 111
10 12 description
Day: 11 Balance: 123
11 12 description
Day: 12 Balance: 135
12 20 description
Day: 13 Balance: 155
13 12 description
Day: 14 Balance: 167
14 12 description
Day: 15 Balance: 179
15 12 description
Day: 16 Balance: 191
16 12 description
Day: 17 Balance: 203
17 12 description
Day: 18 Balance: 215
18 12 description
Day: 19 Balance: 227
19 12 description
Day: 20 Balance: 239
20 16 description
Day: 21 Balance: 255
21 12 description
Day: 22 Balance: 267
22 12 description
Day: 23 Balance: 279
23 12 description
Day: 24 Balance: 291
24 34 description
Day: 25 Balance: 325
25 12 description
Day: 26 Balance: 337
26 12 description
Day: 27 Balance: 349
27 21 description
Day: 28 Balance: 370
28 12 description
Day: 29 Balance: 382
29 12 description
Day: 30 Balance: 394
30 12 description
Interest on minimum daily balance: 0.06
Interest on average daily balance: 1.0085
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.