There is a simple and highly efficient possibility:
If you can live with searching the percentile only in a finally filled up students structure then:
Use an ArrayList to dynamically build up when you don't know the number of elements.
If you know them then start with the array directly, otherwise create the array from the dynamic array. (e.g ArrayList in java).
insert: not neccesary, replaced by adding at end, and sorting once.
delete: not neccessary, if you can live with that.
tell-percentile: even simpler: something very near to: element[length * percentile]: O(1)
In practise the array approach will be much faster than the balanced tree approach, at least in java,
when your application can build up the array once (e.g daily student evaluation, build it up daily)
I have implemented the (my) above algorithm using an self written ArrayListInt, which does the same as ArrayList but uses primitive types (double, int), instead of objects types. I sorted it once, when all data have been read.
Further you wanted key value:
I would just add an Tree Map (balanced tree). Now it is a bit doubtfull if the TreeMap and the additonal percentile array make sense: That depends then on how often you have to search, and memory usage versus search time.
Update:
Results: treeset vs sorted array (dynamic build up the array, then finally sort once:
num elements: 1000 treeSet: 4.55989 array=0.564159
num elements: 10000 treeSet: 2.662496 array=1.157591
num elements: 100000 treeSet: 31.642027 array=12.224639
num elements: 1000000 treeSet: 1319.283703 array=140.293312
num elements: 10000000 treeSet: 21212.307545 array=3222.844045
This ammount of elements (1e7) now is near the limit (1GB heap space) , in the next step memory would run out (already happedned at 1e7, but with cleaning up memory after treeset, the run for measure 1e7 worked, too.
What is missing are the search times, but an sorted array with binsearch is only beatable by an hashtable
Finally:
If you can build up the student set once, e.g daily, then using the array approach gives a much simpler percentile search.