Text this: C++ programming: from problem analysis to program design