45.6k views
2 votes
Write a program that will open the file random.txt and calculate and display the following: A. The number of numbers in the file. B. The sum of all the numbers in the file. C. The average of all the numbers in the file. You must determine how many numbers are in the file by searching for the end of the list of numbers. You are not allowed to hard code the expected number of numbers into your code. The file random.txt is located in the Lab 4 Canvas Module. Here is the result you should get: Number of numbers: 200 Sum of the numbers: 105527 Average of the numbers: 527.635

1 Answer

3 votes

Answer:

Here is the C++ program:

#include <iostream> //to use input output functions

#include <fstream> //to manipulate files

using namespace std; //to identify objects like cin cout

int main(){ //start of main function

ifstream file; //creates an object of ifstream

file.open("random.txt"); //open method to open random.txt file using object file of ifstream

int numCount = 0; //to store the number of all numbers in the file

double sum = 0; //to store the sum of all numbers in the file

double average = 0.0; //to store the average of all numbers in the file

int number ; //stores numbers in a file

if(!file){ //if file could not be opened

cout<<"Error opening file!\\"; } //displays this error message

while(file>>number){ //reads each number from the file till the end of the file and stores into number variable

numCount++; //adds 1 to the count of numCount each time a number is read from the file

sum += number; } //adds all the numbers and stores the result in sum variable

average = sum/numCount; //divides the computed sum of all numbers by the number of numbers in the file

cout<<"The number of numbers in the file: "<<numCount<<endl; //displays the number of numbers

cout<<"The sum of all the numbers in the file: "<<sum<<endl; //displays the sum of all numbers

cout<<"The average of all the numbers in the file: "<< average<<endl; //displays the average of all numbers

file.close(); } //closes the file

Step-by-step explanation:

Since the random.txt is not given to check the working of the above program, random.txt is created and some numbers are added to it:

35

48

21

56

74

93

88

109

150

16

while(file>>number) statement reads each number and stores it into number variable.

At first iteration:

35 is read and stored to number

numCount++; becomes

numCount = numCount + 1

numCount = 1

sum += number; this becomes:

sum = sum + number

sum = 0 + 35

sum = 35

At second iteration:

48 is read and stored to number

numCount++; becomes

numCount = 1+ 1

numCount = 2

sum += number; this becomes:

sum = sum + number

sum = 35 + 48

sum = 83

So at each iteration a number is read from file, the numCount increments to 1 at each iteration and the number is added to the sum.

At last iteration:

16 is read and stored to number

numCount++; becomes

numCount = 9 + 1

numCount = 10

sum += number; this becomes:

sum = sum + number

sum = 674 + 16

sum = 690

Now the loop breaks and the program moves to the statement:

average = sum/numCount; this becomes:

average = 690/10;

average = 69

So the entire output of the program is:

The number of numbers in the file: 10 The sum of all the numbers in the file: 690 The average of all the numbers in the file: 69

The screenshot of the program and its output is attached.

Write a program that will open the file random.txt and calculate and display the following-example-1
User Chris Gillum
by
5.3k points