Code:
#include <stdio.h>
#define MAXRECORDS 4
struct record
{
char gender;
int age;
int lead;
};
void read_file(struct record rec[]);
void calculations(int c[], struct record rec[]);
void print_report(int c[], struct record rec[]);
int main()
{
int c[36] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
struct record rec[MAXRECORDS];
read_file(rec);
calculations(c, rec);
print_report(c, rec);
}
void read_file(struct record rec[])
{
FILE *fpin;
int i;
fpin = fopen("custsurvey.dat", "r");
if(fpin == NULL)
{
printf("Error opening file");
}
else
{
for(i = 0; i < MAXRECORDS; i++)
fscanf(fpin, " %c %d %d", &rec[i].gender, &rec[i].age, &rec[i].lead);
}
fclose(fpin);
return;
}
void calculations(int c[], struct record rec[])
{
int i = 0;
while(i < MAXRECORDS)
{
if((rec[i].gender = 'F') && (rec[i].age < 25) && (rec[i].lead == 1))
{
c[0]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 1))
{
c[1]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age > 40) && (rec[i].lead == 1))
{
c[2]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age < 25) && (rec[i].lead == 2))
{
c[3]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 2))
{
c[4]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age > 40) && (rec[i].lead == 2))
{
c[5]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age < 25) && (rec[i].lead == 3))
{
c[6]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 3))
{
c[7]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age > 40) && (rec[i].lead == 3))
{
c[8]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age < 25) && (rec[i].lead == 4))
{
c[9]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 4))
{
c[10]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age > 40) && (rec[i].lead == 4))
{
c[11]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age < 25) && (rec[i].lead == 5))
{
c[12]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 5))
{
c[13]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age > 40) && (rec[i].lead == 5))
{
c[14]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age < 25) && (rec[i].lead == 6))
{
c[15]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 6))
{
c[16]++;
i++;
}
else if((rec[i].gender = 'F') && (rec[i].age > 40) && (rec[i].lead == 6))
{
c[17]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age < 25) && (rec[i].lead == 1))
{
c[18]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 1))
{
c[19]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age > 40) && (rec[i].lead == 1))
{
c[20]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age < 25) && (rec[i].lead == 2))
{
c[21]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 2))
{
c[22]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age > 40) && (rec[i].lead == 2))
{
c[23]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age < 25) && (rec[i].lead == 3))
{
c[24]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 3))
{
c[25]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age > 40) && (rec[i].lead == 3))
{
c[26]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age < 25) && (rec[i].lead == 4))
{
c[27]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 4))
{
c[28]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age > 40) && (rec[i].lead == 4))
{
c[29]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age < 25) && (rec[i].lead == 5))
{
c[30]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 5))
{
c[31]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age > 40) && (rec[i].lead == 5))
{
c[32]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age < 25) && (rec[i].lead == 6))
{
c[33]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 6))
{
c[34]++;
i++;
}
else if((rec[i].gender = 'M') && (rec[i].age > 40) && (rec[i].lead == 6))
{
c[35]++;
i++;
}
}
return;
}
void print_report(int c[], struct record rec[])
{
FILE *fpout;
fpout = fopen("surveyreport.txt", "w");
if(fpout == NULL)
{
printf("Error opening file");
}
else
{
fputs(" CUSTOMER SURVEY REPORT\n", fpout);
fputs(" ======================\n", fpout);
fputs(" FEMALES MALES\n", fpout);
fputs(" ======================= =======================\n", fpout);
fputs(" younger range older younger range older\n", fpout);
fputs(" than 25 25 - 40 than 40 than 25 25 - 40 than 40\n", fpout);
fputs(" LEAD TYPE ======================= ======================= TOTAL\n", fpout);
fputs(" ========= =====\n\n", fpout);
fprintf(fpout," REPEAT %3d %3d %3d %3d %3d %3d\n\n", c[0], c[1], c[2], c[18], c[19], c[20]);
fprintf(fpout,"TELEVISION AD %3d %3d %3d %3d %3d %3d\n\n", c[3], c[4], c[5], c[21], c[22], c[23]);
fprintf(fpout," NEWSPAPER AD %3d %3d %3d %3d %3d %3d\n\n", c[6], c[7], c[8], c[24], c[25], c[26]);
fprintf(fpout," RADIO AD %3d %3d %3d %3d %3d %3d\n\n", c[9], c[10], c[11], c[27], c[28], c[29]);
fprintf(fpout,"WORD OF MOUTH %3d %3d %3d %3d %3d %3d\n\n", c[12], c[13], c[14], c[30], c[31], c[32]);
fprintf(fpout," OTHER %3d %3d %3d %3d %3d %3d\n\n", c[15], c[16], c[17], c[33], c[34], c[35]);
}
}