class StudentMarks { private: int as; // the number of As for this student int bs; // the number of Bs for this student int cs; // the number of Cs for this student int others; // the number of other (worse) marks for this student // deduct 1 mark if student has included the academic score here public: // deduct 2 marks if student has no comments in the public section // (or deduct 1 mark if not all methods have comments below) // deduct 1 additional mark if student has no comments in cpp file // deduct 1 mark if student is missing "const" anywhere below // deduct 1 mark if "&" missing on &otherStudent // constructs a new student with 0 As, 0 Bs, 0 Cs, 0 other marks StudentMarks(); // constructs a new student with "as" As, "bs" Bs, "cs" Cs, "others" other marks StudentMarks(int as, int bs, int cs, int others); // the student gets an A void gotA(); // the student gets a B void gotB(); // the student gets a C void gotC(); // the students gets another (lower) mark void gotOther(); // prints the marks as: "As-Bs-Cs-others" void printMarks() const; // returns the number of As this student has to date int numAs() const; // returns true if the number of As and Bs is greater than the // number of Cs and other marks bool mostAboveC() const; // returns true if the student has at least as many As as the // other student, false otherwise bool asManyAs(const StudentMarks &otherStudent) const; // returns the academic score for this student, calculated as 3 for each A, // 2 for each B, 1 for each C, and 0 for any other marks int acadScore() const; };