Programming Project I

Summer Session I, 2000 – Due Wednesday, May 31

 

Project Objectives:

In this project you will learn how to operate the C++ programming environment. You will be given the source code to a program that you will need to type, save, compile, and link, so that it can be executed. The source code solves the problem described in the specification. When you type in the code as provided, do not make any modifications. You will also be provided with a sample input and output file to be used to test your program. REMEMBER, the input and output files from the Automatic Grader will be similar, not identical.

You will not be familiar with most of the code presented. Don't worry! We will cover them later during class. For now, try to understand the code, but concentrate mostly on getting it to compile and run.
 
 

What to Turn in and How:

Submit your code to the Enhanced Automated Grading System (EAGS). Follow the instructions for submitting to the EAGS carefully. REMEMBER, don't change anything, because the EAGS will match your output with the expected output.
 
 

Program Specification:

This program will read a series of floating point values from a single input file. These amounts represent dollar and cents change amounts that need to be returned to customers after a purchase. For each amount, the program should calculate the maximum number of quarters that can be given as change, followed by the amount of dimes (taking into account the amount of quarters returned), nickels (taking into account the quarters and dimes) and pennies (taking into account the quarters, dimes and nickels). For example, $2.34 of change would result in 9 quarters, 0 dimes, 1 nickel and 4 pennies being returned to a customer. The program will also print the total value of the change given back to customers. That is, if the input file contains $2.34, $0.25 and $5.00, the total change returned to the customer is $7.59.
 
 
 
 

Source Code:

// Id (Your info)

// Title: Changes

// Programmer Name: Pete dePasquale

//

// Honor Code

// On my honor:

//

// - I have not discussed the code in my program with anyone other than my instructor

// and the GTA assigned for this course.

//

// - I have not obtained code from another student.

//

// Purpose of the program

//

// This program is an introduction to C++ environment. It reads floating point values from

// an input file representing the amount of change to be returned to a customer after a

// sale. For each entry in the input file, change is to be given in quarters, dimes, nickels

// and pennies (maximizing the number of each coin given as change to the customer (for

// each input line).

#include <fstream.h> // Needed for file stream functionality

#include <iomanip.h> // Needed for floating point manipulation (output)

void main( ) {

// Variable Declaration section

float totalAmount == 0.0f; // Will hold the total amount of change read

float amount == 0.0f; // will hold amount of change to be given

ifstream inputFileStream; // Input File (input.dat)

ofstream outputFileStream; // Output File (output.dat)

// Open both the input and output file

inputFileStream.open('input.dat');

outputFileStream.open('output.dat');

// Activate the floating point manipulators

outputFileStream.setf(ios::fixed, ios::floatfield);

outputFileStream.setf(ios::showpoint);

// Set the precision of all float point numbers that are printed out

outputFileStream << setprecision (2);

// Write the first line of output to the output file

outputFileStream << "CS1044 - Project I" << endl;

// Write the program author's name

outputFileStream << "Program submitted by: Ryan Richardson" << endl;

// Read a floating point amount from first input line

inputFileStream >> amount;

// While the condition is true (there is more file)

// do the statements in between braces

while (inputFileStream) {

// Update the total amount of change read from input file

totalAmount = totalAmount + amount;

// Print a separator to the output file

outputFileStream << "=====================================================" << endl;

// Print the amount of change we need to return to the customer

outputFileStream << "Amount of change: $" << amount << endl;

// Reset the amount to be in term of cents, not dollar

amount = amount * 100;

// Print the number of quarters given as change

outputFileStream << " Number of quarters: " << (int) amount / 25 << endl;

// Update the amount to reflect having given X quarters to the customer

amount = amount - ((int) (amount / 25) * 25 );

// Print the number of dimes given as change

outputFileStream << " Number of dimes: " << (int) amount / 10 << endl;

// Update the amount to reflect having given X dimes to the customer

amount = amount - ((int) (amount / 10) * 10 );

// Print the amount of nickels given as change

outputFileStream << " Number of nickels: " << (int) amount / 5 << endl;

// Update the amount to reflect having given X nickels to the customer

amount = amount - ((int) (amount / 5) * 5 );

// Print the number of pennies given as change

outputFileStream << " Number of pennies: " (int) amount << endl;

// Read the next amount from the input file

inputFileStream >> amount;

}

// Print a separator to the output file

outputFileStream << "=====================================================" << endl;

// Print the total amount of the change to the output file

outputFileStream << "The total amount of change was: $" << totalAmount << endl;

// Close the files

inputFileStream.close( );

outputFileStream.close( );

}

Input file specifications:

The input file (input.dat) should be located in the same directory as the running executable. The input file will contain up to 50 lines of floating point numbers, one per line. Each number represents the change that needs to be given to the customer after a purchase. Each amount is presented with two decimal values of precision and is not preceded by a dollar sign. There are no blank lines in the input file. Each number given is positive and is greater than 0.00.

Output file specifications:

The output file (output.dat) should be located in the same directory as the running executable. The output file will consist of the following lines:

 

Good luck and have fun!!