Answered step by step
Verified Expert Solution
Question
1 Approved Answer
#ifndef COURSES_COURSES_H #define COURSES_COURSES_H #include #include #include #include #include #include enum class CompletionStatus {INCOMPLETE, WITHDRAWAL, COMPLETE}; class CourseRecord { public: CourseRecord(std::string name, double mark, int
#ifndef COURSES_COURSES_H #define COURSES_COURSES_H #include #include #include #include #include #include enum class CompletionStatus {INCOMPLETE, WITHDRAWAL, COMPLETE}; class CourseRecord { public: CourseRecord(std::string name, double mark, int yearTaken, CompletionStatus status) : name(std::move(name)), mark(mark), yearTaken(yearTaken), status(status) { } std::string getName() const { return name; } double getMark() const { return mark; } int getYearTaken() const { return yearTaken; } CompletionStatus getStatus() const { return status; } std::string toString() const { using namespace std::string_literals; return "Course: "s + name + "; mark: " + std::to_string(mark) + "; year:" + std::to_string(yearTaken) + "; status:" + displayStatus(status); } static std::string displayStatus(CompletionStatus status) { switch(status) { case CompletionStatus::INCOMPLETE: return "Incomplete"; case CompletionStatus::WITHDRAWAL: return "Withdrawal"; case CompletionStatus::COMPLETE: return "Complete"; } } private: std::string name; double mark; int yearTaken; CompletionStatus status; }; /* * Represents results of courses taken by a student. */ class Courses { public: Courses(const std::vector& courseRecordsIn) { for (auto rec: courseRecordsIn) { courseRecords.insert({rec.getName(), rec}); } } /* Return the average marks per year for the given courses. * Only include completes for the year. */ std::map averageSomeCoursesPerYear( const std::set& courseNames) const { std::map averagesPerYear; // Complete this method return averagesPerYear; } void print() const { std::cout << "Courses: " << std::endl; for (auto entry : courseRecords) { std::cout << entry.second.toString() << std::endl; } } private: std::map courseRecords; }; #endif HELP ME TO COMPLETE THIS CODE
#ifndef COURSES_COURSES_H
#define COURSES_COURSES_H
#include
#include
#include
#include
#include
#include
enum class CompletionStatus {INCOMPLETE, WITHDRAWAL, COMPLETE};
class CourseRecord {
public:
CourseRecord(std::string name, double mark, int yearTaken, CompletionStatus status)
: name(std::move(name)), mark(mark), yearTaken(yearTaken), status(status) {
}
std::string getName() const { return name; }
double getMark() const { return mark; }
int getYearTaken() const { return yearTaken; }
CompletionStatus getStatus() const { return status; }
std::string toString() const {
using namespace std::string_literals;
return "Course: "s + name + "; mark: " + std::to_string(mark)
+ "; year:" + std::to_string(yearTaken)
+ "; status:" + displayStatus(status);
}
static std::string displayStatus(CompletionStatus status) {
switch(status) {
case CompletionStatus::INCOMPLETE: return "Incomplete";
case CompletionStatus::WITHDRAWAL: return "Withdrawal";
case CompletionStatus::COMPLETE: return "Complete";
}
}
private:
std::string name;
double mark;
int yearTaken;
CompletionStatus status;
};
/*
* Represents results of courses taken by a student.
*/
class Courses {
public:
Courses(const std::vector& courseRecordsIn) {
for (auto rec: courseRecordsIn) {
courseRecords.insert({rec.getName(), rec});
}
}
/* Return the average marks per year for the given courses.
* Only include completes for the year.
*/
std::map averageSomeCoursesPerYear(
const std::set& courseNames) const {
std::map averagesPerYear;
// Complete this method
return averagesPerYear;
}
void print() const {
std::cout << "Courses: " << std::endl;
for (auto entry : courseRecords) {
std::cout << entry.second.toString() << std::endl;
}
}
private:
std::map courseRecords;
};
#endif
HELP ME TO COMPLETE THIS CODE
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started