fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;
  4.  
  5. /*******************************************************************************
  6.  *
  7.  * Project #2 – Repetition & Switch Statement
  8.  *
  9.  * This program will obtain from the user, a list of Letter Grades then display the
  10.  * Total Points and GPA then, and then loop 3 times.
  11.  *
  12.  *
  13.  *
  14.  *
  15.  * Computations are based on
  16.  * TotalPoints = Total Points + Grade Value
  17.  * GPA = Total Points / Grade Count
  18.  *
  19.  * _____________________________________________________________________________
  20.  * INPUT
  21.  * LetterGrade : Letter grades from A,B,C,D,F, or X to end list,
  22.  * entered by the User
  23.  *
  24.  *
  25.  *
  26.  * OUTPUT
  27.  * TotalPoints : Total accumulated points converted through the LetterGrades
  28.  * GPA : Grade Point Average for the list of Grades
  29.  *
  30.  *
  31.  ******************************************************************************/
  32.  
  33. int main() {
  34. char LetterGrade; // Letter Grades to be entered by the user
  35.  
  36. // Outer loop runs 3 times for the 3 test runs
  37. for (int LoopCount = 0; LoopCount <= 2; LoopCount++) {
  38. double TotalPoints = 0.0; // Total value of all letter grades in list
  39. double GPA = 0.0; // Average of points in list
  40. int GradeCount = 0; // Amount of grades entered by user
  41. bool KeepGoing = true; // Flag to control grades entry loop
  42.  
  43. // Test header
  44. cout << "TEST #" << (LoopCount + 1) << ":" << endl << endl;
  45.  
  46. // Continuously collects grades until 'X' or 'x' is entered
  47. while (KeepGoing) {
  48. cout << "Enter Letter Grade (enter 'X' to exit): " << endl;
  49. cin >> LetterGrade; // Gathers Letter Grade inputs
  50.  
  51. switch (LetterGrade) { // Converting Letter Grades to numeric values
  52. case 'A':
  53. case 'a': // Included lowercase just in case users type lowercase
  54. TotalPoints += 4.0;
  55. GradeCount += 1;
  56. break;
  57. case 'B':
  58. case 'b':
  59. TotalPoints += 3.0;
  60. GradeCount += 1;
  61. break;
  62. case 'C':
  63. case 'c':
  64. TotalPoints += 2.0;
  65. GradeCount += 1;
  66. break;
  67. case 'D':
  68. case 'd':
  69. TotalPoints += 1.0;
  70. GradeCount += 1;
  71. break;
  72. case 'F':
  73. case 'f':
  74. TotalPoints += 0.0;
  75. GradeCount += 1;
  76. break;
  77. case 'X':
  78. case 'x':
  79. KeepGoing = false;
  80. break;
  81. default:
  82. cout << endl << "Invalid letter grade, please try again" << endl << endl;
  83. }
  84. }
  85.  
  86. // Prevent division by zero if they enter X immediately
  87. if (GradeCount > 0) {
  88. GPA = TotalPoints / GradeCount;
  89. } else {
  90. GPA = 0.0;
  91. }
  92. // Displaying Total Points and GPA
  93. cout << endl;
  94. cout << "Total Grade Points: " << TotalPoints << endl;
  95. cout << fixed << setprecision(2);
  96. cout << "GPA: " << GPA << endl;
  97.  
  98. // Triple space between loops
  99. if (LoopCount < 2) {
  100. cout << endl << endl << endl;
  101. }
  102. }
  103.  
  104. return 0;
  105. }
Success #stdin #stdout 0s 5320KB
stdin
A
A
F
C
D
X
A
B
C
A
F
X
A
B
F
C
D
X
stdout
TEST #1:

Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 

Total Grade Points: 11
GPA: 2.20



TEST #2:

Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 

Total Grade Points: 13.00
GPA: 2.60



TEST #3:

Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 
Enter Letter Grade (enter 'X' to exit): 

Total Grade Points: 10.00
GPA: 2.00