Finally, line 52 in member function processGrades
calls member function outputBarChart
to print a distribution chart of the grade data using a technique similar to that in Fig. 7.9. In that example, we manually calculated the number of grades in each category (i.e., 0–9, 10–19, ..., 90–99 and 100) by simply looking at a set of grades. In this example, lines 110–111 use a technique similar to that in Fig. 7.10 and Fig. 7.11 to calculate the frequency of grades in each category. Line 107 of Fig. 7.16 declares and creates array frequency
of 11 unsigned int
s to store the frequency of grades in each grade category. For each grade
in array grades
, lines 110–111 increment the appropriate element of the frequency array
. To determine which element to increment, line 111 divides the current grade
by 10 using integer division. For example, if grade
is 85
, line 111 increments frequency[8]
to update the count of grades in the range 80–89. Lines 114–129 next print the bar chart (see Fig. 7.17) based on the values in array frequency
. Like lines 28–29 of Fig. 7.9, lines 125–126 of Fig. 7.16 use a value in array frequency
to determine the number of asterisks to display in each bar.