Question: In C++ can someone help me debug this code? The code crashes Inputfile is on : http://voyager.deanza.edu/~bentley/cis22b/ass5data.txt #include #include #include #include #include #include #include #include

In C++ can someone help me debug this code? The code crashes

Inputfile is on : http://voyager.deanza.edu/~bentley/cis22b/ass5data.txt

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

const unsigned NumberOfStudents = 55;

const unsigned PointsPossible = 400;

const unsigned NumberOfAssignments = 10;

const unsigned NumberOfExercises = 10;

class Student {

private:

int id;

string name;

int exercise[NumberOfExercises];

int assignment[NumberOfAssignments];

int midterm;

int final;

int codelab;

int exerciseTotal;

int assignmentTotal;

int totalPoints;

int percent;

string grade;

public:

//Getters

int getid() const {return id;}

string getname() const {return name;}

int getexercise(int index) const {return exercise[index];}

int getassignment(int index) const {return assignment[index];}

int getmidterm() const {return midterm;}

int getfinal()const {return final;}

int getcodelab()const {return codelab;}

int getexerciseTotal()const {return exerciseTotal;}

int getassignmentTotal()const{return assignmentTotal;}

int gettotalPoints()const {return totalPoints;}

int getpercent()const {return percent;}

string getgrade()const {return grade;}

//Setters

void setid(int newid) {id = newid;}

void setname(string newname) {name = newname;}

void setexercise(int index, int value) {exercise[index] = value;}

void setassignment(int index, int value){assignment[index] = value;}

void setmidterm(int newmidterm){midterm = newmidterm;}

void setfinal(int newfinal){final = newfinal;}

void setcodelab(int newcodelab){codelab = newcodelab;}

void setexerciseTotal(int newexerciseTotal){exerciseTotal = newexerciseTotal;}

void setassignmentTotal(int newassignmentTotal){assignmentTotal = newassignmentTotal;}

void settotalPoints(int newtotalPoints){totalPoints = newtotalPoints;}

void setpercent(int newpercent){percent = newpercent;}

void setgrade(string newgrade){grade = newgrade;}

};

void getStudentDataFromFile(Student students[], string InputFilename);

void determineGrades(Student students[]);

void sort(Student students[]);

void printStudentDataToFile(Student students[], string OutputFilename);

int main()

{

string InputFilename = "in.txt";

string OutputFilename = "out.txt";

Student students[NumberOfStudents];

getStudentDataFromFile(students, InputFilename);

determineGrades(students);

sort(students);

printStudentDataToFile(students, OutputFilename);

}

void getStudentDataFromFile(Student students[], string InputFilename) {

fstream fin;

fin.open(InputFilename);

if (!fin) {

cout << "Unable to open file " << endl;

exit(1);

} else {

string dummyline;

getline(fin, dummyline);

while (!fin.eof()) {

for (int i = 0; i < NumberOfStudents; i++) {

string studentId;

fin>>studentId;

students[i].setid(stoi(studentId));

string firstName, lastName;

fin>> firstName>> lastName;

students[i].setname(firstName + " " + lastName);

for(int j=0; j

string excercise;

fin >> excercise;

students[i].setexercise(j, stoi(excercise));

}

for(int j=0; j< NumberOfAssignments; j++) {

string assignment;

fin >> assignment;

students[i].setassignment(j, stoi(assignment));

}

string midterm, final, codelab;

fin>> midterm >> final >> codelab;

students[i].setmidterm(stoi(midterm));

students[i].setfinal(stoi(final));

students[i].setcodelab(stoi(codelab));

}

}

}

}

void determineGrades(Student students[]) {

for (int i = 0; i < NumberOfStudents; i++) {

students[i].setexerciseTotal(0);

for(int j=0; j< NumberOfExercises; j++) {

students[i].setexerciseTotal(students[i].getexerciseTotal() +students[i].getexercise(j));}

students[i].setassignmentTotal(0);

int min = 20;

for(int j=0; j< NumberOfAssignments; j++){

students[i].setassignmentTotal(students[i].getassignmentTotal() +students[i].getassignment(j));

if(min>students[i].getassignment(j))

min = students[i].getassignment(j);

}

students[i].setassignmentTotal(students[i].getassignmentTotal() - min);

students[i].settotalPoints(students[i].getexerciseTotal()+ students[i].getassignmentTotal() +

students[i].getmidterm() + students[i].getfinal() + students[i].getcodelab());

students[i].setpercent(100*students[i].gettotalPoints()/PointsPossible);

int percentage = students[i].getpercent();

if(percentage>=97)

students[i].setgrade("A+");

else if(percentage>=94)

students[i].setgrade("A");

else if(percentage>=90)

students[i].setgrade("A-");

else if(percentage>=87)

students[i].setgrade("B+");

else if(percentage>=83)

students[i].setgrade("B");

else if(percentage>=80)

students[i].setgrade("B-");

else if(percentage>=77)

students[i].setgrade("C+");

else if(percentage>=73)

students[i].setgrade("C");

else if(percentage>=70)

students[i].setgrade("C-");

else if(percentage>=67)

students[i].setgrade("D+");

else if(percentage>=63)

students[i].setgrade("D");

else if(percentage>=60)

students[i].setgrade("D-");

else

students[i].setgrade("F");

}

}

void sort(Student students[])

{

for(int i=0; i

{

for(int j=i+1; j

{

if(students[i].gettotalPoints() < students[j].gettotalPoints())

{

Student tmp = students[i];

students[i] = students[j];

students[j] = tmp;

}

}

}

}

void printStudentDataToFile(Student students[], string name) {

ofstream fout;

fout.open(name);

if (!fout) {

cout << "Unable to open file " << endl;

} else {

fout << "Stud IdName\t\t Ex Ass Mi Fin CL Tot Pct Gr ";

fout << "-------- ------------------- -- --- -- --- -- --- --- -- ";

for (int i = 0; i < NumberOfStudents; ++i) {

fout << setw(8) << setfill('0') << right << students[i].getid() << ' '

<< setfill(' ') << left << setw(19) << students[i].getname()

<< right << setw(3) << students[i].getexerciseTotal()

<< setw(4) << students[i].getassignmentTotal()

<< setw(3) << students[i].getmidterm()

<< setw(4) << students[i].getfinal()

<< setw(3) << students[i].getcodelab()

<< setw(4) << students[i].gettotalPoints()

<< setw(4) << students[i].getpercent()

<< ' ' << students[i].getgrade()

<< endl;

}

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!