In my function HighTotoalSales i want to print the
highest average sale along with the saleperson who
made it....i can't seem to pass highsalnum and high
into the ReportFile function...this made be something obvious
that i'm just not getting...can anybody give me some help???
/CODE STARTS HERE//
#include <stdio.h>
#define MAXSALESPERSON 5
void ProcessData( int salefilenum, float saleamt, int salesnum[], float salesamt[], int numofsales[]);
void ReportFile(int salesnum[], float salesamt[], int numofsales[], float totalsales, int totalsalesnum, float AverageSale, float persaleavg[], int highsalnum, float high);
void ErrorData(int salefilenum);
float Average(float totalsales, int totalnumsales);
float CalcTotalSales(float salesamt[]);
int CalcTotalNumSales(int numofsales[]);
float TotalPerSalePerson (int numofsales[], float salesamt[], float persaleavg[]);
float HighTotSale(float salesamt[], int salesnum[]);
/*void ErrorSales(float AverageSales); */
main()
{
FILE *salefile_ptr;
int salefilenum;
float saleamt;
int i;
float AverageSale;
float totalsales;
int totalnumsales;
int highsalnum;
float high;
int salesnum[MAXSALESPERSON] = {0};
float salesamt[MAXSALESPERSON] = {0};
int numofsales[MAXSALESPERSON] = {0};
float persaleavg[MAXSALESPERSON] = {0};
/* salefile_ptr = fopen("sales.txt", "r");a */
salefile_ptr = fopen("sales.txt", "r");
if(salefile_ptr != NULL)
{
while(fscanf(salefile_ptr, "%d %f", &salefilenum, &saleamt) != EOF)
{
ProcessData(salefilenum, saleamt, salesnum, salesamt, numofsales);
TotalPerSalePerson(numofsales,salesamt, persaleavg);
totalsales = CalcTotalSales(salesamt);
totalnumsales = CalcTotalNumSales(numofsales);
AverageSale = Average(totalsales, totalnumsales);
HighTotSale(salesamt, salesnum);
ReportFile(salesnum, salesamt, numofsales, totalsales, totalnumsales, AverageSale, persaleavg, highsalnum, high);
}
fclose(salefile_ptr);
}
else
printf("\nReport file not opened!\n");
printf("\nEnd of job..\n\n");
}
void ProcessData( int salefilenum, float saleamt, int salesnum[], float salesamt[], int numofsales[])
{
int num;
if ( (salefilenum > MAXSALESPERSON) || (salefilenum <= 0) )
{
ErrorData(salefilenum);
}
else
{
salesnum[salefilenum - 1] = salefilenum;
salesamt[salefilenum -1] += saleamt;
numofsales[salefilenum - 1] += 1;
}
}
float TotalPerSalePerson (int numofsales[], float salesamt[], float persaleavg[])
{
int num;
for(num = 0; num < MAXSALESPERSON; num++)
{
persaleavg[num] = salesamt[num]/numofsales[num];
}
}
void ReportFile(int salesnum[], float salesamt[], int numofsales[], float totalsales, int totalnumsales, float AverageSale, float persaleavg[], int highsalnum, float high )
{
int j;
FILE *reportfile_ptr;
reportfile_ptr = fopen("report.txt", "w");
fprintf(reportfile_ptr, "\t\t\tMelissa Clark");
fprintf(reportfile_ptr, "\n\n\t\tCompany Fiscal Totals\n\n");
fprintf(reportfile_ptr, "Num of Total Num of Total Amount of Company Avg \n");
fprintf(reportfile_ptr, "Salespeople Company Sales Sales \tSale\n");
fprintf(reportfile_ptr, "-----------------------------------------------------------\n");
fprintf(reportfile_ptr, " %d\t\t %d \t$%2.2f\t$%2.2f\n", MAXSALESPERSON, totalnumsales, totalsales, AverageSale);
fprintf(reportfile_ptr, "\n\n\t\tBreakout by each SalesPerson's Performance\n\n");
fprintf(reportfile_ptr, "SalesPerson # Num of Sales Total Sales \tAverage Sale \n");
fprintf(reportfile_ptr, "-------------------------------------------------------------\n");
for (j = 0; j < MAXSALESPERSON; j++)
{
fprintf(reportfile_ptr, " %d\t\t %d\t\t$%2.2f \t\t$%2.2f\n", salesnum[j], numofsales[j], salesamt[j], persaleavg[j]);
}
fprintf(reportfile_ptr, "\nSaleperson %d has the highest sale average of %2.1f\n", highsalnum, high);
fclose(reportfile_ptr);
}
void ErrorData(int salefilenum)
{
FILE *Error_ptr;
Error_ptr = fopen("err_report.txt", "w");
fprintf(Error_ptr, "%d is out of range\n", salefilenum);
fclose(Error_ptr);
}
/*void ErrorSales(float AverageSales)
{
FILE *ErrorSale_ptr;
ErrorSale_ptr = fopen("err_sale_report.txt", "w");
fprintf(ErrorSale_ptr, "0 number of salesman. Returning %f average\n", AverageSales);
fclose(ErrorSale_ptr);
}
*/
float CalcTotalSales(float salesamt[])
{
int num;
float totalsales;
totalsales = 0;
for(num =0; num <MAXSALESPERSON; num++)
{
totalsales += salesamt[num];
}
return totalsales;
}
int CalcTotalNumSales(int numofsales[])
{
int num;
int totalnumsales;
totalnumsales = 0;
for(num = 0; num < MAXSALESPERSON; num++)
{
totalnumsales += numofsales[num];
}
return totalnumsales;
}
float Average(float totalsales, int totalnumsales)
{
float AverageSale;
AverageSale = totalsales/totalnumsales;
return AverageSale;
}
float HighTotSale(float salesamt[], int salesnum[])
{
int num;
int highsalnum;
float high;
high = salesamt[0];
for(num = 1; num < MAXSALESPERSON; num++)
if (salesamt[num] > high)
{
highsalnum = salesnum[num];
high = salesamt[num];
}
ReportFile(highsalnum high);
}
//CODE ENDS HERE//