Program #2 This problem is a modification of Problem 24 on page 302 of the Gaddi
ID: 3700696 • Letter: P
Question
Program #2 This problem is a modification of Problem 24 on page 302 of the Gaddis text with two small additions. (A scan of this problem can be found on the last page of the assignment.) In this assignment, your program will read in a list of random numbers from an input file, random.txt (found on eLearning in the "Homework Input Files" folder), and calculate the following statistics on those numbers: A. B. C. D. E. F. The number of numbers in the file The sum of the numbers in the file The average of the numbers in the file The largest number in the file The smallest number in the file The second largest number in the file CS1336 - Programming Fundamentals Page: 4 G. The second smallest number in the file Your program should then print out a report, similar to the following (note that these are demonstration numbers only; they are not accurate for the homework data file) Number of numbers Sum of numbers: Average of numbers: Largest number: Smallest number: Second largest number: Second smallest number: 235 5346 22.8 515 512 7 rogramming Notes: 1. Note that the number of numbers, the sum of the numbers, the largest and smallest numbers are integers, whereas the average should be a floating point data type printed to one decimal place 2. All of the numbers in the file are between 0 and 1000. Therefore, the minimum value can be found by using the following technique a. Create an int variable minValue and initialize it to some number larger than any number in the file, say 2000Explanation / Answer
SourceCode:
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
//Declariong variables
int totNos = 0, sumOfNos = 0, largest = 0, smallest = 9999, secondLargest = 0,
secondSmallest = 9999;
double average;
int num;
// defines an input stream for the data file
ifstream dataIn;
// Opening the input file
dataIn.open("D: andom.txt");
if (dataIn.fail())
{
cout << "File Not found" << endl;
return 1;
}
else
{
while (dataIn >> num)
{
//counting the numbers in the file
totNos++;
}
dataIn.close();
/* crearting an array based
* on the total numbers in the file
*/
int nos[totNos];
dataIn.open("D: andom.txt");
/* Reading the numbers from the file
* and populate them into an array
*/
for (int i = 0; i < totNos; i++)
{
dataIn >> num;
nos[i] = num;
}
dataIn.close();
//calculating the sum of numbers in the file
for (int i = 0; i < totNos; i++)
{
sumOfNos += nos[i];
}
//calculating the average of numbers in the file
average = (double)sumOfNos / totNos;
//finding the largest and smallest numbers in the file
for (int i = 0; i < totNos; i++)
{
if (largest < nos[i])
largest = nos[i];
if (smallest > nos[i])
smallest = nos[i];
}
/* Finding the second largest and
* second smallest numbers in the file
*/
for (int i = 0; i < totNos; i++)
{
if (secondLargest < nos[i] && nos[i] != largest)
secondLargest = nos[i];
if (secondSmallest > nos[i] && nos[i] != smallest)
secondSmallest = nos[i];
}
// Setting the precision to one decimal point
cout << setprecision(1) << fixed << showpoint;
//Displaying the output.
cout <<setw(20) << "The Number of numbers :" << totNos << endl;
cout <<setw(20)<< "The sum of numbers in the file :" << sumOfNos << endl;
cout <<setw(20)<< "The Average of numbers in the file :" << average << endl;
cout <<setw(20)<< "The Largest number in the file :" << largest << endl;
cout <<setw(20)<< "The Smallest number in the file :" << smallest << endl;
cout <<setw(20)<< "The Second Largest number in the file :" << secondLargest << endl;
cout <<setw(20)<< "The Second Smallest number in the file :" << secondSmallest << endl;
}
return 0;
}
Note:
randomm.txt should be saved in D rive directly
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.