summaryrefslogtreecommitdiffstats
path: root/C++/ExamAverage/Based/ExamAverage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'C++/ExamAverage/Based/ExamAverage.cpp')
-rw-r--r--C++/ExamAverage/Based/ExamAverage.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/C++/ExamAverage/Based/ExamAverage.cpp b/C++/ExamAverage/Based/ExamAverage.cpp
new file mode 100644
index 0000000..b189b94
--- /dev/null
+++ b/C++/ExamAverage/Based/ExamAverage.cpp
@@ -0,0 +1,55 @@
+// Name: msglm
+// Introduction: Exam Average
+// Description: Calculates the average score between exams given exam scores.
+
+
+#include <iostream>
+#include <string>
+#include <vector>
+using namespace std;
+int main() {
+
+ float temporaryUserInput;
+ float totalScore = 0;
+ vector<float> testScores;
+
+ cout << "Please input your test scores: \nWhen finished, type any non-number input: \n";
+
+ //While loop that tests if temporaryUserInput is not valid input; terminate if not valid
+ while (1) {
+
+ //Cin that writes to temporaryUserInput
+ cin >> temporaryUserInput;
+
+ //if temporaryUserInput is a number, append temporaryUserInput to testScores & loop over
+ if(cin.fail() && testScores.size() == 0) {
+ cout << "You Terminated the program without giving proper input! Shame on You! \n";
+ return(1);
+ } else if (cin.fail()){
+ //otherwise, break the loop and move on to calculating averages
+ break;
+ } else {
+ //This is the point where the test scores are appended to and a loop happens
+ testScores.push_back(temporaryUserInput);
+ }
+ }
+
+ //for every number in the vector testScores, add that number to testScoresSum
+ for (int number = 0; number <= testScores.size(); number++) {
+ totalScore = totalScore + testScores[number];
+ }
+
+ //print the output of testScoresSum divided by the length of testScores
+ cout << "Your average score is: " << totalScore/testScores.size() << "%\n";
+
+}
+
+
+
+
+/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+