this is what mine looks like so far but my while (inFile) loop is repeating constantly.
Code:
// Libraries:
#include<iostream>
#include<iostream>
#include<iomanip>
#include<fstream>
#include<string>
#include<cmath>
using namespace std;
// Constants:
float const RAD_DEGREES = 180.0f;
float const FEET_PER_SECOND = 32.2f;
float const PI = 3.14159265f;
const int SubDist = 1000,
const int DestroyerDist = 1900,
const int BattleshipDist = 2000,
const int AircraftDist = 3030;
float CalcRadians(int &angle, float PI);
float GetDistance(float velocity, float ang);
int main()
{
// Delcare all variables and state what they contain here:
ifstream inFile; //input file variable
string inFileName; //name of the input file
ofstream outFile; //otput file variable
string outFileName; //name of output file
int count = 0; //the number of values in the input file (unknown)
int angle; //angle input from file
float velocity; //velocity of projectile from file
float distance; //calculated distance
float radians; //calculated radians
//bool directHit; //returns true if hit and false if not
int missCt = 0; //counts misses
int hitCt = 0; // count hits
cout << fixed << setprecision(2);
outFile.open("battle.log");
do {
cout << "Please enter the name of the input file\n";
cin >> inFileName;
inFile.open(inFileName);
if (!inFile)
cout << "File entered " << inFileName
<< " is invalid, please try again\n";
} while (!inFile);
inFile >> angle;
inFile >> velocity;
if (angle < 0 || velocity < 0)
inFile.ignore(20, '\n');
radians = CalcRadians(angle, PI);
distance = GetDistance(velocity, radians);
while (inFile)
{
cout << "The distance is " << distance << endl;
}
if (distance >= 999 && distance <= 1001)
{
cout << "you hit the submarine" << endl;
}
else if (distance >= 1899 && distance <= 1901)
{
cout << "you hit the Destroyer" << endl;
}
else if (distance >= 1999 && distance <= 2001)
{
cout << "you hit the Battleship" << endl;
}
else if (distance >= 3029 && distance <= 3031)
{
cout << "you hit the Aircraft Carrier" << endl;
}
else
cout << "You missed" << endl;
cout << missCt++ << endl;
cout << "The radians is " << radians << endl;
cout << "The distance is " << distance << endl;
system("pause");
return 0;
} // end main
float CalcRadians(int& angle, float PI)
{
float radians;
radians = ((float)angle * PI) / RAD_DEGREES;
return radians;
}
float GetDistance(float velocity, float radians)
{
float distance;
float sinTotal = (2 * radians);
distance = ((velocity*velocity) * sin(sinTotal)) / 32.2;
return distance;
}