Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Write a C program that processes numbers, corresponding to student records read in from a file, and writes the required results to an output file

Write a C program that processes numbers, corresponding to student records read in from a file, and writes the required results to an output file (see main ( )). Your program should define the following functions:

double read_double (FILE *infile) Reads one double precision number from the input file. Note: You may assume that the file only contains real numbers.

int read_integer (FILE *infile) - Reads one integer number from the input file.

double calculate_sum (double number1, double number2, double number3, double number4, double number5) - Finds the sum of number1, number2, number3, number4, and number5 and returns the result.

double calculate_mean (double sum, int number) - Determines the mean through the calculation sum / number and returns the result. You need to check to make sure that number is not 0. If it is 0 the function returns -1.0 (we will assume that we are calculating the mean of positive numbers), otherwise it returns the mean.

double calculate_deviation (double number, double mean) - Determines the deviation of number from the mean and returns the result. The deviation may be calculated as number - mean.

double calculate_variance (double deviation1, double deviation2, double deviation3, double deviation4, double deviation5, int number) - Determines the variance through the calculation:

((deviation1)^2 + (deviation2)^2 + (deviation3)^2 + (deviation4)^2 + (deviation5)^2) / number

and returns the result. Hint: you may call your calculate_mean ( ) function to determine the result!

double calculate_standard_deviation (double variance) - Calculates the standard deviation as sqrt (variance) and returns the result. Recall that you may use the sqrt ( ) function that is found in math.h.

double find_max (double number1, double number2, double number3, double number4, double number5) Determines the maximum number out of the five input parameters passed into the function, returning the max.

double find_min (double number1, double number2, double number3, double number4, double number5) Determines the minimum number out of the five input parameters passed into the function, returning the min.

void print_double (FILE *outfile, double number) Prints a double precision number (to the hundredths place) to an output file.

A main ( ) function that does the following:

Opens an input file "input.dat" for reading;

Opens an output file "output.dat" for writing;

Reads five records from the input file (input.dat); You will need to use a combination of read_double ( ) and read_integer ( ) function calls here!

Calculates the sum of the GPAs;

Calculates the sum of the class standings;

Calculates the sum of the ages;

Calculates the mean of the GPAs, writing the result to the output file (output.dat);

Calculates the mean of the class standings, writing the result to the output file (output.dat);

Calculates the mean of the ages, writing the result to the output file (output.dat);

Calculates the deviation of each GPA from the mean (Hint: need to call calculate_deviation ( ) 5 times)

Calculates the variance of the GPAs

Calculates the standard deviation of the GPAs, writing the result to the output file (output.dat);

Determines the min of the GPAs, writing the result to the output file (output.dat);

Determines the max of the GPAs, writing the result to the output file (output.dat);

Closes the input and output files (i.e. input.dat and output.dat)

Expected Input File Format (real numbers only):

For this assignment you will be required to read five records from the "input.dat" file. Each record will have the following form:

Student ID# (an 8 digit integer number)

GPA (a floating-point value to the hundredths place)

Class Standing (1 - 4, where 1 is a freshmen, 2 is a sophomore, 3 is a junior, and 4 is a senior --> all integers)

Age (a floating-point value)

Example data for 1 student record in the file could be as follows:

12345678

3.78

3

20.5

IV. Expected Results:

The following sample session demonstrates how your program should work.

Assuming input.dat stores the following records:

12345678

3.78

3

20.5

87654321

2.65

2

19.25

08651234

3.10

1

18.0

11112222

3.95

4

22.5

22223234

2.45

3

19.3333

Your program should write the following to output.dat: NOTE: you only need to output the numbers, the text is for demonstration purposes only.

3.19 -- GPA Mean

2.60 -- Class Standing Mean

19.92 -- Age Mean

0.60 -- GPA Standard Deviation

2.45 -- GPA Min

3.95 -- GPA Max

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Introductory Relational Database Design For Business With Microsoft Access

Authors: Jonathan Eckstein, Bonnie R. Schultz

1st Edition

1119329418, 978-1119329411

Students also viewed these Databases questions