(C++ Project ONLY) In a course, a teacher gives the following tests and assignme
ID: 3812105 • Letter: #
Question
(C++ Project ONLY)
In a course, a teacher gives the following tests and assignments:
• A lab activity that is observed by the teacher and assigned a numeric score.
• A pass/fail exam that has 10 questions. The minimum passing score is 70.
• An essay that is assigned a numeric score.
• A final exam that has 50 questions.
Write a class named CourseGrades . The class should have a member named grades
that is an array of GradedActivity pointers. The grades array should have four elements,
one for each of the assignments previously described. The class should have the
following member functions:
setLab : This function should accept the address of a GradedActivity
object as its argument. This object should already hold the student’s
score for the lab activity. Element 0 of the grades array
should reference this object.
setPassFailExam : This function should accept the address of a PassFailExam
object as its argument. This object should already hold the student’s
score for the pass/fail exam. Element 1 of the grades array
should reference this object.
setEssay : This function should accept the address of an Essay object as
its argument. (See Programming Challenge 6 for the Essay class.
If you have not completed Programming Challenge 6, use a
GradedActivity object instead.) This object should already hold
the student’s score for the essay. Element 2 of the grades array
should reference this object.
setPassFailExam : This function should accept the address of a FinalExam object as
its argument. This object should already hold the student’s score
for the final exam. Element 3 of the grades array should reference
this object.
print : This function should display the numeric scores and grades for
each element in the grades array.
Demonstrate the class in a program.
Explanation / Answer
Here is the c++ program for the following code.
You should have the basic knowledge of c++, vectors in c++ and classes in c++.
The code is self explanatory.
//.h file code:
#include <string>
#include <vector>
class CourseGrades
{
private:
std::vector<GradedActivity*> grades;
static int NUM_GRADES;
public:
CourseGrades();
virtual void setLab(GradedActivity *aLab);
virtual void setPassFailExam(PassFailExam *aPassFailExam);
virtual void setEssay(Essay *anEssay);
virtual void setFinalExam(FinalExam *aFinalExam);
virtual std::wstring toString() override;
//.cpp file code:
int CourseGrades::NUM_GRADES = 4;
CourseGrades::CourseGrades()
{
grades = std::vector<grades*>(NUM_GRADES);
}
void CourseGrades::setLab(GradedActivity *aLab)
{
grades[0] = aLab;
}
void CourseGrades::setPassFailExam(PassFailExam *aPassFailExam)
{
grades[1] = aPassFailExam;
}
void CourseGrades::setEssay(Essay *anEssay)
{
grades[2] = anEssay;
}
void CourseGrades::setFinalExam(FinalExam *aFinalExam)
{
grades[3] = aFinalExam->getScore();
}
std::wstring CourseGrades::toString()
{
std::wstring result = L"";
result = std::wstring(L"Lab Score: ") + grades[0] + std::wstring(L"Pass/Fail Exam Score: ") + grades[1]->getScore() + std::wstring(L" Grade: ") + grades[1]->getGrade() + std::wstring(L" Essay Score: ") + grades[2]->getScore() + std::wstring(L" Grade: ") + grades[2]->getGrade() + std::wstring(L" Final Exam Score: ") + grades[3]->getScore() + std::wstring(L" Grade: ") + grades[3]->getGrade()"; return result; } }
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.