int main(int argc, char *argv[]) { int EXAMS_TOTAL = 2; FILE * fin = NULL; char * name = NULL; double weightedAvg, gpa; int assignmentsTotal, labsTotal, quizzesTotal; int * assignments = NULL, *labs = NULL, *quizzes = NULL, exams[EXAMS_TOTAL], finalExam; double assignmentsPercentage, labsPercentage, quizzesPercentage, examsPercentage, finalPercentage; if(argc == 2) fin = openFileNoPrompt(argv[1]); do { if(fin == NULL) fin = openFilePrompt(); name = readName(fin); assignments = createAndFillArray(&assignmentsTotal, fin); labs = createAndFillArray(&labsTotal, fin); quizzes = createAndFillArray(&quizzesTotal, fin); fillArray(exams, fin); finalExam = readFinalScore(fin); fclose(fin); fin = NULL; assignmentsPercentage = calculatePercentage(assignments, assignmentsTotal, 100, .25); labsPercentage = calculatePercentage(labs, labsTotal, 50, .20); quizzesPercentage = calculatePercentage(quizzes, quizzesTotal, 25, .05); examsPercentage = calculatePercentage(exams, EXAMS_TOTAL, 100, .30); finalPercentage = calculatePercentage(&finalExam, 1, 200, .20); displayCategoryPercentage(assignmentsPercentage, labsPercentage, quizzesPercentage, examsPercentage, finalPercentage); weightedAvg = calcWeightedAvg(assignmentsPercentage, labsPercentage, quizzesPercentage, examsPercentage, finalPercentage); gpa = calcGPA(weightedAvg); displayGrade(name, weightedAvg, gpa); clean(name); cleanUp(assignments); cleanUp(labs); cleanUp(quizzes); assignments = labs = quizzes = NULL; name = NULL; }while(goAgain()); return 0; }// end main
/* * ----------------------------------------------------------------------------- * Main * ----------------------------------------------------------------------------- */ int32_t main(int32_t aArgc, char *aArgv[]) { perfContext sContext; struct timeval sStart, sEnd; int32_t sSeconds, sUseconds; uint32_t *sArray; /* * Init */ perfContextInit(&sContext); processArg(aArgc, aArgv, &sContext); /* * Allocate memory and load data */ (void)fprintf(stderr, "Reading data...\n"); createAndFillArray(&sContext); sArray = sContext.mArrayToSort; /* * Sort it! */ (void)fprintf(stderr, "Start sorting...\n"); (void)gettimeofday(&sStart, NULL); (*sContext.mSortFunc)(sArray, sContext.mCount, sizeof(uint32_t), compareFunc); (void)gettimeofday(&sEnd, NULL); (void)fprintf(stderr, "Completed sorting.\n"); /* * Calculate time */ sSeconds = sEnd.tv_sec - sStart.tv_sec; sUseconds = sEnd.tv_usec - sStart.tv_usec; if (sUseconds < 0) { sSeconds--; sUseconds += 1000000; } (void)fprintf(stderr, "\nIt took %d.%06d seconds to sort %d elements.\n\n", sSeconds, sUseconds, sContext.mCount); /* * Verify if option is set */ if (sContext.mDoVerify == 1) { (void)fprintf(stderr, "Checking if resulting array is correctly sorted...... "); if (verifyArrayIsSorted(sArray, sContext.mCount) == 0) { (void)fprintf(stderr, "OK\n"); } else { (void)fprintf(stderr, "FAIL\n"); } } /* * Free memory */ destroyArray(sArray); return 0; }