Advertisement
Guest User

cpp

a guest
May 20th, 2018
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1.  
  2. #include "Scheduler.h"
  3.  
  4. namespace academia{
  5. SchedulingItem::SchedulingItem(int course,int teacher,int room,int time, int year_){
  6. course_id = course;
  7. teacher_id = teacher;
  8. room_id = room;
  9. time_slot = time;
  10. year = year_;
  11. }
  12.  
  13. int SchedulingItem::CourseId() const{
  14. return course_id;
  15. }
  16. int SchedulingItem::TeacherId() const{
  17. return teacher_id;
  18. }
  19. int SchedulingItem::RoomId() const{
  20. return room_id;
  21. }
  22. int SchedulingItem::TimeSlot() const{
  23. return time_slot;
  24. }
  25. int SchedulingItem::Year() const{
  26. return year;
  27. }
  28.  
  29. Schedule Schedule::OfTeacher(int teacher_id) const {
  30. std::vector<SchedulingItem>temp;
  31. std::copy_if(schedule.begin(),schedule.end(),temp.begin(),[teacher_id](const SchedulingItem &element)
  32. {return teacher_id == element.TeacherId();});
  33. Schedule temp_schedule;
  34. temp_schedule.schedule = temp;
  35. return temp_schedule;
  36. }
  37.  
  38. Schedule Schedule::OfRoom(int room_id) const {
  39. std::vector<SchedulingItem>temp;
  40. std::copy_if(schedule.begin(),schedule.end(),temp.begin(),[room_id](const SchedulingItem &element)
  41. {return room_id == element.RoomId();});
  42. Schedule temp_schedule;
  43. temp_schedule.schedule = temp;
  44. return temp_schedule;
  45. }
  46.  
  47. Schedule Schedule::OfYear(int year) const {
  48. std::vector<SchedulingItem>temp;
  49. std::copy_if(schedule.begin(),schedule.end(),temp.begin(),[year](const SchedulingItem &element)
  50. {return year == element.Year();});
  51. Schedule temp_schedule;
  52. temp_schedule.schedule = temp;
  53. return temp_schedule;
  54. }
  55.  
  56. std::vector<int> Schedule::AvailableTimeSlots(int n_time_slots) const {
  57. std::vector<int> temp;
  58. for(auto &i : schedule){
  59. if(i.time_slot <= n_time_slots){
  60. temp.push_back(i.time_slot);
  61. }
  62. }
  63. std::sort(temp.begin(),temp.end());
  64. auto temp1 = std::unique(temp.begin(),temp.end());
  65. temp.erase(temp1,temp.end());
  66. return temp;
  67. }
  68.  
  69. void Schedule::InsertScheduleItem(const SchedulingItem &item) {
  70. schedule.push_back(item);
  71. }
  72.  
  73. size_t Schedule::Size() const {
  74. return schedule.size();
  75. }
  76.  
  77. SchedulingItem Schedule::operator[](int number) const{
  78. return schedule[number];
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement