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
Esempio n. 2
0
/*
 * -----------------------------------------------------------------------------
 *  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;
}