/* Name: Ryan Bertran Date: Feb 18, 2022 Assignment: Calculating NFL Passer Rating Due Date: Feb 21, 2022 About this project: In this project we are calculating the NFLs passer rating using the real formulas. Assumptions: Assume correct user input for all Int variables All work below was performed by Ryan Bertran */ #include <iostream> #include <iomanip> using namespace std; double getPasserRating(double Att, double Comp, double Pass, double TD, double Inter); // this is the function decleration that will calculate the passer rating int main() { int AttemptsA, CompletionsA, PassingYardsA, TouchdownsA, InterceptionsA; int AttemptsB, CompletionsB, PassingYardsB, TouchdownsB, InterceptionsB; int comparisons = 0; double PlayerARating, PlayerBRating, difference; char another; /*These variable are all necessary to carry out my program, it is important that comparison is = 0 so that the compilor does not assume a random value.*/ bool running = true; // running will equal true until user input says other wise cout << fixed << showpoint << setprecision(1); cout << "Welcome to the NFL Quarterback Passer Rating Calculator!" << endl; while(running) // this loop will continue until running is input as false { cout << "\nEnter single game informatiion for Player A:\n"; cout << "Attempts: "; cin >> AttemptsA; cout << "Completions: "; cin >> CompletionsA; cout << "Passing Yards: "; cin >> PassingYardsA; cout << "Touchdowns: "; cin >> TouchdownsA; cout << "Interceptions: "; cin >> InterceptionsA; cout << "\nEnter single game informatiion for Player B:\n"; cout << "Attempts: "; cin >> AttemptsB; cout << "Completions: "; cin >> CompletionsB; cout << "Passing Yards: "; cin >> PassingYardsB; cout << "Touchdowns: "; cin >> TouchdownsB; cout << "Interceptions: "; cin >> InterceptionsB; PlayerARating = getPasserRating(AttemptsA, CompletionsA, PassingYardsA, TouchdownsA, InterceptionsA); PlayerBRating = getPasserRating(AttemptsB, CompletionsB, PassingYardsB, TouchdownsB, InterceptionsB); // so long the variable are in correct order, the function will run properly cout << "\nPlayer A's single game passer rating: " << PlayerARating; cout << "\nPlayer B's single game passer rating: " << PlayerBRating << endl; if(PlayerARating > PlayerBRating) { difference = PlayerARating - PlayerBRating; cout << "Player A was better than Player B by a difference of " << difference << endl; } else if(PlayerARating == PlayerBRating) cout << "Player A and B have the same rating" << endl; else { difference = PlayerBRating - PlayerARating; cout << "Player B was better than Player A by a difference of " << difference << endl; } // this part of the program compares player a and b's passerating if(PlayerARating >= 158.33) cout << "\nPlayer A had a PERFECT passer rating.\n"; if(PlayerBRating >= 158.33) cout << "\nPlayer B had a PERFECT passer rating.\n"; // this tells whether or not either player had a perfect passer rating cout << "\nWould you like to compare another pair of players? (Y or N)"; cin >> another; if(another == 'N' || another == 'n') running = false; if(another == 'Y' || another == 'y') running = true; if(another != 'N' && another != 'n' && another != 'Y' && another != 'y') { cout << "Invalid entry. Exiting program..."; running = false; } //this part of the program tells the compiler whether or not the while loop will run again comparisons ++; // every time the loop runs there comparisons will be added by 1 } if (comparisons <= 1 && (another == 'N' || another == 'n' || another == 'Y' || another == 'y')) cout << "You compared " << comparisons << " pair of players."; else if(comparisons > 1 && (another == 'N' || another == 'n' || another == 'Y' || another == 'y')) cout << "You compared " << comparisons << " pairs of players."; // i needed to make sure that this output only showed if the 'another' entry was valid return 0; } double getPasserRating(double Att, double Comp, double Pass, double TD, double Inter) { double a, b, c, d, rating; a = ((Comp/Att)-.3)*5; if(a > 2.375) a = 2.375; else if(a < 0) a = 0; b = ((Pass/Att)- 3)*.25; if(b > 2.375) b = 2.375; else if(b < 0) b = 0; c = ((TD/Att)*20); if(c > 2.375) c = 2.375; else if(c < 0) c = 0; d = 2.375 -((Inter/Att)*25); if(d > 2.375) d = 2.375; else if(d < 0) d = 0; //the perameters and calculations are set above if(Att == 0) rating = 0; //the denominator 'Att' cannot be zero or ratting = 0 else rating = ((a+b+c+d)/6)*100; //the final calculation to find the passer rating return 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
}