Data Abstraction & Problem Solving with C++ by D.J. Henry