#include <iostream>
#include <iomanip>
using std::cout;
// Conversion functions (all convert *from meters* first)
double mmToMeters(double mm) { return mm / 1000.0; }
double cmToMeters(double cm) { return cm / 100.0; }
double kmToMeters(double km) { return km * 1000.0; }
double milesToMeters(double mi) { return mi * 1609.34; }
double feetToMeters(double ft) { return ft * 0.3048; }
double yardsToMeters(double yd) { return yd * 0.9144; }
double inchesToMeters(double in) { return in * 0.0254; }
// Convert meters → all units
double toMillimeters(double m) { return m * 1000.0; }
double toCentimeters(double m) { return m * 100.0; }
double toKilometers(double m) { return m / 1000.0; }
double toMiles(double m) { return m / 1609.34; }
double toFeet(double m) { return m / 0.3048; }
double toYards(double m) { return m / 0.9144; }
double toInches(double m) { return m / 0.0254; }
int main() {
int choice;
double value, meters;
cout << "Choose input unit:\n";
cout << "1. Millimeters\n";
cout << "2. Centimeters\n";
cout << "3. Meters\n";
cout << "4. Kilometers\n";
cout << "5. Miles\n";
cout << "6. Feet\n";
cout << "7. Yards\n";
cout << "8. Inches\n";
cout << "Enter choice: ";
std::cin >> choice;
cout << "Enter value: ";
std::cin >> value;
// Convert chosen unit → meters
switch (choice) {
case 1: meters = mmToMeters(value); break;
case 2: meters = cmToMeters(value); break;
case 3: meters = value; break;
case 4: meters = kmToMeters(value); break;
case 5: meters = milesToMeters(value); break;
case 6: meters = feetToMeters(value); break;
case 7: meters = yardsToMeters(value); break;
case 8: meters = inchesToMeters(value); break;
default:
cout << "Invalid choice\n";
return 0;
}
cout << std::fixed << std::setprecision(6);
cout << "\nConverted from meters (" << meters << " m):\n";
cout << "Millimeters: " << toMillimeters(meters) << "\n";
cout << "Centimeters: " << toCentimeters(meters) << "\n";
cout << "Meters: " << meters << "\n";
cout << "Kilometers: " << toKilometers(meters) << "\n";
cout << "Miles: " << toMiles(meters) << "\n";
cout << "Feet (Foot): " << toFeet(meters) << "\n";
cout << "Yards: " << toYards(meters) << "\n";
cout << "Inches: " << toInches(meters) << "\n";
}
/*
run:
Choose input unit:
1. Millimeters
2. Centimeters
3. Meters
4. Kilometers
5. Miles
6. Feet
7. Yards
8. Inches
Enter choice: 4
Enter value: 1
Converted from meters (1000.000000 m):
Millimeters: 1000000.000000
Centimeters: 100000.000000
Meters: 1000.000000
Kilometers: 1.000000
Miles: 0.621373
Feet (Foot): 3280.839895
Yards: 1093.613298
Inches: 39370.078740
*/