Programming: Principles and Practice Using C++