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