Problem Solving with Java by Elliot B. Koffman & Ursula Wolz