Problem Solving, Abstraction, and Design Using C++ by