# COMP122 Lab 6 Lab Report and Source Code

You are to design a program that will allow some number of grades (up to a max of 100) to be input by the user. After the data has been collected, your program should calculate and output the mean and median of the collected data, as well as the sorted grade information.

Design Constraints

Use an integer constant of 100 to specify the number of elements in the array you will use to collect the grade information. Do not use any global variables in your program. Declare any arrays you need in your main function and pass the arrays as needed into the functions described below. The main function is the only function permitted to do any output to the console!!! Do not do cout operations inside of any other function. Your data collection loop in your main function must allow the user to enter less than 100 grades. It must also make sure that the user does not try to enter more than 100 grades. Each data value entered should be checked to make sure it is between 0 and 100. Any other value entered should be considered invalid and ignored (ie. not counted as a valid input and not stored in an array). Once the data is collected, the array and the number of grades collected must be passed to a function called mean. The mean function must loop through the values in the array, summing them together. The result of the function is the sum divided by the number of grades collected. The result must be returned from the mean function to the main function, where is it output in an appropriate manner (two digits after the decimal point). The main function should then pass the array and the number of grades collected to the median function. The median of a set of numbers is the number in the set where half the numbers are above it and half the numbers are below it. In order to find the median, this function will need to sort the original data. The simplest sorting procedure is called bubble sorting. The following pseudocode describes bubble sorting for X valid array elements.

for ; outer < X; outer++

for ; inner < X-1; inner++

if array[inner] array[inner+1]

swap(array[inner], array[inner+1]);

After the data has been sorted, the median value can be found. If the array has an odd number of elements the median is the value of the middle element (Hint: arraySize/2 is the middle element). If the array has an even number of elements then the median is the average of the middle two elements (Hint: arraySize/2 and ( arraySize/2) – 1 are the two middle elements). The median value should be returned by the median function. The main routine should output the median value in an appropriate manner. The main routine should also output the sorted array with 5 grades per line. Carefully develop test cases for your program. Most of your test cases do not need to contain lots of values. Make sure to include incorrect inputs such as negative grade values. Calculate what your mean and median values should be for your test cases. Document your test cases in a Word document. Run your test cases with your program to see if your program generates the expected output. If not, troubleshoot your program and fix the problem. When your program executes a test case correctly, take a screen shot of the program output and paste it into your Word document to prove that your test case executed correctly with your program. Make sure that your code is properly formatted! You also need to make sure you include a comment block for each function which documents the purpose, inputs, and outputs of each function!

Create a program using Visual C++.Net. Make sure to capture a screen shot of your program running your test cases! The best way to do this is to click on the console window you want to capture and then press the Alt and PrintScreen keys at the same time. Then paste your captured screen image into your Word document. Your Word document should contain your test cases, the screen shots documenting your test cases, followed by a copy of your source code.

Design Constraints

Use an integer constant of 100 to specify the number of elements in the array you will use to collect the grade information. Do not use any global variables in your program. Declare any arrays you need in your main function and pass the arrays as needed into the functions described below. The main function is the only function permitted to do any output to the console!!! Do not do cout operations inside of any other function. Your data collection loop in your main function must allow the user to enter less than 100 grades. It must also make sure that the user does not try to enter more than 100 grades. Each data value entered should be checked to make sure it is between 0 and 100. Any other value entered should be considered invalid and ignored (ie. not counted as a valid input and not stored in an array). Once the data is collected, the array and the number of grades collected must be passed to a function called mean. The mean function must loop through the values in the array, summing them together. The result of the function is the sum divided by the number of grades collected. The result must be returned from the mean function to the main function, where is it output in an appropriate manner (two digits after the decimal point). The main function should then pass the array and the number of grades collected to the median function. The median of a set of numbers is the number in the set where half the numbers are above it and half the numbers are below it. In order to find the median, this function will need to sort the original data. The simplest sorting procedure is called bubble sorting. The following pseudocode describes bubble sorting for X valid array elements.

for ; outer < X; outer++

for ; inner < X-1; inner++

if array[inner] array[inner+1]

swap(array[inner], array[inner+1]);

After the data has been sorted, the median value can be found. If the array has an odd number of elements the median is the value of the middle element (Hint: arraySize/2 is the middle element). If the array has an even number of elements then the median is the average of the middle two elements (Hint: arraySize/2 and ( arraySize/2) – 1 are the two middle elements). The median value should be returned by the median function. The main routine should output the median value in an appropriate manner. The main routine should also output the sorted array with 5 grades per line. Carefully develop test cases for your program. Most of your test cases do not need to contain lots of values. Make sure to include incorrect inputs such as negative grade values. Calculate what your mean and median values should be for your test cases. Document your test cases in a Word document. Run your test cases with your program to see if your program generates the expected output. If not, troubleshoot your program and fix the problem. When your program executes a test case correctly, take a screen shot of the program output and paste it into your Word document to prove that your test case executed correctly with your program. Make sure that your code is properly formatted! You also need to make sure you include a comment block for each function which documents the purpose, inputs, and outputs of each function!

Create a program using Visual C++.Net. Make sure to capture a screen shot of your program running your test cases! The best way to do this is to click on the console window you want to capture and then press the Alt and PrintScreen keys at the same time. Then paste your captured screen image into your Word document. Your Word document should contain your test cases, the screen shots documenting your test cases, followed by a copy of your source code.

You'll get a 96.0KB .DOC file.