Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // CS215
- // change.cpp
- // Graham Matthews
- #include <iostream>
- #include <fstream> // ifstream, ofstream
- #include <cstdlib> // exit()
- #include <string>
- #include <iomanip>
- /* PROBLEM STATEMENT
- Write a program that will read a series of positive integers each
- representing a number of cents from a file. For each integer, the program
- will compute the maximum number of dollars, quarters, dimes, and pennies
- that would be needed to give out the amount of change. But nickels are boring
- so they don't count. The results are to be output to a file in a tabular
- format as shown below with each field having a width of 10.
- Function: compute_change
- Analysis
- Objects Type Movement Name
- ------------------------------------------------------------------
- calc_number int received number
- calc_dollars int passed back dollars
- calc_quarters int passed back quarters
- calc_dimes int passed back dimes
- calc_pennies int passed back pennies
- */
- // No returned objects, so void function
- void compute_change (int calc_number,
- int & calc_dollars,
- int & calc_quarters,
- int & calc_dimes,
- int & calc_pennies);
- int main (int args, char * argv[])
- {
- using namespace std;
- // DECLARE VARIABLES HERE
- int number=0, dollars, quarters, dimes, pennies;
- // 1.1 Check for correct number of arguments.
- if (args !=3)
- {
- cerr << "Usage: " << argv[0] << " inputfile outputfile" << endl;
- exit(1);
- }
- // 1.2 Open and check for successful file open.
- ifstream infile (argv[1]); // explicit-value construction of the input file
- ofstream outfile (argv[2]); // output file
- if (!infile)
- {
- cerr << "Invalid input file" << endl;
- exit(1);
- }
- else if (!outfile)
- {
- cerr << "Invalid output file/location." << endl;
- exit(1);
- }
- // Print table header
- outfile << " Amount Dollars Quarters Dimes Pennies" << endl << endl;
- // 1.3 Read number
- while(!infile.eof())
- {
- infile>>number;
- // Compute change function call
- compute_change(number, dollars, quarters, dimes, pennies);
- // Display results
- const char separator = ' ';
- const int numWidth = 10;
- outfile << right << setw(numWidth) << setfill(separator) << number;
- outfile << right << setw(numWidth) << setfill(separator) << dollars;
- outfile << right << setw(numWidth) << setfill(separator) << quarters;
- outfile << right << setw(numWidth) << setfill(separator) << dimes;
- outfile << right << setw(numWidth) << setfill(separator) << pennies << endl;
- }
- // 4. Close files
- infile.close();
- outfile.close();
- return 0;
- } // end main
- // FUNCTION DEFINITION GOES HERE
- void compute_change (int calc_number,
- int & calc_dollars,
- int & calc_quarters,
- int & calc_dimes,
- int & calc_pennies)
- {
- calc_dollars = 0;
- calc_quarters = 0;
- calc_dimes = 0;
- calc_pennies = 0;
- while(calc_number>0)
- {
- if (calc_number>=100)
- {
- calc_dollars++;
- calc_number = calc_number-100;
- }
- else if (calc_number>=25)
- {
- calc_quarters++;
- calc_number = calc_number-25;
- }
- else if (calc_number>=10)
- {
- calc_dimes++;
- calc_number=calc_number-10;
- }
- else if (calc_number>=1)
- {
- calc_pennies++;
- calc_number=calc_number-1;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement