# Help with The Speed of Sound C++ Program

4 replies to this topic

### #1 Jackerman23

Jackerman23

Neowinian

• Joined: 16-October 13

Posted 01 November 2013 - 02:39

So I am suppose to write a program that displays a menu for allowing the user to select air, water or steel. After the user has made a selection, s(he) should be asked to enter the distance a sound wave will travel in the selected medium, then whether this distance is in feet or miles. The program will then display the amount of time it will take for sound to travel this distance (in seconds).

Medium / Speed

Air = 1,100 feet per second

Water = 4,900 feet per second

Steel = 16,400 feet per second

So this is what I got so far:

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
int choice;
int distance;
double amountOfTime;

const double Air = 1100;  //feet per second
const double Water = 4900; //feet per second
const double Steel = 16400; //feet per second
cout << "\t\tThe Speed of Sound \n";
cout << "Please select your medium \n\n";
cout << "1. Air \n";
cout << "2. Water \n";
cout << "3. Steel \n";
cout << "Enter your choice: ";
cin >> choice;
cout << "Enter the distance the sound wave will travel: ";
cin >> distance;
cout << setprecision (4) << fixed;
cout <<

if (distance == 0)
{
cout << "Distance must be greater than zero\n";
}
else if (choice >= 1 && choice <=3)
{
switch (choice)
{
case 1: amountOfTime = distance / Air;
break;
case 2: amountOfTime = distance / Water;
break;
case 3: amountOfTime = distance / Steel;
}

cout << "The amount of time it will take to travel is ";
cout << amountOfTime;
cout << " seconds" << endl;
}
return 0;
}

The program works but I still need help in writing the code to ask the user on whether if they want the distance in feet or miles within my program and with a conversion in the code that will display the result of the feet or miles that they will want inputted because so far the distance I ask the user only displays the standard of feet, thanks!

### #2 Andre S.

Andre S.

Asik

• Tech Issues Solved: 10
• Joined: 26-October 05

Posted 01 November 2013 - 02:43

You seem to know how to let the user enter things, so entering whether they want the distance in feet or miles should be no problem. The conversion is just a multiplication by the correct factor. What exactly is unclear to you? Please be more specific than "I need help".

### #3 OP Jackerman23

Jackerman23

Neowinian

• Joined: 16-October 13

Posted 01 November 2013 - 02:47

well I got the asking the user down but right after "cout << setprecision (4) << fixed;", should I go onto the next line and ask "cout << "Do you want the distance in feet or miles: ";" and what should I do after that when I create that question? sorry I am kind of new, this is my two months of C++

### #4 OP Jackerman23

Jackerman23

Neowinian

• Joined: 16-October 13

Posted 01 November 2013 - 02:53

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
int choice;
int distance;
double amountOfTime;

const double Air = 1100;  //feet per second
const double Water = 4900; //feet per second
const double Steel = 16400; //feet per second
cout << "\t\tThe Speed of Sound \n";
cout << "Please select your medium \n\n";
cout << "1. Air \n";
cout << "2. Water \n";
cout << "3. Steel \n";
cout << "Enter your choice: ";
cin >> choice;
cout << "Enter the distance the sound wave will travel: ";
cin >> distance;
cout << setprecision (4) << fixed;
cout << "Do you want the distance in feet or miles: ";

if (distance == 0)
{
cout << "Distance must be greater than zero\n";
}
else if (choice >= 1 && choice <=3)
{
switch (choice)
{
case 1: amountOfTime = distance / Air;
break;
case 2: amountOfTime = distance / Water;
break;
case 3: amountOfTime = distance / Steel;
}

cout << "The amount of time it will take to travel is ";
cout << amountOfTime;
cout << " seconds" << endl;
}
return 0;
}

So I put the question in asking the user if they want the distance in feet or miles but where would I put the conversion of feet to miles in the program to make the program work?

### #5 Andre S.

Andre S.

Asik

• Tech Issues Solved: 10
• Joined: 26-October 05

Posted 01 November 2013 - 03:24

Your units are in feet by default, so if the user enters feet, you do nothing special. If the user enters meters, you convert all your quantities to meters before your switch(choice) structure.

The conversion might look like this:

```double metersPerFeet = 0.3something;
Air *= metersPerFeet;
Water *= metersPerFeet;```

Now is the distance entered by the user in feet or meters? I guess you should ask about the units of measure before the distance, so it's clear what unit the user is expecting.

Click here to login or here to register to remove this ad, it's free!