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
Get step-by-step solutions from verified subject matter experts
