Problem Solving, Abstraction, and Design Using C++ - Friedman, Frank L.; Koffman, Elliot B.