These are a bit sketchy...I'll fill in more later...
This is what was there at the end of last semester.
Already note the use of templates on the menu system!
First an upgrade to namespaces and new-style header names.
Alter process_compar to extract some duplication.
Alter process_compar to extract remaining duplication.
Other modifications such as templatizing read_str, etc.