Write a program that will read in a weight in pounds and ounces and will output the equivalent weight in kilograms and grams. Use at least three functions: one for input, one or more for calculating, and one for output. Include a loop that lets the user repeat this computation for new input values until the user says he or she wants to end the program. There are 2.2046 pounds in a kilogram, 1000 grams in a kilogram, and 16 ounces in a pound.
//C++ function headers
#include <iostream>
#include <cmath>
using namespace std;
//Prototypes of three functions
void inputFunction(double £sWeight, double &ouncesWeight);
void calculateWeight(double poundsWeight, double ouncesWeight, double &kilogramsWeight, double &gramsWeight);
void outputFunction(double poundsWeight, double ouncesWeight, double kilogramsWeight, double gramsWeight);
//Define constant values to variables
const double KILOGRAMS = 2.2046;
const double GRAMS = 1000;
const double OUNCES = 16;
//main method
int main()
{
double poundsWeight,ouncesWeight;
double kilogramsWeight,gramsWeight;
char inputOption;
do
{
//Call three functions
inputFunction(poundsWeight, ouncesWeight);
calculateWeight(poundsWeight, ouncesWeight, kilogramsWeight, gramsWeight);
outputFunction(poundsWeight, ouncesWeight, kilogramsWeight, gramsWeight);
//lets the user repeat this computation for new input values
// until the user says he or she wants to end the program
cout << "Repeat this computation for new input values?(Y/N): ";
cin >> inputOption;
cout << endl;
}while(inputOption == 'Y' || inputOption == 'y');
system("pause");
return 0;
}
//Read a valid input as weight in pounds and ounces
void inputFunction(double £sWeight, double &ouncesWeight)
{
cout << "Enter pounds weight: ";
cin >> poundsWeight;
while(poundsWeight < 0)
{
cout << "Enter a valid number of pounds weight: ";
cin >> poundsWeight;
}
cout << "Enter ounces weight: ";
cin >> ouncesWeight;
while(ouncesWeight < 0 || ouncesWeight >= OUNCES)
{
cout << "Enter a valid number of ounces weight: ";
cin >> ouncesWeight;
}
cout << endl;
}
//Calculate weight in kilograms and grams from the input values
void calculateWeight(double poundsWeight, double ouncesWeight, double &kilogramsWeight, double &gramsWeight)
{
double totalPoundsWeight;
totalPoundsWeight = poundsWeight + ouncesWeight / OUNCES;
kilogramsWeight = totalPoundsWeight / KILOGRAMS;
gramsWeight = kilogramsWeight * GRAMS;
kilogramsWeight = floor(kilogramsWeight);
gramsWeight = floor(gramsWeight - kilogramsWeight * GRAMS + 0.5);
}
//Display output results on screen
void outputFunction(double poundsWeight, double ouncesWeight, double kilogramsWeight, double gramsWeight)
{
cout <<"There are "<< poundsWeight
<< " pounds and " << ouncesWeight
<< " ounces are equal to "
<< kilogramsWeight << " kilograms and "
<< gramsWeight << " grams approximately."
<< endl;
}
Executed Output:
Enter pounds weight: 10000
Enter ounces weight: 10
There are 10000 pounds and 10 ounces are equal to 4536 kilograms and 254 grams approximately.
Repeat this computation for new input values?(Y/N): y
Enter pounds weight: 550
Enter ounces weight: 15
There are 550 pounds and 15 ounces are equal to 249 kilograms and 904 grams approximately.
Repeat this computation for new input values?(Y/N): N