If you are studying by yourself where did you get those somewhat strage requirements from? I mean it has detailed description of the implementation of the students but a very vague description of what this program must achieve.
Since you are trying to achieve something non-trivial, may-be use a higher-level std::string.
(1)id number of the student
(2)name of the student-static string of 20
May-be just an array of courses (or a std::vector).
(3)pointers array of 10 courses(each student studies maximum 10 courses)
This might be grouped together in a class/struct with the course data (name, id?).
(4)array of final grades in the studied courses
(5)every student can have data about less than 10 courses so the ammount of the actualy studied courses must(!!) be memorized/stored.
So, you'll need a list of another type course objects that also store the requirements (for that you could use the same object as in the Student class, that has the course name and minimum required marks. You'll need to get this data somewhere (loaded from file?)
(6)output function-student can be registered to course only if he stands by all the requirement for every course
So given the list of completed courses in a student object, you should check for each available course if the student has met the requirements and present these to be selected in a menu.
The MAIN function must present a menu for students wishing to make registration for courses and managing theirs grades,maximum students in college are 5...
To grade the students you have to assign them fake marks? (Or may-be include mini-games :))
It is a good and challenging exercise but could you try to formulate the requirements better and your plan how to achieve those?
(All in all, I suspect you might need more classes than just the student.)