Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2020
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4. class Course{
  5. string mName;
  6. string mCode;
  7. double mECTS;
  8. public:
  9. Course(string, string, double);
  10. virtual bool isPassed() = 0;
  11. virtual ~Course();
  12. // Getters and setters for homework!
  13. };
  14. Course::Course(string name, string code, double ects)
  15. : mName(name), mCode(code), mECTS(ects){}
  16. Course::~Course(){}
  17. class UngradedCourse : public Course {
  18. bool mAttended, mCompleted;
  19. public:
  20. UngradedCourse(string name, string code, double ects);
  21. virtual bool isPassed();
  22. void completeCourse();
  23. };
  24. UngradedCourse::UngradedCourse(string name, string code, double ects)
  25. : Course(name, code, ects){
  26. mAttended = false;
  27. mCompleted = false;
  28. }
  29. void UngradedCourse::completeCourse(){
  30. this->mAttended = true; this->mCompleted = true;
  31. }
  32. bool UngradedCourse::isPassed(){ return this->mCompleted && this->mCompleted; }
  33. class GradedCourse : public Course {
  34. int mGrade;
  35. public:
  36. GradedCourse(string name, string code, double ects);
  37. virtual bool isPassed();
  38. void grade(int);
  39. };
  40. GradedCourse::GradedCourse(string name, string code, double ects)
  41. : Course(name, code, ects){
  42. mGrade = 1;
  43. }
  44. void GradedCourse::grade(int grade){ this->mGrade = grade; }
  45. bool GradedCourse::isPassed(){ return this->mGrade > 1; }
  46. bool canAdvanceToNextYear(Course** courses, int count){
  47. for (int i = 0; i < count; i++) {
  48. if (courses[i]->isPassed() == false){
  49. return false;
  50. }
  51. }
  52. return true;
  53. }
  54. int main(){
  55. const int SIZE = 3;
  56. Course** courses = new Course*[3]{
  57. new GradedCourse("Osnove elektrotehnike I", "OET", 7),
  58. new GradedCourse("Programiranje I", "PRO", 7),
  59. new UngradedCourse("Engleski jezik I", "ENG", 0),
  60. };
  61. cout << canAdvanceToNextYear(courses, SIZE) << endl;
  62. for (int i = 0; i < SIZE; i++) {
  63. delete courses[i];
  64. };
  65. delete[] courses;
  66. return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement