CS 1511 - Sample Program 3 Code
Fall 2000
#include <stdio.h>
void Welcome() {
printf("This program calculates the average score for three students\n");
printf("based on four methods for combining their raw exam, homework,\n");
printf("program scores and their number of late days used. The\n");
printf("program will prompt you for these four values (in that order)\n");
printf("for each of the three students and then print their score\n");
printf("using each of the four schemes.\n\n");
}
void GetRawScores(int snum, int *exam, int *homework, int *program,
int *latedays) {
printf("Raw scores for Student %d: ",snum);
scanf(" %d %d %d %d",exam,homework,program,latedays);
fflush(stdin);
}
float CalcM1Score(int exam, int homework, int program, int latedays) {
return ((exam / 300.0) * 50.0 + (homework / 60.0) * 15.0 +
(program / 195.0) * 35.0);
}
float CalcM2Score(int exam, int homework, int program, int latedays) {
return ((exam / 300.0) * 70.0 +
((program / 195.0) * (1.0 - latedays * 0.1)) * 30.0);
}
float CalcM3Score(int exam, int homework, int program, int latedays) {
return ((exam / 300.0) * 100.0);
}
float CalcM4Score(int exam, int homework, int program, int latedays) {
return ((exam / 300.0) * 25.0 + (homework / 60.0) * 10.0 +
((program / 195.0) * (1.0 - latedays * 0.2)) * 65.0);
}
void CalcScores(int exam, int homework, int program, int latedays,
float *m1score, float *m2score, float *m3score, float *m4score) {
*m1score = CalcM1Score(exam,homework,program,latedays);
*m2score = CalcM2Score(exam,homework,program,latedays);
*m3score = CalcM3Score(exam,homework,program,latedays);
*m4score = CalcM4Score(exam,homework,program,latedays);
}
float CalcAverage(float s1score, float s2score, float s3score) {
return (s1score + s2score + s3score) / 3.0;
}
void PrintHeading() {
printf("\n--------------------------------------------------------------------\n");
printf("| Student | Exm | HW | Prg | L | Meth 1 | Meth 2 | Meth 3 | Meth 4 |\n");
printf("--------------------------------------------------------------------\n");
}
void PrintLine(int snum, int exam, int homework, int program, int latedays,
float m1score, float m2score, float m3score, float m4score) {
printf("| %7d | %3d | %2d | %3d | %1d | %6.2f | %6.2f | %6.2f | %6.2f |\n",
snum,exam,homework,program,latedays,m1score,m2score,m3score,m4score);
}
void PrintAverages(float m1avg, float m2avg, float m3avg, float m4avg) {
printf("--------------------------------------------------------------------\n");
printf("| Average | | %6.2f | %6.2f | %6.2f | %6.2f |\n",
m1avg,m2avg,m3avg,m4avg);
printf("--------------------------------------------------------------------\n");
}
int main () {
int s1exam, s1homework, s1program, s1latedays;
int s2exam, s2homework, s2program, s2latedays;
int s3exam, s3homework, s3program, s3latedays;
float s1m1, s1m2, s1m3, s1m4;
float s2m1, s2m2, s2m3, s2m4;
float s3m1, s3m2, s3m3, s3m4;
float Meth1Avg, Meth2Avg, Meth3Avg, Meth4Avg;
Welcome();
GetRawScores(1,&s1exam,&s1homework,&s1program,&s1latedays);
GetRawScores(2,&s2exam,&s2homework,&s2program,&s2latedays);
GetRawScores(3,&s3exam,&s3homework,&s3program,&s3latedays);
CalcScores(s1exam,s1homework,s1program,s1latedays,&s1m1,&s1m2,&s1m3,&s1m4);
CalcScores(s2exam,s2homework,s2program,s2latedays,&s2m1,&s2m2,&s2m3,&s2m4);
CalcScores(s3exam,s3homework,s3program,s3latedays,&s3m1,&s3m2,&s3m3,&s3m4);
Meth1Avg = CalcAverage(s1m1,s2m1,s3m1);
Meth2Avg = CalcAverage(s1m2,s2m2,s3m2);
Meth3Avg = CalcAverage(s1m3,s2m3,s3m3);
Meth4Avg = CalcAverage(s1m4,s2m4,s3m4);
PrintHeading();
PrintLine(1,s1exam,s1homework,s1program,s1latedays,s1m1,s1m2,s1m3,s1m4);
PrintLine(2,s2exam,s2homework,s2program,s2latedays,s2m1,s2m2,s2m3,s2m4);
PrintLine(3,s3exam,s3homework,s3program,s3latedays,s3m1,s3m2,s3m3,s3m4);
PrintAverages(Meth1Avg,Meth2Avg,Meth3Avg,Meth4Avg);
fflush(stdin);
printf("Press return to finish.\n");
getchar();
}