Exercise 5.1 from Liang Java Textbook 8E Comprehensive Version