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

I\'m having some problems with this one. Can someone help me out? Here\'s the as

ID: 3542683 • Letter: I

Question

I'm having some problems with this one. Can someone help me out? Here's the assignment:

You are working for a company that collects sales data every day. Your boss wants a simple

report on the daily data.

The data file is straightforward. Each file is contains a list of sales amounts one to a line. For example, the filesampledata_1.txt has this data:

42.13

33.76

87.86

21.35

96.49

98.58

Based on this data, there were 6 sales on the day this file represents. Since different days have different numbers of sales, each data file has different lengths. Your boss has provided 4 sample data files and told you the number of records in each file:

FILE NUM RECORDS

salesdata_1.txt 6 salesdata_2.txt 67 salesdata_3.txt 68

salesdata_4.txt 93

When you process a file, your boss wants the report sent to the file report.txt. The

information that should be in that file is:


Explanation / Answer

// Tell if you have any problem in this answer before rating



#include<iostream>

#include<fstream>

#include<iomanip>


using namespace std;


int getMenu() {


int choice;

do {

cout<<"Enter 1 to process sales data Enter 2 to quit " <<endl;


cout<<"choice : ";


cin>>choice;


if(choice >=1 && choice <=2) {

break;

} else {


cout<< "invalid choice "<<endl;

}


}while (1);


return choice;

}


char* getFilename() {


char* filename = new char[80];

cout<<"Filename to process: ";

cin>>filename;


return filename;

}


int* getRecordCount (char * filename) {


int* n = new int;

cout<<"How many records in "<<filename << " : " ;

cin>>*n;

return n;

}


double* readSales(char *filename, int * n) {


ifstream in(filename);


if(in) {


double *data = new double[*n];


for(int i=0; i < *n; i++) {

in>>data[i];

}


return data;


in.close();


} else {


return NULL;

}

}


double findHighestSale (double *data , int *n) {


double highestSale = data[0] ;

for(int i=0; i<*n; i++) {


if(highestSale < data[i])

highestSale = data[i];

}


return highestSale;

}



double findLowestSale (double *data , int *n) {


double lowestSale = data[0] ;

for(int i=0; i<*n; i++) {


if(lowestSale < data[i])

lowestSale = data[i];

}


return lowestSale;

}


double findTotalSale (double *data , int *n) {


double totalSale=0;

for(int i=0; i<*n; i++) {


totalSale += data[i];

}


return totalSale;

}


double findAverageSale (double *data , int *n) {


double average = findTotalSale(data, n) / *n;


return average;

}


int findSalesAbove$50 ( double *data , int *n) {


int count = 0;

for(int i=0; i<*n; i++) {

if(data[i] > 50) {

count++;

}

}


return count;


}


void generateReport (char *filename , double *data , int *n) {


ofstream out("D: eport.txt");


out<<setw(20)<<left<<"Filename :"<<setw(20)<<right<<filename <<endl;


out<<setw(20)<<left<<"Highest sale :"<<setw(20)<<right<<findHighestSale(data,n)<<endl;


out<<setw(20)<<left<<"Lowest sale :"<<setw(20)<<right<<findLowestSale(data,n)<<endl;


out<<setw(20)<<left<<"Total sale :"<<setw(20)<<right<<findTotalSale(data,n)<<endl;


out<<setw(20)<<left<<"Average sale :"<<setw(20)<<right<<findAverageSale(data,n)<<endl;


out<<setw(20)<<left<<"Sales above $50 :"<<setw(20)<<right<<findSalesAbove$50(data,n)<<endl;


out.close();


}


int main() {


char *filename =NULL;

int *n = NULL; // no of records

double *data =NULL;


do {

int choice =getMenu();


if(choice ==1 ){


filename=getFilename();


n=getRecordCount(filename);


data=readSales(filename,n);


if(data!=NULL) {

generateReport(filename,data,n);


cout<<"Done Processing "<< filename <<endl<<endl;

}

} else {

break;

}


}while(1);


return 0;

}



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