Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string>
- using namespace std;
- class Course{
- string mName;
- string mCode;
- double mECTS;
- public:
- Course(string, string, double);
- virtual bool isPassed() = 0;
- virtual ~Course();
- // Getters and setters for homework!
- };
- Course::Course(string name, string code, double ects)
- : mName(name), mCode(code), mECTS(ects){}
- Course::~Course(){}
- class UngradedCourse : public Course {
- bool mAttended, mCompleted;
- public:
- UngradedCourse(string name, string code, double ects);
- virtual bool isPassed();
- void completeCourse();
- };
- UngradedCourse::UngradedCourse(string name, string code, double ects)
- : Course(name, code, ects){
- mAttended = false;
- mCompleted = false;
- }
- void UngradedCourse::completeCourse(){
- this->mAttended = true; this->mCompleted = true;
- }
- bool UngradedCourse::isPassed(){ return this->mCompleted && this->mCompleted; }
- class GradedCourse : public Course {
- int mGrade;
- public:
- GradedCourse(string name, string code, double ects);
- virtual bool isPassed();
- void grade(int);
- };
- GradedCourse::GradedCourse(string name, string code, double ects)
- : Course(name, code, ects){
- mGrade = 1;
- }
- void GradedCourse::grade(int grade){ this->mGrade = grade; }
- bool GradedCourse::isPassed(){ return this->mGrade > 1; }
- bool canAdvanceToNextYear(Course** courses, int count){
- for (int i = 0; i < count; i++) {
- if (courses[i]->isPassed() == false){
- return false;
- }
- }
- return true;
- }
- int main(){
- const int SIZE = 3;
- Course** courses = new Course*[3]{
- new GradedCourse("Osnove elektrotehnike I", "OET", 7),
- new GradedCourse("Programiranje I", "PRO", 7),
- new UngradedCourse("Engleski jezik I", "ENG", 0),
- };
- cout << canAdvanceToNextYear(courses, SIZE) << endl;
- for (int i = 0; i < SIZE; i++) {
- delete courses[i];
- };
- delete[] courses;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement