Programming with ANSI C++: A Step-by-step Approach