0

so basically, i think i have the basic idea written down but am not really understanding the errors i recieve like for example one of the errors were, "error: invalid conversion from `int' to `double*'" but ya...code if below....id appriciate the help, thanks

/**
 * CS-11 Asn 9
 * gradebook.cpp
 * Purpose: calculates overall grade for the semester.
 *
 * @author Ramin Rezaei
 * @version 1.0 4/27/06
 */
#include <fstream>
#include <iostream>
using namespace std;

// Avoid magic numbers.
// Change the following constants however you like.
const int NUM_AREAS = 4;

const int MAX_ASN = 11;
const int MAX_EXER = 12;
const int MAX_MID = 2;
const int MAX_FINAL = 2;

const double WEIGHT_ASN = .30;
const double WEIGHT_EXER = .15;
const double WEIGHT_MID = .20;
const double WEIGHT_FINAL = .35;

const double WEIGHTS[] = {WEIGHT_ASN, WEIGHT_EXER, WEIGHT_MID, WEIGHT_FINAL};
const string AREAS[] = {"Assignments", "Exercises", "Midterm", "Final Exam"};
const int INDEX_ASN = 0;
const int INDEX_EXER = 1;
const int INDEX_MID = 2;
const int INDEX_FINAL = 3;

const double MIN_A = .90;
const double MIN_B = .80;
const double MIN_C = .70;
const double MIN_D = .60;

const int NUM_DECIMAL_PLACES = 2;
const double PERCENT_MULTIPLIER = 100;

/**
 * Load the scores from the fileName into data[].
 *
 * @param fileName The name of the file.
 * @param data The array in which the data is loaded.
 * @param size The maximum array size.
 * @return The number of elements loaded into the array.
 */
int loadScores(double data[], int size, string fileName);

/**
 * Calculates the weighted percentage of the data where data[0] is
 * the maximum possible for all scores and each subsequent item is
 * an individual score. Also makes sure that the score does not
 * exceed 100%.
 *
 * @param data The array in which the data is loaded.
 * @param size The number of array items used.
 * @param weight The weight to apply to the data percentage.
 * @return The weighted percentage.
 */
double calcScore(double data[], int numItems, double weight);

/**
 * Outputs the grade calculations in the specified format.
 *
 * @param weightedScores The weighted percentages of all areas.
 * @param size The number of array elements.
 * @param out The output stream to write the data to.
 */
void report(double weightedScores[], int size, ostream& out);

/**
 * Converts the percentage to a letter grade.
 *
 * @param percentage The percentage to convert.
 * @return The letter grade.
 */

double calcScoreNeeded(double wanted, double earned);

// Application driver
int main() {
    ifstream fin;
    ofstream fout;
    string filenName;
    double numItems;
    int asn[MAX_ASN];
    int exer[MAX_EXER];
    int mid[MAX_MID];
    int final[MAX_FINAL];

    //fileName = "asn.txt";
    loadScores(asn[MAX_ASN],"asn.txt");
    calcScore(asn[MAX_ASN],numItems, WEIGHT_ASN);


    //fileName = "exer.txt";
    loadScores(exer[MAX_EXER],"exer.txt");
    calcScore(exer[MAX_EXER],numItems, WEIGHT_EXER);

    //fileName = "mid.txt";
    loadScores(mid[MAX_MID],"mid.txt");
    calcScore(mid[MAX_MID],numItems, WEIGHT_MID);

    //fileName = "final.txt";
    loadScores(final[MAX_FINAL],"final.txt");
    calcScore(final[MAX_FINAL],numItems, WEIGHT_FINAL);


    return 0;
}

// Load the scores from the fileName into data[].
int loadScores(double data[], int size, string fileName) {
    size=size;
    ifstream fin;
    ofstream fout;


    int count = 0;

    fin.open(filename);
    if (fin.fail()) {
        cout << "Input file failed to open.\n";
        exit(1);
    }
        while(fin >> data[count] && count < size) {
             count++;
    }


    // Read the number of scores
    // Also load scores into the data[]

   return count;
}

// Calculates the weighted percentage of the data where data[0] is the maximum
// possible for all scores and each subsequent item is an individual score.
// Also makes sure that the score does not exceed 100%.
double calcScore(double data[], int numItems, double weight) {
    double result = 0;
    double numItems;

    for (int i = 0; i < numItems; i++) {
        result = result + data [i]



}
    result = result / data [0];
    result*weight;

       if (data[0] > 1 ) {
           result=1;
}
        if (data[i] ==0) {
            result=0;
}

    // DANGER: watch out for division by zero!!!!

    return result;
}

// Outputs the grade calculations in the specified format.
void report(double weightedScores[], int size, ostream& out) {

}

// Converts the percentage to a letter grade.
char toLetterGrade(double percentage) {
    char letterGrade = 'z';
    // Use if-else statements to return a letter grade

    return letterGrade;
}
2
Contributors
1
Reply
2
Views
11 Years
Discussion Span
Last Post by Dave Sinkula
0

To start, as a declaration this

int asn[MAX_ASN];

defines an array of size MAX_ASN of ints. When used later this asn[MAX_ASN] is a an int (one beyond the end of the declared array. And for functions expecting a pointer to a double, provide a pointer to a double (rather than to an int).

[edit]If a function expects 3 parameters, provide 3 (not, say, 2).

Improve your indentation now. Seasoned programmers use beautifiers to help find bugs. Good indentation is for beginners to use to help them not screw up their code.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.