I am trying to solve the following problem.

Here is the problem specification:

Allenton Water Department wants a program that calculates a customer's monthly water bill. The clerk will enter the current and the previous meter readings. The program should calculate and display the number of gallons of water used and the total charge for the water. The charge for water is $7 per 1000 gallons. However, there is a minimum charge is $16.67. (In other words, every customer must pay at least $16.67).

In one of the questions, I am asked to desk-check my algorithm with 13000 and 16000 as the previous and the current meter readings respectively. The second desk-check use 1650 and 3675.

I have a couple of questions concerning the problem.

1. With the first desk check I got 3000 for the gallons used, and $21 for the total charge. For the second desk check I got 2025 for the gallons used, and $14.175; however, since the minimum charge is $16.67, I wrote down $16.67 in my desk-check table, since $14.175 < $16.67. I want to know if my answers are right.

2. In my IPO chart, for my fourth step, I have the following pseudocodes:

if (total charge < 16.67)

total charge = 16.67

end if

I would like to know if the pseudocode is correct.

3. For the coding solution, I essentially have two different versions, and for some reason, both versions give the same results for the desk-check. I would like to know which of the two versions are correct. I am also asked to display the total charge in fixed-point notation with two decimal places.

First coding solution:

//Exercise13.cpp - displays the gallons used and the total charge

//Created/revised by <Patrick> on <September 29>

Code:`#include <iostream>`

#include <iomanip>

using namespace std;

int main()

{

//declare variables and named constants

double previousMeterReadings = 0.0;

double currentMeterReadings = 0.0;

double gallonsWaterUsed = 0.0;

double totalCharge = 0.0;

const double CHARGE_PER_GALLON = 0.007;

//enter input items

cout << "Enter the previous readings: ";

cin >> previousMeterReadings;

cout << "Enter the current readings: ";

cin >> currentMeterReadings;

//calculate gallons of water used and total charge

gallonsUsed = currentMeterReadings - previousMeterReadings;

totalCharge = CHARGE_PER_GALLON * gallonsWaterUsed;

//calculate total charge

if (totalCharge < 16.67)

totalCharge = 16.67;

//end if

cout << "Gallons used: " << gallonsWaterUsed << endl;

cout << fixed << setprecision(2);

cout << "Total charge: $" << totalCharge << endl;

system("pause");

return 0;

} //end of main function

Second coding solution:

//Exercise13.cpp - displays the gallons used and the total charge

//Created/revised by <Patrick> on <September 29>

Code:`#include <iostream>`

#include <iomanip>

using namespace std;

int main()

{

//declare variables and named constants

double previousReadings = 0.0;

double currentReadings = 0.0;

double gallonsUsed = 0.0;

double totalCharge = 0.0;

const double CHARGE_PER_GALLON = 0.007;

//enter input items

cout << "Enter the previous readings: ";

cin >> previousReadings;

cout << "Enter the current readings: ";

cin >> currentReadings;

//calculate gallons used and total charge

gallonsUsed = currentReadings - previousReadings;

totalCharge = CHARGE_PER_GALLON * gallonsUsed;

//calculate total charge

if (totalCharge < 16.67)

{

totalCharge = 16.67;

cout << "Total charge: " << totalCharge << endl;

} //end if

cout << "Gallons used: " << gallonsUsed << endl;

cout << fixed << setprecision(2);

cout << "Total charge: $" << totalCharge << endl;

system("pause");

return 0;

} //end of main function