This was one of the projects students did when I helped teach APCS to high schoolers as a TEALS volunteer (FracCalc).

Some of the implementations went way overboard and it was so much fun to watch and to play a part.

Even as a “seasoned” developer I learned some tidbits talking through the ways to do (and not do) certain parts. When to store input raw vs processed, etc.