pretend your table name is Table. You have to have a unique ID in the table, mine is called ID.
in your report, you can put these things into three text boxes:
Count of all people in this class:
=DCount("ID","Table","Class = " & [Class])
Count of all Males in this class:
=DCount("ID","Table","Class = " & [Class] & " and Gender = 'M'"
Count of all Females in this class:
=DCount("ID","Table","Class = " & [Class] & " and Gender = 'F'"
now you can call each text box something, ie. txtTotal, txtMale, txtFemale. then make new text boxes txtMalePercentage (=txtMale/txtTotal) and txtFemalePercentage (=txtFemale/txtTotal).
or you can just make the two final text boxes and throw those formulas together: {the string that figures out the number of males}/{the string that figures out the total number in the class}) but that can get kinda messy.
you can make the first three fields invisible and stacked on top of each other if you want to, to get them out of your way.
hope this helps--g