COSC 1010 Introduction to Software Problem Solving

Fall 2010

Homework Assignment #3

"Aw, people can come up with statistics to prove anything...
Forfty percent of people know that."
-- Homer Simpson, Homer The Vigilante
Due: Wednesday, September 22nd, 11:00am CDT
Submit: Turn in your "Project3.java" using the D2L Dropbox, as instructed in Lab.
Work may be completed in teams of two. The names of both partners must appear in a comment block at the top of your file for credit to be given.

Grade Statistics

Storing and manipulating a database of grades takes a lot of work. However, computers excel at the tedious computations necessary to characterize simple lists of numbers.

Write a program that prompts for a list of integer grades (0 - 100, inclusive). When the list is entered, print out the following statistics: total grades, the breakdown of grades by letter (both count and percentage), the highest and lowest grades in the list, and the class average.

Example Runs

In the examples below, I use text in blue to distinguish the output of the program from the input I typed. This is for purpose of clarity only; your program will not print text in different colors.

Example #1

Project 3 - Grade Statistics
Please enter a list of grades (0-100):

55 65 75 85 95 -1
Total number of grades = 5
Number of A's = 1 (20%)
Number of B's = 1 (20%)
Number of C's = 1 (20%)
Number of D's = 1 (20%)
Number of F's = 1 (20%)
Highest grade = 95
Lowest grade = 55
Class average = 75

Example #2

Project 3 - Grade Statistics
Please enter a list of grades (0-100):

90 91 94
97 100 -1

Total number of grades = 5
Number of A's = 5 (100%)
Number of B's = 0 (0%)
Number of C's = 0 (0%)
Number of D's = 0 (0%)
Number of F's = 0 (0%)
Highest grade = 100
Lowest grade = 90
Class average = 94

Example #3

Project 3 - Grade Statistics
Please enter a list of grades (0-100):

-1
Total number of grades = 0

Notes

  • Note that the list is completed when either the end-of-file marker is reached (Ctrl-D or Ctrl-Z, depending on your system,) or when a grade is entered that is out of range, (like -1).
  • If the list is empty, print only the total, and skip the other lines of output. This avoids meaningless highs and lows, or division by zero when calculating the average or the precentages.
  • Letter grade breakdowns follow the same scheme as this course: 90% and above is an 'A', 80% and above is a 'B', 70% and above is a 'C', 60% and above is a 'D'. Below 60% is an 'F'.
  • All calculations for this assignment should be performed with integer precision; please do not use float or double type variables, or you will get different answers from mine.
  • It is not necessary to store the list of grades to complete this assignment. Each of the statistics required can be calculated simply by examining the next grade in the sequence and updating the relevant counts and totals. For those of you with more advanced experience, it would be needlessly complex to store all of the grades in an array or some other data structure.
  • The Professor has provided a reference implementation for you to compare against. Login to Morbius.mscs.mu.edu, run cd ~brylow/cosc1010/Demos/, and then run java Project3.

  • Back
    [Revised 2010 Sep 15 11:30 DWB]