Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a program that uses statistical data about the number of movies college st

ID: 3622904 • Letter: W

Question


Write a program that uses statistical data about the number of movies college students see in a month. The program should perform the following steps:

a) Open an input file and read the number of students surveyed. An array of integers with this many elements should then be dynamically allocated
b)Read the statistics that list number of movies each student watched in a month.
c) Calculate and display the average, median, and mode of the values entered. (a description of each is below. You will have to sort the values)

input validation: do not accept negative numbers for input
Output should go to a file. The file should look like the following:

"Statistics for Movie Viewing of College Students"
January 2011

Total Students Surveyed: j

Average: x.x
Median: y.y
Mode: z.z

The Average is the sum of the values divided by the number of values

The Median is the middle value of a list of values after they are sorted. If the set contains and even number of elements, the median is the average of the two middle values

The Mode is the value that occurs the most (with greatest frequency) in a list of values

Explanation / Answer

please rate - thanks


#include <iostream>
using namespace std;
void getinfo(int*, int);
void sort(int *, int);
double average(int*, int);
double median(int*, int);
int   get_mode(int*, int);
int main()
{ int*array;  
   int num;      
   int mode,i,range;
    float avg;
    cout<<"enter number of students? ";
    cin>>num;
   while(num<=0)
    {cout<<"Invalid Entry ";
    cout<<"enter number of students? ";
    cin>>num;
    }
array=new int[num];
      getinfo(array, num);
   cout<<" The array is: ";
   for(i=0;i<num;i++)
       cout<<"student "<<i+1<<" saw "<<*(array+i)<<" movies. ";
   sort(array, num);
   cout<<"the median is "<<median(array, num) << endl;
   cout<<"the average is "<<average(array, num) << endl;
   mode=get_mode(array, num);
   if(mode<0)
         cout<<"There is no mode. ";
   else
         cout<<"The mode is " << mode << endl;
delete [] array;
system("pause");
return 0;
}
void getinfo(int *a, int n)
{int i;
   for(i=0;i<n;i++)
      {cout<<"How many movies did student "<<(i+1)<< " see? ";
       cin >> *(a+i);
        while(*(a+i)<0)          
         {cout<<"Invalid entry, must be >= 0 ";
         cout<<"How many movies did student "<<(i+1)<< " see? ";
          cin>>*(a+i);
          }
      }
}
double average(int *a, int num)
{ int tot=0,i;
   double avg;
   for(i=0;i<num; i++)
       tot+=*(a+i);
   avg=(double)tot/num;
   return avg;
}

void sort(int *a, int n)
{ int i,j,t;
for(i=0;i<n-1;i++)
     for(j=i;j<n;j++)
        if(*(a+i)>*(a+j))
           {t=*(a+i);
           *(a+i)=*(a+j);
           *(a+j)=t;
           }
}
double median(int* a, int n)
{ int m1,m2;
   if (n%2==0)
        {m1=n/2;
         m2=(n/2)-1;
         return((*(a+m1)+*(a+m2))/2.);
        }
   else
        
   return *(a+(n/2));
}
int get_mode(int* a, int n)
{
   int* count,most,index,i,j;
   count= new int[n];
   for (i= 0;i< n;i++)
         count[i] = 0;
   for(i=0;i<n;i++)
      {for(j=0;j<n;j++)
           {if(*(a+j)==*(a +i))
              (*(count+i))++;
            }
      }
   most=*count;
   index=0;
   for (i=1;i<n;i++)
      {if (*(count+i) >most)
      {most=*(count+i);
       index=i;
      }
   }
   if (most == 1)
         return -1;
   else
         return *(a+index);
}



Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote