Here is a final solution to Exam 1… please note: there’s more than one way to skin a cat, particularly when it comes to software design. If your final solution is different than this, it’s not wrong, per se.
Final Solution
Final Solution (with design patterns shown)