Kalhnyxtakias

Untitled

Jan 20th, 2021
905
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. int schedule_lecture(classroomT classrooms_array[], courseT* course, const int duration){
  2.    
  3.     int i, j, k, l, availability_flag,m;
  4.  
  5.     for (i = 0; i < MAX_ROOMS; i++) {
  6.  
  7.         if (course != NULL && course -> enrolled_count <= classrooms_array[i].capacity) {
  8.             for (j = 0; j < WORKING_HOURS; j++) {
  9.                 /* Lecture shouldn't last over working hours */
  10.                 if (j + duration > WORKING_HOURS) {
  11.                     break;
  12.                 }
  13.                
  14.                 for (k = 0; k < WORKING_DAYS; k++) {
  15.                     availability_flag = 1;
  16.                     for (l = j; l < j+duration; l++) {
  17.                         if (classrooms_array[i].schedule[l][k] != NULL) {
  18.                             availability_flag = 0;
  19.                             break;
  20.                         }
  21.                     }
  22.  
  23.                     if(availability_flag){    
  24.                         /* Checking if the professor has a lecture in another classroom */
  25.                         for(m=0; m<MAX_ROOMS; m++){
  26.                             for (l = j; l < j+duration; l++) {
  27.                                 if (classrooms_array[m].schedule[l][k] != NULL   && !strcmp(classrooms_array[m].schedule[l][k]->prof_name,course->prof_name)) {
  28.                                     availability_flag = 0;
  29.                                     break;
  30.                                 }
  31.                             }
  32.                         }
  33.                     }
  34.                     /* If an available slot is found, set all pointers of that time slot towards the course */
  35.                     if (availability_flag) {
  36.                         for (l = j; l < j+duration; l++) {
  37.                             classrooms_array[i].schedule[l][k] = course;
  38.                         }
  39.                         return i;
  40.                     }
  41.                 }
  42.             }
  43.         }
  44.     }
  45.     return -1;
  46. }
RAW Paste Data