Answer:
Code is given below:
Explanation:
Please enter the file name containing the list of classes: sched.txt
Schedule file loaded. Displaying contents ...
Course name: CPSC 131
Location: EC 109
Weekly schedule: MW
Start time: 16:00
End time: 17:15
Course name: CPSC 481
Location: CS 408
Weekly schedule: MW
Start time: 16:00
End time: 17:15
Course name: CPSC 362
Location: CS 101
Weekly schedule: MW
Start time: 8:00
End time: 9:50
Thank you for using Tuffy Scheduler.
Start time happens after end time
cources.txt
CPSC 131,EC 109,MW,16:00,17:15
CPSC 481,CS 408,MW,16:00,17:15
CPSC 362,CS 101,MW,8:00,9:50
#include <iostream>
#include <fstream>
#include <sstream>
#include<vector>
using namespace std;
class Course {
private:
   std::string course_name_;
   std::string location_;
   std::string weekly_schedule_;
   int start_time_;
   int end_time_;
public:
   const std::string& getCourseName() const {
       return course_name_;
   }
   void setCourseName(const std::string& courseName) {
       course_name_ = courseName;
   }
   const std::string getEndTime() const {
       std::string st = to_string(end_time_);
       std::string st2 = st.substr(st.length() - 2);
       //cout << st2 << '\n';
       size_t found = st.find(st2);
       std::string st1 = st.substr(0, found);
       std::string st3 = st1 + ":" + st2;
       return st3;
   }
   void setEndTime(int endTime) {
       end_time_ = endTime;
   }
   const std::string& getLocation() const {
       return location_;
   }
   void setLocation(const std::string& location) {
       location_ = location;
   }
   const std::string getStartTime() const {
       std::string st = to_string(start_time_);
       std::string st2 = st.substr(st.length() - 2);
       //cout << st2 << '\n';
       size_t found = st.find(st2);
       std::string st1 = st.substr(0, found);
       std::string st3 = st1 + ":" + st2;
       return st3;
   }
   void setStartTime(int startTime) {
       start_time_ = startTime;
   }
   const std::string& getWeeklySchedule() const {
       return weekly_schedule_;
   }
   void setWeeklySchedule(const std::string& weeklySchedule) {
       weekly_schedule_ = weeklySchedule;
   }
   void display() {
       cout << "Course name: " << course_name_ << endl;
       cout << "Location: " << location_ << endl;
       cout << "Weekly schedule: " << weekly_schedule_ << endl;
       cout << "Start time:" << getStartTime() << endl;
       cout << "End time:" << getEndTime() << endl;
   }
};
bool load_schedule(std::string fileName, Course (&courses)[100], int& curSize);
int main() {
   cout << "Welcome to Tuffy Scheduler!" << endl;
   cout << "Please enter the file name containing the list of classes:"
           << endl;
   std::string fileName;
   Course courses[100];
   int curSize = 0;
   cin >> fileName; // provide complete path ex D:\\Chegg\\CheggCpp\\src\\cources.txt
   if (load_schedule(fileName, courses, curSize)) {
       cout << "Schedule file loaded. Displaying contents ..." << endl<<endl;
       int i;
       //cout << curSize << '\n';
       for (i = 0; i < curSize; i++) {
           courses[i].display();
           cout << endl;
       }
       cout << "Thank you for using Tuffy Scheduler."<< endl;
       cout << "Start time happens after end time"<< endl;
   } else {
       cout << "Invalid file" << endl;
   }
   return 0;
}
bool load_schedule(std::string fileName, Course (&courses)[100], int& curSize) {
   ifstream myfile(fileName);
   string line;
   //cout << fileName << '\n';
   if (myfile.is_open()) {
       while (getline(myfile, line)) {
           stringstream ss(line);
           vector<string> v;
           while (ss.good()) {
               string substr;
               getline(ss, substr, ',');
               v.push_back(substr);
           }
           Course c;
           c.setCourseName(v[0]);
           c.setLocation(v[1]);
           c.setWeeklySchedule(v[2]);
           if (v[2] != "MW") {
               cout << "Error: Invalid weekly schedule symbol " << v[2]
                       << '\n';
               return false;
           }
           //set start time
           string startTime = v[3];
           size_t found = startTime.find(":");
           startTime.erase(found, 1);
           //cout << startTime << '\n';
           stringstream st(startTime);
           int startTimeInt = 0;
           st >> startTimeInt;
           c.setStartTime(startTimeInt);
           //set end time
           string endTime = v[4];
           found = endTime.find(":");
           endTime.erase(found, 1);
           // cout << endTime << '\n';
           stringstream st1(endTime);
           int endTimeInt = 0;
           st1 >> endTimeInt;
           c.setEndTime(endTimeInt);
           if (startTimeInt > endTimeInt) {
               cout << "Error: The start time " << startTimeInt
                       << "should happen before the end time " << endTimeInt
                       << '\n';
               return false;
           }
           courses[curSize] = c;
           curSize++;
           //cout << curSize << '\n';
       }
       myfile.close();
   }
   return true;
}