This task involves tracking the book trades among friends and determining the final book each person ends up with. The challenge lies in keeping track of the swaps and identifying the final book for a specific person.

Analyzing the Task:
The task requires tracking the book trades and determining the final book for each person, which involves multiple steps and changes in book ownership. Therefore, a combination of variables tracking and free format reasoning would be effective to solve the task.

Constructing the Code Prompt:
1. Initialize book ownership: Assign each person with their initial book at the start of the semester.

2. Track book trades: Iterate through the given book swaps and update the book ownership accordingly. Display the changes after each swap.

3. [Free format reasoning] Identify the final book for a specific person: Analyze the sequence of swaps and determine the final book for the specified person. Use an abstract function like 'identify_final_book_with_explanation' which outputs both the reasoning and the final book.

4. Match the final book with the options: Compare the final book for the specified person with the given options to find the correct answer.

5. Return the final answer: Return the matched option as the final answer to the question.