fork download
  1. //Cameron Pham CS1A Chapter 7, p. 447, #11
  2. //
  3. /******************************************************************************
  4. * TRACK STUDENT GRADES
  5. * ______________________________________________________________________________
  6. * This program accepts a string value for student names and floating point
  7. * values for four test scores for each student. It displays a report
  8. * containing each student's average test score and corresponding letter grade.
  9. * ______________________________________________________________________________
  10. * INPUT
  11. * Name // Name of student
  12. * Score // Score of test that student got
  13. *
  14. * OUTPUT
  15. * Average // Student's average test score
  16. * Letter grade // Corresponding letter grade for student
  17. *******************************************************************************/
  18. #include <iostream>
  19. #include <iomanip>
  20. #include <string>
  21. using namespace std;
  22.  
  23. int main()
  24. {
  25. // Create an array to store the five student names.
  26. const int SIZE = 5;
  27. string studentNames[SIZE];
  28. // Create an array to store each student's letter grade.
  29. char letterGrades[SIZE];
  30. // Create a two-dimensional array to store four test scores
  31. // for each of the five students.
  32. const int TESTS = 4;
  33. float testScores[SIZE][TESTS];
  34. // Store each student's average test score.
  35. float averages[SIZE];
  36. // Get the name and four test scores for each student.
  37. for (int i = 0; i < SIZE; i++)
  38. {
  39. cout << endl << "Enter the name of student "
  40. << i + 1 << ": ";
  41. cin >> studentNames[i];
  42. // Get the student's four test scores.
  43. for (int j = 0; j < TESTS; j++)
  44. {
  45. cout << "Enter test score " << j + 1
  46. << " for " << studentNames[i] << ": ";
  47. cin >> testScores[i][j];
  48.  
  49. // Validate that the test score is between 0 and 100.
  50. while (testScores[i][j] < 0 ||
  51. testScores[i][j] > 100)
  52. {
  53. cout << "Invalid score. Enter a score "
  54. << "between 0 and 100: ";
  55. cin >> testScores[i][j];
  56. }
  57. }
  58. }
  59. // Calculate each student's average and determine their letter grade.
  60. for (int i = 0; i < SIZE; i++)
  61. {
  62. float total = 0;
  63. // Add the student's four test scores.
  64. for (int j = 0; j < TESTS; j++)
  65. {
  66. total += testScores[i][j];
  67. }
  68. // Calculate the average test score.
  69. averages[i] = total / TESTS;
  70. // Assign a letter grade based on the average.
  71. if (averages[i] >= 90)
  72. {
  73. letterGrades[i] = 'A';
  74. }
  75. else if (averages[i] >= 80)
  76. {
  77. letterGrades[i] = 'B';
  78. }
  79. else if (averages[i] >= 70)
  80. {
  81. letterGrades[i] = 'C';
  82. }
  83. else if (averages[i] >= 60)
  84. {
  85. letterGrades[i] = 'D';
  86. }
  87. else
  88. {
  89. letterGrades[i] = 'F';
  90. }
  91. }
  92. // Display the grade report.
  93. cout << "\n---------- Grade Book Report ----------\n";
  94. cout << left << setw(20) << "Student Name"
  95. << setw(15) << "Average"
  96. << "Letter Grade" << endl;
  97. cout << "---------------------------------------\n";
  98. // Display each student's name, average, and letter grade.
  99. for (int i = 0; i < SIZE; i++)
  100. {
  101. cout << left << setw(20) << studentNames[i]
  102. << setw(15) << fixed << setprecision(2)
  103. << averages[i]
  104. << letterGrades[i] << endl;
  105. }
  106. return 0;
  107. }
Success #stdin #stdout 0.01s 5320KB
stdin
Alice
95
88
92
90
Brian
78
85
82
80
Cathy
65
72
68
70
David
55
60
58
62
Emma
98
95
100
97
stdout
Enter the name of student 1: Enter test score 1 for Alice: Enter test score 2 for Alice: Enter test score 3 for Alice: Enter test score 4 for Alice: 
Enter the name of student 2: Enter test score 1 for Brian: Enter test score 2 for Brian: Enter test score 3 for Brian: Enter test score 4 for Brian: 
Enter the name of student 3: Enter test score 1 for Cathy: Enter test score 2 for Cathy: Enter test score 3 for Cathy: Enter test score 4 for Cathy: 
Enter the name of student 4: Enter test score 1 for David: Enter test score 2 for David: Enter test score 3 for David: Enter test score 4 for David: 
Enter the name of student 5: Enter test score 1 for Emma: Enter test score 2 for Emma: Enter test score 3 for Emma: Enter test score 4 for Emma: 
---------- Grade Book Report ----------
Student Name        Average        Letter Grade
---------------------------------------
Alice               91.25          A
Brian               81.25          B
Cathy               68.75          D
David               58.75          F
Emma                97.50          A