Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # include <cctype>
- # include <iomanip>
- # include <iostream>
- # include <string>
- # include <fstream>
- # include <cmath>
- using namespace std;
- void readfile(string,char[], int,int,int[]);
- void convert(string);
- void output(string,ifstream&,char[],double,double,double,int, int,int,int[],char,int&);
- void calcstats(int,double, double,double,int, int,int,int[],char,int&);
- int main()
- {
- string fname;
- int nums[60];
- int size = 0;
- int sum=0;
- int pmax=0;
- int pmin=0;
- double avg=0;
- char letter;
- char studname[60];
- ifstream outname;
- double variation=0;
- double stddev=0;
- string name;
- int sizep, sizec;
- int comps[60];
- int len;
- int count[0];
- int count2;
- int letterc;
- cout << " Enter file name for input? "<< endl;
- cin >> fname;
- cout << " Enter file name for output?" << endl;
- cin >> name;
- readfile(fname,studname,count2,len,nums); // reads the file
- calcstats(len,variation,stddev,avg,sum,pmax,pmin,count,letter,size); // main numbers
- output(fname,outname,studname, variation,stddev,avg,len,pmax,pmin, nums,letter,letterc);
- return 0;
- }
- void calcstats(int len,double variation, double stddev,double avg, int sum, int pmax, int pmin,int count[], char lettergrade,int& j)
- {
- pmin=0;
- avg=0;
- pmax = 0;
- for (int i = 0; i < len; i++)
- {
- if (i < pmin)
- pmin = i;
- if (pmax=i < i)
- pmax = i;
- for ( j=1; j <=count[i]; j++)
- if ( i >= 90 && i <= 100 )
- lettergrade = 'A';
- else
- if (i >= 80 && i <= 89 )
- lettergrade = 'B';
- else
- if ( i >= 70 && i <= 79 )
- lettergrade= 'C';
- if ( i >= 60 && i <= 69 )
- lettergrade='D';
- else
- if (i <= 60)
- lettergrade='F';
- }
- avg = (double)sum/(double)len;
- sum = 0;
- for (int k = 0; k < len; k++)
- sum += (k - avg)*(k - avg);
- variation = sum;
- stddev = sqrt(variation);
- }
- void convert(char firstname[])
- {
- for (int j=0;j<60; j++)
- {
- firstname[0]=toupper(firstname[0]);
- firstname[j]=tolower(firstname [j]);
- }
- void readfile(string fname,char name[], int count,int len, int numz[])
- {
- ifstream in;
- count=0;
- name[60];
- len = 0;
- int val;
- in.open(fname.c_str());
- in >> val;
- in >> name[len];
- numz[len]=val;
- ++len;
- while(!in.eof())
- {
- in >> val>> name[len];
- numz[len] = val;
- ++len;
- count++;
- }
- in.close();
- }
- void output(string fname,ifstream& name,char sname[], double variation,double stddev ,double avg,int max,int min, int len, int nums[], char lettergrade,int& letter) // output function to display everything from the readfile function
- {
- ofstream out;
- string studname;
- out.open(fname.c_str());
- out << "Thomas Castro section#1001 assignment11\n";
- out << " " << endl;
- out<< " name of inputfile" << name << endl;
- for (int i = 0; i < len; ++i)
- out << nums[i] << "\t"<< endl;
- int lettercount=nums[letter];
- convert(sname);
- out << "the high score of" << max << "was earned by"<< sname << endl;
- out << "The low score of "<<min << " was earned by" << sname << endl;
- out << "average: " << avg << endl;
- out << "variation: " << variation << endl;
- out << "stddev: " << stddev << endl;
- out << "Grade Distribution" << endl;
- out << " A" << " | " << lettercount << endl;
- out << " B" <<" | " <<lettercount << endl;
- out << " C" <<" | " << lettercount << endl;
- out << " D" <<" | " <<lettercount << endl;
- out << " F" << " | " <<lettercount << endl;
- out.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement