Exercise 8.2 from Liang Java Textbook 8E Comprehensive Version