Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.56 KB | None | 0 0
  1. // CS215
  2. // change.cpp
  3. // Graham Matthews
  4.  
  5. #include <iostream>
  6. #include <fstream> // ifstream, ofstream
  7. #include <cstdlib> // exit()
  8. #include <string>
  9. #include <iomanip>
  10.  
  11. /* PROBLEM STATEMENT
  12. Write a program that will read a series of positive integers each
  13. representing a number of cents from a file. For each integer, the program
  14. will compute the maximum number of dollars, quarters, dimes, and pennies
  15. that would be needed to give out the amount of change. But nickels are boring
  16. so they don't count. The results are to be output to a file in a tabular
  17. format as shown below with each field having a width of 10.
  18.  
  19. Function: compute_change
  20. Analysis
  21. Objects Type Movement Name
  22. ------------------------------------------------------------------
  23. calc_number int received number
  24. calc_dollars int passed back dollars
  25. calc_quarters int passed back quarters
  26. calc_dimes int passed back dimes
  27. calc_pennies int passed back pennies
  28. */
  29.  
  30. // No returned objects, so void function
  31.  
  32. void compute_change (int calc_number,
  33. int & calc_dollars,
  34. int & calc_quarters,
  35. int & calc_dimes,
  36. int & calc_pennies);
  37.  
  38. int main (int args, char * argv[])
  39. {
  40. using namespace std;
  41.  
  42. // DECLARE VARIABLES HERE
  43.  
  44. int number=0, dollars, quarters, dimes, pennies;
  45.  
  46. // 1.1 Check for correct number of arguments.
  47.  
  48. if (args !=3)
  49. {
  50. cerr << "Usage: " << argv[0] << " inputfile outputfile" << endl;
  51. exit(1);
  52. }
  53.  
  54. // 1.2 Open and check for successful file open.
  55.  
  56. ifstream infile (argv[1]); // explicit-value construction of the input file
  57. ofstream outfile (argv[2]); // output file
  58. if (!infile)
  59. {
  60. cerr << "Invalid input file" << endl;
  61. exit(1);
  62. }
  63. else if (!outfile)
  64. {
  65. cerr << "Invalid output file/location." << endl;
  66. exit(1);
  67. }
  68. // Print table header
  69. outfile << " Amount Dollars Quarters Dimes Pennies" << endl << endl;
  70. // 1.3 Read number
  71. while(!infile.eof())
  72. {
  73. infile>>number;
  74. // Compute change function call
  75. compute_change(number, dollars, quarters, dimes, pennies);
  76. // Display results
  77. const char separator = ' ';
  78. const int numWidth = 10;
  79.  
  80. outfile << right << setw(numWidth) << setfill(separator) << number;
  81. outfile << right << setw(numWidth) << setfill(separator) << dollars;
  82. outfile << right << setw(numWidth) << setfill(separator) << quarters;
  83. outfile << right << setw(numWidth) << setfill(separator) << dimes;
  84. outfile << right << setw(numWidth) << setfill(separator) << pennies << endl;
  85. }
  86.  
  87. // 4. Close files
  88. infile.close();
  89. outfile.close();
  90.  
  91. return 0;
  92. } // end main
  93.  
  94. // FUNCTION DEFINITION GOES HERE
  95. void compute_change (int calc_number,
  96. int & calc_dollars,
  97. int & calc_quarters,
  98. int & calc_dimes,
  99. int & calc_pennies)
  100. {
  101. calc_dollars = 0;
  102. calc_quarters = 0;
  103. calc_dimes = 0;
  104. calc_pennies = 0;
  105. while(calc_number>0)
  106. {
  107. if (calc_number>=100)
  108. {
  109. calc_dollars++;
  110. calc_number = calc_number-100;
  111. }
  112. else if (calc_number>=25)
  113. {
  114. calc_quarters++;
  115. calc_number = calc_number-25;
  116. }
  117. else if (calc_number>=10)
  118. {
  119. calc_dimes++;
  120. calc_number=calc_number-10;
  121. }
  122. else if (calc_number>=1)
  123. {
  124. calc_pennies++;
  125. calc_number=calc_number-1;
  126. }
  127. }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement