Problem Solving Using C++: Structured and Object-Oriented Programming Techniques