Multiple choice conditional
Hello
I'm trying to create a calculator that takes a keyboard-entered variable, followed by a choice of variable, a value for that variable, then a calculation, using one of two expressions. The expression used depends on the chosen variable.
It should read something like this:
Please enter a mass
5
Will you enter [S]peed or [M]omentum?
s
Please enter the speed
10
A mas of 5kg with speed of 10m/s has kinetic energy of 250J.
The program I have so far works until the calculation, where I get a runtime error. If I chose to enter a speed, it says the variable representing momentum is being used without being initialised. If I chose momentum, the speed variable gets the same error. I've tried multiple variations, but it keeps happening.
Code:
#include <iostream>
using namespace std;
int main () {
//variable declarations and initialisation
double en_k1;
double en_k2;
double mass;
double vel;
double mom;
//prompt and read mass
cout << "Please enter the mass (kg):" << endl;
cin >> mass;
//prompt for choice of speed or momentum
cout << "Are you going to enter a [S]peed or a [M]omentum?" << endl;
char choice;
cin >> choice;
switch (choice){
case 's':
case 'S':
cout << "Please enter the speed (m/s)." << endl;
cin >> vel;
break;
case 'm':
case 'M':
cout << "Please enter the momentum (kgm/s)" << endl;
cin >> mom;
break;
default:
cout << "You entered a mass of " << mass << "kg, but your choice of speed or momentum was not a valid choice." << endl;
}
//conditional read and calculate energy
if (vel){
en_k1 = 0.5 * mass * (vel * vel);
}
else if (mom){
en_k2 = mom / (2 * mass);
}
//print result
cout << "A mass of " << mass << "kg with a speed of " << vel << "m/s has a kinetic energy of " << en_k1 << "J." << endl;
cout << "A mass of " << mass << "kg with a momentum of " << mom << "kgm/s has a kinetic energy of " << en_k2 << "J." << endl;
//spit if invalid input
//sign off politely
cout << "Thank you for using the kinetic energy calculator." << endl;
} //end of main()
I don't understand what is wrong with it, and I'm not sure if I'm linking the expressions to the statements correctly..
Could anyone offer any help?
Thanks.