Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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