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

#include <iostream> #include <fstream> #include <string> #include <iomanip> // F

ID: 3559821 • Letter: #

Question

#include <iostream>

#include <fstream>

#include <string>

#include <iomanip>

// Function prototypes

//[BEGIN MAIN]

int main()

{

std::string inputFileName;

std::string outputFileName;

double interestRate;

std::cout << "Enter an input filename: ";

std::cin >> inputFileName;

std::cout << "Enter an output filename: ";

std::cin >> outputFileName;

std::cout << "Enter an interest rate (%): ";

std::cin >> interestRate;

std::cout << std::endl;

std::ifstream ifile = GetInputFile(inputFileName);

std::ofstream ofile = GetOutputFile(outputFileName);

std::cout << "Current account status:" << std::endl;

PrintFileContents(ifile);

ProcessAccounts(ifile, ofile, interestRate);

ifile.close();

ofile.close();

std::cout << std::endl;

std::cout << "New account status:" << std::endl;

ifile = GetInputFile(outputFileName);

PrintFileContents(ifile);

ifile.close();

std::cout << "Press ENTER";

std::cin.ignore();

std::cin.get();

return 0;

}

//[END MAIN]

void ProcessAccounts(std::ifstream &ifile, std::ofstream &ofile, double rate)

{

// Everyday the bank checks the status of the accounts and processes them

// If the customer has:

// 1) a positive savings balance, pay them interest

// 2) a negative savings balance, transfer it to credit (credit is positive)

// 3) a credit balance, charge them interest

// Note: Unlike normal banks, the interest rate for savings and credit is the same

// Read the info from the input file

// Put the new info into the output file

// The format for the input file and output file should be

// [NAME] [SAVINGS BALANCE] [CREDIT BALANCE]

// There is a single space between each value and a newline at the end

// Put your code here

}

void PrintFileContents(std::ifstream &str)

{

// Print the contents of the file

// First, print the file headers

// Then, print each line.

// Make sure the text is properly formatted

// Remember the functions available in iomanip?

// EXAMPLE:

// Name Savings Credit

// Bob $23.56 $0.00

// Joe $43.52 $0.00

// Sally -$1.58 $0.00

// Put your code here

}

std::ifstream GetInputFile(std::string filename)

{

// Open the file named filename

// Make sure it exists

// Return it as an input file stream

  

// Put your code here

}

std::ofstream GetOutputFile(std::string filename)

{

// Open the file named filename

// Make sure it exists

// Return it as an output file stream

  

// Put your code here

}

void SetInputStreamPos(std::ifstream &str, int pos)

{

// Set the 'g'et cursor to the desired byte in the stream

// Use the beginning of the file as the reference point

  

// Put your code here

}

void SetOutputStreamPos(std::ofstream &str, int pos)

{

// Set the 'p'ut cursor to the desired byte in the stream

// Use the beginning of the file as the reference point

  

// Put your code here

}

Explanation / Answer

prog.cpp: In function