Question: I need to use object oriented principles on C++ for this project like, inheritance , STL algorithms like map , set and list . This
I need to use object oriented principles on C++ for this project like, inheritance, STL algorithms like map, set and list. This project also needs to be console based (not GUI based). There should be a text based menu at the start where user can add students, courses, or creating a schedule based on courses and their hours by prompts.
In this project, you are going to deal with classes of type course and student. There will be various courses offered in the semester and there are students who are taking those courses. We can not prevent any student from taking any of the courses that are offered. Each of the courses will have a specific ID such as 123456 and the number of lectures that it requires for every week. Each of the students will have a specific string ID such as Jack. If a student takes no course, he/she is free at any time of the week. During each week, the lectures can be given at six particular slots in each weekday. To set it more formally, the available slots are as follows:

A professor is always available to teach any lecture at any slot and at any time of the week. Your program is supposed to perform the following actions with a menu-driven interface:
Given the ID of the course and the weekly lecture load, add a new course to the list of offered courses
Add a new student to the list of students by recording his/her ID.
Update a students record by adding a course to the list of courses that he/she takes.
Given the list of courses previously added and the available list of students taking particular courses offered among the available courses, determine an acceptable schedule for the semester. Any acceptable schedule will do. If no such schedule exists, report it and terminate the program.
The algorithms that you will use are the design decisions. The format and look of the user interface is completely up to you. The student and course records are supposed to exist only within the lifetime of a program session. Once you re-execute the program, everything will start from scratch. You need to reenter student and course records.
An example may clarify how schedule determination is to be done. Let the followings be the course and student records available in a particular session of your program:
Courses:
111111 -- 8 hours
222222 -- 8 hours
333333 -- 8 hours
444444 -- 6 hours
555555 4 hours
Students:
Jack 111111, 222222, 444444, 555555
John 222222, 555555
Williams 222222, 333333, 555555
Schedule:
111111 Monday -> TimeSlot-1, TimeSlot-2, TimeSlot-3, TimeSlot-4, TimeSlot-5, TimeSlot-6
Tuesday -> TimeSlot-1, TimeSlot-2
222222 Wednesday ->Timeslot-5, TimeSlot-6
Thursday-> TimeSlot-1, TimeSlot-2, TimeSlot-3, TimeSlot-4, TimeSlot-5, TimeSlot-6
333333 Monday -> TimeSlot-2, TimeSlot-3
444444 Friday -> TimeSlot-3, TimeSlot-4
Time Slot-1 Time Slot-2 Time Slot-3 Time Slot-4 Time Slot-5 Time Slot-6 Monday Tuesday Wedensday Thursday Friday Saturday Sunday
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
