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

If you put this out c++ shell you will be able to see the problems. Here is the

ID: 3560037 • Letter: I

Question

 If you put this out c++ shell you will be able to see the problems. Here is the link http://cpp.sh/    Can anyone help? #include <iostream> #include <fstream> #include <string> #include <iomanip>  // Function prototypes         void PrintFileContents(std::ifstream& ifile);         void ProcessAccounts(std::ifstream& ifile, std::ofstream& ofile, double);         void SetInputStreamPos(std::ifstream &str, int pos);         void SetOutputStreamPos(std::ofstream &str, int pos);         std::ifstream GetInputFile(std::string filename);     //std::ofstream GetOutputFile(std::string filename);  //[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         std::string name;         double sav_balance;         double credit_balance;         ifile >> name >> sav_balance >> credit_balance;          while(!ifile.eof())         {                 //std::cout << name << " " << sav_balance << " " << credit_balance << std::endl;                 double sav_final=0;                 double credit_final=0;                  if(sav_balance > 0) // 1) a positive savings balance, pay them interest                 sav_final = sav_balance + sav_balance*rate;                  else if(sav_balance < 0) // 2) a negative savings balance, transfer it to credit (credit is positive)                 credit_final = credit_balance - sav_balance;                  if(credit_balance > 0) // 3) a credit balance, charge them interest                 credit_final = credit_final + credit_balance*rate;                 ofile << name << " " << sav_final << " " << credit_final << std::endl;                 //std::cout << name << " " << sav_final << " " << credit_final << std::endl;                 ifile >> name >> sav_balance >> credit_balance;         } }  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::string name;         double sav_balance;         double credit_balance;         std::cout <<"Name	Savings	Credit" << std::endl;         str >> name >> sav_balance >> credit_balance;          while(!str.eof())         {                 std::cout << std::setprecision(2) << std::fixed << name << "	$" << sav_balance <<"	$"<< credit_balance << std::endl;                 str >> name >> sav_balance >> credit_balance;         } }  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::ifstream ifile;          ifile.open(filename);          if(!ifile.is_open())         {                 ifile.close();         }         else;         {                 std::cout <<"unable to open file so Exiting .." << std::endl;         }         return ifile; }  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          std::ofstream ofile;          ofile.open(filename);          if(!ofile.is_open())         {                 ofile.close();         }         else         {                 std::cout <<"unable to open file so Exiting .." << std::endl;         }         return ofile; }  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         str.clear();         str.seekg(pos, std::ios::beg); }  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         str.clear();         str.seekp(pos, std::ios::beg); } 

Explanation / Answer

#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;

// Function prototypes
void PrintFileContents(std::ifstream& ifile);
void ProcessAccounts(std::ifstream& ifile, std::ofstream& ofile, double);
void SetInputStreamPos(std::ifstream &str, int pos);
void SetOutputStreamPos(std::ofstream &str, int pos);
std::ifstream& GetInputFile(std::string filename);
std::ofstream& GetOutputFile(std::string filename);

//[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;
std::ifstream &ifile1 = GetInputFile(outputFileName);

PrintFileContents(ifile1);

ifile1.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
std::string name;
double sav_balance;
double credit_balance;
ifile >> name >> sav_balance >> credit_balance;

while(!ifile.eof())
{
//std::cout << name << " " << sav_balance << " " << credit_balance << std::endl;
double sav_final=0;
double credit_final=0;

if(sav_balance > 0) // 1) a positive savings balance, pay them interest
sav_final = sav_balance + sav_balance*rate;

else if(sav_balance < 0) // 2) a negative savings balance, transfer it to credit (credit is positive)
credit_final = credit_balance - sav_balance;

if(credit_balance > 0) // 3) a credit balance, charge them interest
credit_final = credit_final + credit_balance*rate;
ofile << name << " " << sav_final << " " << credit_final << std::endl;
//std::cout << name << " " << sav_final << " " << credit_final << std::endl;
ifile >> name >> sav_balance >> credit_balance;
}
}

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::string name;
double sav_balance;
double credit_balance;
std::cout <<"Name Savings Credit" << std::endl;
str >> name >> sav_balance >> credit_balance;

while(!str.eof())
{
std::cout << std::setprecision(2) << std::fixed << name << " $" << sav_balance <<" $"<< credit_balance << std::endl;
str >> name >> sav_balance >> credit_balance;
}
}

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
static ifstream ifile;

ifile.open(filename);

if(!ifile.is_open())
{
ifile.close();
}
else;
{
std::cout <<"unable to open file so Exiting .." << std::endl;
}
return ifile;
}

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

static ofstream ofile;

ofile.open(filename);

if(!ofile.is_open())
{
ofile.close();
}
else
{
std::cout <<"unable to open file so Exiting .." << std::endl;
}
return ofile;
}

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
str.clear();
str.seekg(pos, std::ios::beg);
}

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
str.clear();
str.seekp(pos, std::ios::beg);
}

/*Bolded Underlined are corrected!! NOw Enjoy the code :) :) keep rating me*/

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote