Here at IU, for the past decade, we've had a gradebook add-on for WeBWorK that does all of the things you mentioned plus more. I originally programmed the Gradebook for WeBWorK1 and then adapted it to WeBWorK2 when the latter appeared. Unfortunately, the Gradebook add-on is not readily portable, because we use BerkeleyDB rather than MySQL for our databases. But that could be addressed in due time.
I've included links to PDF files of some screen shots that show
- the top-level menu for the Gradebook, which shows the functionality of the gradebook (the menu looks very WeBWorK1-ish, because that was what it was programmed for);
- the specification screen for an exam item, which shows the conversion table for converting raw scores to scores on a 100-90-80-70-60 scale via piecewise linear interpolation and also shows how to set cut-offs for assigning letter grades;
- the specification screen for computing the total of the WeBWorK WebLessons (i.e., homework sets) (there is an option for dropping a specified number of low scores, but I didn't drop any this spring); and
- the specification screen for computing a weighted average of scores (again, there is an option for dropping scores, which can be used to implement schemes in which a student is permitted to replace the lowest exam score during the term with the score on the final exam if the latter is better).
Perhaps we can discuss this at the MAA meeting in Pittsburg.