/* Name: Samuel Kanfer Date: 02-21-22 Assignment: Homework 5 Due Date: 02-21-22 About this project: This program will calculate the NFL passer rating for 2 quarterbacks using the real formula used in the National Football League. Assumptions: (write any assumptions made here (ex: assumes correct user input)) All work below was performed by Samuel Kanfer */ #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main() { // Declaring function getPasserRating float getPasserRating(int attempts, int completions, int yards, int touchdowns, int interceptions); int timesRan = 0; cout<<"\nWelcome to the NFL Quarterback Passer Rating Calculator!\n"; // Declaring variables int attemptsA, completionsA, yardsA, touchdownsA, interceptionsA; // Inputting for Player A beginning: timesRan++; cout<<"\nEnter single game information for Player A:\n"; cout<<"Attempts: "; cin>>attemptsA; cout<<"Completions: "; cin>>completionsA; cout<<"Passing Yards: "; cin >> yardsA; cout<<"Touchdowns: "; cin>>touchdownsA; cout<<"Interceptions: "; cin>>interceptionsA; // Declaring variables int attemptsB, completionsB, yardsB, touchdownsB, interceptionsB; // Inputting for Player B cout << "\nEnter single game information for Player B:\n"; cout << "Attempts: "; cin >> attemptsB; cout << "Completions: "; cin >> completionsB; cout << "Passing Yards: "; cin >> yardsB; cout << "Touchdowns: "; cin >> touchdownsB; cout << "Interceptions: "; cin >> interceptionsB; // Calling function getPasserRating for both player A and B float passer_ratingA, passer_ratingB; passer_ratingA = getPasserRating(attemptsA, completionsA, yardsA, touchdownsA, interceptionsA); passer_ratingB = getPasserRating(attemptsB, completionsB, yardsB, touchdownsB, interceptionsB); // Displaying player A and player B passer rating cout << "\nPlayer A's single game passer rating: " <<fixed<<setprecision(1)<<passer_ratingA; cout << "\nPlayer B's single game passer rating: " <<fixed<<setprecision(1)<<passer_ratingB; // Checking and displaying which player passer rating is higher and by what difference if (passer_ratingA > passer_ratingB) { cout << "\nPlayer A was better than Player B by a differnce of "<<passer_ratingA-passer_ratingB; } else if (passer_ratingB > passer_ratingA){ cout << "\nPlayer B was better than Player A by a differnce of "<<passer_ratingB-passer_ratingA; } else { cout << "\nPlayer A and B have the same rating!"; } // Checking both player attained perfect score or not if (passer_ratingA > 158.33) { cout << "\n\nPlayer A had a PERFECT passer rating."; } if (passer_ratingB > 158.33) { cout << "\n\nPlayer B had a PERFECT passer rating."; } char repeatResponse; cout << "\n\nWould you like to compare another pair of players? (Y or N) "; cin >> repeatResponse; if (repeatResponse == 'y' || repeatResponse == 'Y') { goto beginning; } else if (repeatResponse == 'n' || repeatResponse == 'N') { if (timesRan == 1) { cout << "You compared " << timesRan << " pair of players."; } else { cout << "You compared " << timesRan << " pairs of players."; } } else { cout << "Invalid entry. Exiting program..."; } } // Defining getPasserRating function float getPasserRating(int attempts, int completions, int yards, int touchdowns, int interceptions) { // Declaring variables float a, b, c, d; // Assigning variables to complete math equations a = ((completions/float(attempts)) - 0.3) * 5; if ( a > 2.375) {a = 2.375;} if ( a < 0) {a = 0;} b = ((yards/float(attempts)) - 3) * 0.25; if ( b > 2.375) {b = 2.375;} if ( b < 0) {b = 0;} c = (touchdowns/float(attempts)) * 20; if ( c > 2.375) {c = 2.375;} if ( c < 0) {c = 0;} d = 2.375 - ((interceptions/float(attempts)) * 25); if ( d > 2.375) {d = 2.375;} if ( d < 0) {d = 0;} // Calculating passer rating float passer_rating; passer_rating = ((a+b+c+d)/6) * 100; return passer_rating; }
Write, Run & Share C++ code online using OneCompiler's C++ online compiler for free. It's one of the robust, feature-rich online compilers for C++ language, running on the latest version 17. Getting started with the OneCompiler's C++ compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as C++
and start coding!
OneCompiler's C++ online compiler supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample program which takes name as input and print your name with hello.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cout << "Enter name:";
getline (cin, name);
cout << "Hello " << name;
return 0;
}
C++ is a widely used middle-level programming language.
When ever you want to perform a set of operations based on a condition If-Else is used.
if(conditional-expression) {
//code
}
else {
//code
}
You can also use if-else for nested Ifs and If-Else-If ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to If-Else-If ladder.
switch(conditional-expression){
case value1:
// code
break; // optional
case value2:
// code
break; // optional
......
default:
code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
//code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while (condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity. Function gets run only when it is called.
return_type function_name(parameters);
function_name (parameters)
return_type function_name(parameters) {
// code
}