//******************************************************************
// Walk program
// This program computes the mileage (rounded to tenths of a mile)
// for each of four distances between points in a city, given
// the measurements on a map with a scale whose value is also
// input
//******************************************************************
#include <iostream.h>
#include <iomanip.h>    // For setprecision()
#include <fstream.h>    // For file I/O

int main()
{
    float    distance1;       // Measurement for first distance
    float    distance2;       // Measurement for second distance
    float    distance3;       // Measurement for third distance
    float    distance4;       // Measurement for fourth distance
    float    scale;           // Map scale (miles per inch)
    float    totMiles;        // Total of rounded mileages
    float    miles;           // An individual rounded mileage
    ifstream inData;          // Holds map distances in inches
    ofstream outData;         // Holds walking distances in miles

    outData.setf(ios::fixed, ios::floatfield);  // Set up fl. pt.
    outData.setf(ios::showpoint);               //   output format
    outData << setprecision(1);

    // Open the files

    inData.open("walk.dat");
    outData.open("results.dat");

    // Get data

    inData >> distance1 >> distance2 >> distance3 >> distance4
           >> scale;

    // Initialize the total miles

    totMiles = 0.0;

    // Compute miles for each distance on the map

    miles = float(int(distance1 * scale * 10.0 + 0.5)) / 10.0;
    outData << "For a measurement of " << distance1
            << " the first distance is " << miles
            << " mile(s) long." << endl;
    totMiles = totMiles + miles;

    miles = float(int(distance2 * scale * 10.0 + 0.5)) / 10.0;
    outData << "For a measurement of " << distance2
            << " the second distance is " << miles
            << " mile(s) long." << endl;
    totMiles = totMiles + miles;

    miles = float(int(distance3 * scale * 10.0 + 0.5)) / 10.0;
    outData << "For a measurement of " << distance3
            << " the third distance is " << miles
            << " mile(s) long." << endl;
    totMiles = totMiles + miles;

    miles = float(int(distance4 * scale * 10.0 + 0.5)) / 10.0;
    outData << "For a measurement of " << distance4
            << " the fourth distance is " << miles
            << " mile(s) long." << endl;
    totMiles = totMiles + miles;

    // Print the total miles

    outData << endl;
    outData << "Total mileage for the day is " << totMiles
            << " miles." << endl;
    return 0;
}
