CSE 232 Spring 2012 Computer Project #5 -- Records and Arrays Assignment Overview: This assignment focuses on the design, implementation and testing of C++ programs which process data sets using records and arrays. You will develop the C++ functions which constitute a program to process a set of data values, as described below. It is worth 50 points (5% of course grade), and must be completed no later than 11:59 PM on Thursday, February 23. Assignment Specifications: 1) The program will input and process a data set representing information about the students enrolled in a course. The data set will include the following information for each student: Student identification number (unsigned integer) Quiz #1 score (integer) Quiz #2 score (integer) Quiz #3 score (integer) Quiz #4 score (integer) Student identification numbers will range from 10000 to 99999 (inclusive). Quiz scores will range from 0 to 50 (inclusive); a quiz score of -1 will indicate that the score is missing and should not be included in any calculations. A valid data set will contain from 1 to 20 student records. For example, one valid data set might appear as follows: 10000 45 41 48 50 10015 50 37 -1 42 10009 34 42 39 33 The program will use a record to represent the information about one student, and an array of records to represent the information about all students. 2) The program will perform appropriate error checking: if the data set is not valid, the program will display an appropriate message and halt. A data set is not valid if it contains an invalid number of student records, or if any of the student identification numbers are invalid. 3) The program will display a table of information about the data set. For each student, the program will display one line which contains the following: Student identification number All four quiz scores for that student Average quiz score for that student The information in the table will be aligned in columns (with column headers), and the average quiz score will be displayed with one decimal place of accuracy. 4) The program will display a summary about the data set. For each of the four quizzes, the program will display the following information: a. The average of the scores on that quiz b. The standard deviation of the scores on that quiz c. The high score on that quiz d. The identification number of each student with the high score e. The low score on that quiz f. The identification number of each student with the low score Each of the items above will appear on a line by itself and will be labeled appropriately. All of the information about Quiz #1 will appear before the information about Quiz #2, the information about Quiz #2 will appear before the information about Quiz #3, and so on. All floating point values in the summary will be displayed with two decimal places of accuracy. 5) The program will be designed to accept input from a file using input redirection on the command line. Assignment Deliverables: The deliverables for this assignment include the following: proj05.makefile -- your makefile which produces "proj05" proj05.*.cpp -- the source code file(s) for your solution proj05.*.h -- the interface file(s) for your solution Be sure to use the specified file names, and to submit your files for grading via the "handin" program. Assignment Notes: 1) The focus of this project is on the use of records and arrays, rather than more complex data structures. You may not use any of the containers from the Standard Template Library, such as the Vector class template. 2) Use the following definitions for this project: a. The average of a set of values is defined as the arithmetic mean of all elements in the set. b. The variance of a set of values is defined as the arithmetic mean of the squares of the deviations of the set elements from the arithmetic mean of the data set. c. The standard deviation of a data set is defined as the square root of the variance of that data set. 3) You may assume that all four quiz scores appear for each student in each record (although some of the scores may be -1 to indicate a missing score). 4) You will execute your program using input redirection: proj05 < data_file where "proj05" is the name of your executable program and "data_file" is the name of a file containing a data set.