Much depends on design details not shared in your initial post, but this sounds like something that you can produce with a summary report that includes a "print above" sub summary layout part "when sorted by" class. You should be able to put fields in this part that identify a particular class in order to turn this part into a "sub head" for each class roster.
In part setup, there are page break options that can cause each such sub summary part to start a new page in order to meet the "each class must begin a new page" requirement.
Here is an example of the target results. On the summary report how can I limit the number of students, shown in portal in attached example, to 7 per page. And the upper portion must print on every page. I have the supervisor info and date on footer.